ansible自動操作およびメンテナンス(1)

1. ansibleとは

ansibleは、オープンソースの自動化プラットフォーム、構成管理ツール、および自動化された操作と保守ツールです。

2. ansibleの利点

** 1)クロスプラットフォームサポート
2)人間が読み取り可能な自動化:ansibleは、物理、仮想、クラウド、およびコンテナー環境に適した、Linux、Windows、UNIX、およびネットワークデバイスのエージェントレスサポートを提供します。
3)アプリケーションを完全に説明:プレイブック
4)バージョン管理を簡単に管理:プレイブックはプレーンテキストであり、ソースコードと見なすことができます。
5)動的リストをサポートします。
6)オーケストレーションは、他のシステム(人形、ジェンキンス)と簡単に統合できます。
7)インフラストラクチャはコードです。
8)人的ミスを減らす。
タスク、プレイ、およびプレイブックはべき等になるように設計されているため、プレイブックを実行しても、ターゲットホストが正しい状態であれば、変更は行われません。

3. ansibleをインストールする

1)rhel7にansibleをインストールし、コントロールノードとして機能します。
ソフトウェアインストールパッケージを見つけるには、pkgsとrpmを使用することをお勧めします。
まずBaiduでpkgsを検索します。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入
上記のリンクを入力した後、確認コードをもう一度入力し、インストールパッケージのダウンロードURLを見つけて、URLをコピーし、ブラウザーでダウンロードを検索します。
ここに画像の説明を挿入
sshpassインストールパッケージを適切にダウンロードします。
anmibleインストールの依存関係の問題を解決するために、yumソースをビルドします。次にインストールします。

yum  install *.rpm  -y  ##安装刚下载的安装包

ここに画像の説明を挿入
2)ansibleバージョン情報を表示する
ここに画像の説明を挿入
3)セットアップモジュールを使用してPythonを確認する
ここに画像の説明を挿入

4. ansibleをデプロイする

1)Ansibleデフォルト設定ディレクトリ:/ etc / ansible
デフォルト設定ファイル:/etc/ansible/ansible.cfg
デフォルトマニフェストファイル:/ etc / ansible / hosts
ここに画像の説明を挿入
一般に、企業でのデータの混乱を防ぐために、新しい構成ファイルとリストファイルが作成され、あるタイプのデータを保存します
2)ansibleリストの作成リスト
とは:ansibleが管理するホストのバッチを定義します。
<1>静的リスト
各行に1つずつ、ホスト名またはIPを入力します。例:
ここに画像の説明を挿入
ここに画像の説明を挿入
ホストグループを定義することもできます:
[webservers]
rhel7_node2.westos.com
rhel8_node1.westos.com
192.168.43.30

[dbservers]
server1.westos.com
server2.westos.com
192.168.43.30
ここに画像の説明を挿入
注:ホストは複数のホストグループに存在できます
上記のリストを確認します。

ansible  all   --list-hosts  ##查看清单中管理的所有主机

ここに画像の説明を挿入

ansible webservers --list-hosts    ##查看webservers组中所有的主机
ansible dbservers --list-hosts ##查看dbservers组中所有的主机

ここに画像の説明を挿入

ansible ungrouped --list-hosts  ##查看清单中不在组里面的主机

ここに画像の説明を挿入
<2>ネストされたグループの定義
ansibleホストリストには、次のような複数のホストグループを含めることができます。
[webservers]
rhel7_node2.westos.com
rhel8_node1.westos.com
192.168.43.30

[dbservers]
server1.westos.com
server2.westos.com
192.168.43.30

