今日、運用と保守の自動化ツールであるAnsibleの学習を始めました。
1. Ansibleの原則
1.1 Ansibleとは
Ansibleは、ITシステムの構成管理、アプリケーションの展開、特定のタスクを統合するオープンソースのプラットフォーム/フレームワークです。Python言語に基づくコアモジュールには、jinja2、PyYAML、paramikoが含まれます。Ansibleを使用すると、エラーなしで繰り返し実行でき、クライアントにエージェントがなく、サーバーにデーモンプロセスがありません。Ansible機能:
-
Ansibleは、CMDB呼び出しやパブリッククラウドインターフェイス呼び出しなどのAPIインターフェイス呼び出しをサポートします
-
Ansibleは、モジュールとプラグインに基づいて機能するフレームワークです。
-
SSHに基づいて機能します。つまり、管理対象のエンドはSSH管理をサポートする必要があります
-
自動化を実現するために、プレイブックを通じて強力な構成および状態管理を記述します
1.2 Ansibleの重要なコンポーネント
-
モジュール:Ansibleは複数の機能モジュールで構成されています
-
プレイブック:Ansibleプレイブック、yml構文を使用して特定の機能を完了するためにさまざまな汎用モジュールを呼び出す
-
役割:Ansbiel役割。ansible-galaxyコマンドを使用して、サードパーティの役割の役割をダウンロードできます。
-
ansible-vault:ファイル暗号化ツール
-
ansilbe-console:コンソールに基づいてユーザーと対話する
-
ansible-doc:ヘルプドキュメント、-lすべてのモジュール、-s簡単なヘルプ
1.3 Ansible実行プロセスと原理の説明
-
構成ファイルをロードします。デフォルトは/etc/ansible/ansible.cfgです
-
対応するモジュールをロードする
-
一時的なpyファイルを作成し、ターゲットマシンの〜/ .ansible / tmpディレクトリに転送します
-
+ x権限をpyファイルに追加し、実行して結果を返す
-
pyファイルを削除し、0をスリープ状態にして終了します
1.4 Ansible実行ステータスの説明
-
緑:実行に成功、変更する必要はありません
-
黄色:正常に実行されました。ターゲットホストを変更してください
-
赤:実行に失敗しました
2. Ansibleインストールと構成
2.1 Ansibleをインストールする
CentOS 7.6を例にして、Ansibleをインストールします。
[root @ ansible〜]#cat / etc / redhat-release CentOS Linux release 7.6.1810(Core) [root @ ansible〜] #uname -a Linux ansible 3.10.0-957.el7.x86_64#1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU / Linux #配置 epel 源[root @ ansible〜]#cat /etc/yum.repos.d/epel-7.repo [epel] name =エンタープライズLinux 7の追加パッケージ-$ basearch baseurl = http://mirrors.aliyun.com/epel/7/$basearch failovermethod = priority enabled = 1 gpgcheck = 0 gpgkey = file:/// etc / pki / rpm-gpg / RPM-GPG-KEY -EPEL-7 [ epel- debuginfo] name = Enterprise Linux 7の追加パッケージ-$ basearch-デバッグ baseurl = http://mirrors.aliyun.com/epel/7/$basearch/debug failovermethod = priority enabled = 0 gpgkey = file:/// etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL-7 gpgcheck = 0 [epel-source] name = Enterprise Linux 7の追加パッケージ-$ basearch-ソース baseurl = http://mirrors.aliyun.com/epel/7/SRPMS failovermethod = priority enabled = 0 gpgkey = file:/// etc / pki / rpm-gpg / RPM-GPG-KEY-EPEL-7 gpgcheck = 0 #安装Ansible [root @ ansible〜]#yum install ansible -y # 查看既に安装版本[root @ ansible〜]#ansible --version ansible 2.8.2構成 ファイル= /etc/ansible/ansible.cfg 構成されたモジュール検索パス= [u '/ root / .ansible / plugins /モジュール '、u' / usr / share / ansible / plugins / modules '] ansible pythonモジュールの場所= /usr/lib/python2.7/site-packages/ansible 実行可能ファイルの場所= / usr / bin / ansible pythonバージョン= 2.7.5(デフォルト、2018年10月30日、23:45:53)[GCC 4.8 .5 20150623(Red Hat 4.8.5-36)] [root @ ansible yum.repos.d]# ansible-2.8.2-1.el7.noarch
Ansible関連ドキュメントを表示
yum info ansible rpm -qa ansible rpm -ql ansibel | もっと少なく
2.2 Ansible設定ファイル
Ansibleの主な構成ファイルと機能は次のとおりです。
/ etc / ansible /├──ansible.cfg#Ansible メイン構成ファイル ├──hosts #管理対象マシンのリストを定義するために使用└──ロール#このディレクトリは、ロールを定義するために使用されます
Ansible設定ファイルの
主なパラメーターの説明
/etc/ansible/ansible.cfg
#古いパラメーターを閉じるalarm deprecation_warnings = False# コマンドアラームを閉じる command_warnings = False #最初の接続を確認せず、次のプレイブックと連携して、パスワードなしのsshログインを実現します host_key_checking = False# 並列 フォークの数を設定= 40 # ログを開くlog_path = / var / log / ansible.log #sshタイムアウト時間 タイムアウト= 30
2.3ホストリスト
デフォルトのホストファイル/etc/ansible/hosts
。操作対象のホストはホストリストに含まれている必要があります。
CDの/ etc / ansible Vimのホスト #パケット [モンス] エイリアス#設定ホスト セファロ-ノードansible_ssh_host。1 = 172.16.93.1 [クライアント] 172.16.93.1:2222 #もサポートドメイン名とホスト名、IPへの最終的な解釈 #通常のサポート式 [kvm_node_all] 172.16.93。[6:9] # グループ化ホスト変数を設定[kvm_node_all:vars] ansible_ssh_user = root ansible_ssh_pass = Efly1234 ansible_ssh_port = 22 #自動 意味変数my_name = zhangsan#ホスト 継承関係、親の継承を継承しますすべての変数 [kvm_node_all:children] クライアント
2.4 Ansible監督と管理マシンが鍵認証を行う(オプション)
秘密鍵#発生 SSH-keygenの #は、次の2つの文書の後に生成されます [ansibleルート@〜]ツリー#/root/.ssh/ /root/.ssh/ ├──id_rsaと └──id_rsa.pub #公開鍵管理対象マシンに書き込む ssh-copy-id 192.168.199.52 #または ssh-copy-id -i /root/.ssh/id_rsa.pub -p 22 [email protected]