[サーバー:子]
webservers
dbservers
<3>範囲によるホスト指定の簡略化
ホスト名、IP範囲、または数字と文字の範囲を指定できます。
構文:[START:END]の
ような(1):192.168.43。[0:254] ##は、192.168.43.0 /
ここに画像の説明を挿入
ここに画像の説明を挿入
24のホストと一致します。例:(2):server [01:10] .westos.com ##と一致します。 server01.westos.comからserver10.westos.comまでのすべてのホスト。このメソッドはserver1.westos.comとは一致せず、server01.westos.comとのみ一致します。
ここに画像の説明を挿入
ここに画像の説明を挿入
(3)など:[a:c] .westos.com ## a.westos.comのホストをc.westos.comに一致させます。

3)検証リスト
ansible all --list-hosts ##すべての管理対象ホストを表示する
ansible webservers --list-hosts ## webserversグループ内の管理対象ホストを表示する
ansible ungrouped --list-hosts ##内部でグループ化されていないビュー管理対象ホスト

4)デフォルトのリストの場所:/ etc / ansible / hosts ##通常は使用されませんが、自分で作成します

5)動的リスト:オープンソースコミュニティのスクリプトから取得できます

演習(1):
ここに画像の説明を挿入
ここに画像の説明を挿入
上記のリストのすべての管理対象ホストを
ここに画像の説明を挿入
リストします。グループに属しいないホストを
ここに画像の説明を挿入
リストします。webserversグループに属しているホストをリストします
ここに画像の説明を挿入
練習(2)
カスタムリスト

mkdir  deploy-inventory    ##建立清单目录
vim  inventory    ##建立清单文件

ここに画像の説明を挿入
ホストのリスト:
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

5. ansible構成ファイルを管理する

1)ansible
構成ファイルを構成します:
<1> /etc/ansible/ansible.cfg ##基本構成ファイル。他の構成ファイルが見つからない場合は、これを使用してください
<2>〜/ .ansible.cfg ##この構成が存在し、現在の作業ディレクトリにはansible.cfgがありません。このファイルは/etc/ansible/ansible.cfg
<3>を置き換えます。./ansible.cfg ## ansibleコマンドが実行されるディレクトリにansible.cfgがある場合は、上記ではなく、それを使用します2つ(推奨、上記の2つは一般的に使用されません)
<4>使用される構成ファイルを表示します:
ここに画像の説明を挿入
2)構成ファイルの設定を管理します:
[デフォルト] ## ansible操作のデフォルト値を部分的に設定します
[privilege_escalation] ##構成ansible管理対象ホストでの権限昇格の実行

例:
ここに画像の説明を挿入
ここに画像の説明を挿入
sudoを使用して分散化:
スーパーユーザーを使用してファイルを編集:
vim /etc/sudoers.d/westos
westos ALL =(ALL)NOPASSWD:ALL

6.一時的なコマンドを実行する

一時的なコマンドを使用して、プレイブックを作成せずにすばやくテストおよび変更し
ます1.形式:ansible host -pattern -m module [-a 'module arguments'] [-i inventory]
2.管理対象ホストでPythonモジュールを実行できるかどうかを確認します

ここに画像の説明を挿入
3.一時的なコマンドを使用して、モジュールを通じてタスクを実行します

ansible-doc -l   ##列出所有模块

ここに画像の説明を挿入

ansible-doc ping  ##查看ping模块的帮助文档

ここに画像の説明を挿入
ansibleモジュール
ファイルモジュール:

-コピー ローカルファイルを他の管理対象ホストにコピーする
-ファイル ファイルのアクセス許可とその他の属性を設定する
-lineinfile 特定の行がファイルにあることを確認してください
-同期 コンテンツをrsyncと同期する

システムモジュール:

-ファイアウォール firewalldを使用してタスクポートとサービスを管理する
-リブート 再起動
-サービス 管理サービス
-ユーザー ユーザーアカウントの追加、削除、管理

ネットツールモジュール:

-get_url http、https、またはftp経由でファイルをダウンロードする
-nmcli 管理ネットワーク
URLを Webサービスと対話する

4.例:
ユーザーモジュールを使用して、westosユーザーがrhel7_node2.westos.comに存在し、uidが1000で
ここに画像の説明を挿入
あることを確認します。パスワードを入力すると問題が発生するため、2つのホストがシークレットログインを実行できます。

ssh-keygen   ##生成密钥
ssh-copy-id  rhel7_node2.westos.com  ##将密钥传到rhel7主机中

ここに画像の説明を挿入
2つのホストがパスワードなしでログインできるようになったので、今すぐコマンドを実行すると、直接正常に実行できます。
ここに画像の説明を挿入
管理対象ホストでコマンドを実行します。-
ここに画像の説明を挿入
o ##単一行表示
ここに画像の説明を挿入
注:コマンドモジュールではリモートコマンドを実行できますが、これらのコマンドはシェルによって処理されないため、シェル環境変数にアクセスできないため、リダイレクト、転送、およびその他の操作を実行できません。

シェルとコマンドの使用の違い:
ここに画像の説明を挿入
ここに画像の説明を挿入
コマンドモジュールを使用して一時的なコマンドを実行します。

mkdir deploy-adhoc ##建立deploy-adhoc目录
cd  deploy-adhoc   ##进入目录
vim ansible.cfg  ##建立配置文件

ここに画像の説明を挿入

vim inventory   ##建立清单文件

ここに画像の説明を挿入

ここに画像の説明を挿入
-uオプションを使用して生徒と接続し、idコマンドを実行します
ここに画像の説明を挿入
注(1):上記の2つのコマンドを実行する場合は、新しく作成したディレクトリで実行する必要があります。そうしないと、結果は変わりません。つまり、IDを実行した後の-u studentの結果は、ルートIDと同じです。
注(2):コマンドモジュールを使用してansibleを介して一時コマンドを実行する場合、localhostとStudentは最初にパスワードなしのログインを行う必要があります。

パスワードなしのログイン操作は次のとおりです。

ssh-keygen ##先生成密钥
ssh-copy-id 主机名/ip   ##复制密钥

ここに画像の説明を挿入
ここに画像の説明を挿入
コピーモジュールの使用
1.最初に学生ユーザーを使用します。学生ユーザーには書き込み権限がない
ここに画像の説明を挿入
ため、/ etc / motdはスーパーユーザーのみが書き込むことができ、他のユーザーは書き込みできないため、権限がアップグレードされる必要があるため失敗します。

2.権限昇格を使用する
注:ここで特権エスカレーションを使用するには、最初に/etc/sudoers.d/studentファイルを編集する必要があります

vim /etc/sudoers.d/student

ここに画像の説明を挿入
rootとしてコマンドを実行します。

ansible localhost -m copy -a 'content="hello westos\n" dest=/etc/motd' -u student --become ##become指以root的身份来执行,content指编写的文件,dest指将文件放置的位置

ここに画像の説明を挿入
実行結果が黄色の場合はエラーが報告されておらずファイルが変更されていることを示し、緑色の場合は実行結果に問題はないがファイルに変更が加えられていないことを示します。
結果を表示する:
ここに画像の説明を挿入
allパラメータを使用して、localhostとrhel7_node2.westos.comを一度に変更し
ます。/etc/sudoers.d/studentファイル
localhostの編集は以前に編集されているので、ここでrhel7_node2のファイルを編集するだけです。
ここに画像の説明を挿入
ここに画像の説明を挿入
次に、allパラメーターを使用して、実行を一度に変更します。

ansible all -m copy -a 'content="hello westos\n" dest=/etc/motd' -u student --become

ここに画像の説明を挿入
ここに画像の説明を挿入
localhostはすでに
正しい状態にあるため、localhostはSUCCESSを示し、rhel7_node2.westos.comはCHANGEDを​​示しています。

最後に、/ etc / motdにhello westosファイルが追加されているかどうかを確認します。
ここに画像の説明を挿入

元の記事を35件公開しました 賞賛されました0 訪問回数1407

おすすめ

転載: blog.csdn.net/qq_44749796/article/details/105316837