●Ansible
Red Hat社が開発しているオープンソースの構成管理ツール。ソースコードはPython。
ChefやPuppetとは違い、エージェントレスの構成管理ツール。管理対象の機器にエージェントは必要なく、Ansibleを実行する環境からSSHで接続して直接作業を行う。
Ansibleは、実行する環境から設定を行う「プッシュ型」の構成管理ツール。対してChefやPuppetは、設定される側が情報を自ら取得して反映する「プル型」。
Ansibleには、構成管理の他にもアプリケーションの配置を行うデプロイや、複数のシステムの設定を自動化するオーケストレーションの機能がある。
Ansibleのデフォルトの設定ファイルは「/etc/ansible/ansible.cfg」
■Ansibleを構成する要素
・インベントリ(Inventory)
管理対象ノード(Managed nodes)を記述するファイル。デフォルトのインベントリは「/etc/ansible/hosts」。
・モジュール
タスク(実行したい処理の単位)で実行する処理の本体。タスクプラグインやライブラリプラグインとも。
コマンドラインから、もしくはプレイブック(タスクの集合)のタスクで実行。
VMwareの仮想マシンやDockerのコンテナを作成・管理できるモジュールや、CiscoやJuniperなど主要なネットワーク機器の情報を収集・設定できるモジュールも多数用意。
・プレイブック(Playbook)
複数のタスクをPlaybookというファイルにYAML(構造化データの形式)で記述。
●ansibleコマンド
1つのモジュール(タスクで実行する処理の本体)を指定して実行するアドホック(その場限りの)コマンド。
●ansible-playbookコマンド
複数のタスクを記述したファイルであるプレイブック(Playbook)を実行するコマンド。複数の管理対象ノードに一度に多くのタスクを実行できる。
ansibleコマンドとansible-playbookコマンドの書式、主なオプション
■ansible 管理対象ノード オプション
■ansible-playbook プレイブック オプション
共通オプション
・-i|—inventory インベントリの指定
・-u|—user SSSH接続するリモートユーザの指定
・-k|—ask-pass SSHパスワードを聞く
・-b|—become 権限昇格(sudoなど)してタスクを実行
・-K|—ask-become-pass 権限昇格用のパスワードを聞く
・-C|—check チェックモード(DryRun)で実行
ansibleのオプション
・-m|—module-name モジュールの指定
・-a|—args モジュールに対する引数の指定
ansible-playbookのオプション
—syntax-check playbookの構文チェックのみ実行
※プレイブックの書式
・「- 」でリストを開始し、スペースによるインデント(字下げ)でリスト中のメンバーを揃える。
・各設定は「キー: 値」の形式で記述。
●Ansibleのコマンド実行時には以下の順序で設定オプションが検索され、最初に検出されたものが使用される。
- 環境変数 ANSIBLE_CONFIG
- カレントディレクトリの「ansible.cfg」
- ホームディレクトリの「ansible.cfg」または「.ansible.cfg」
- 「/etc/ansible/ansible.cfg」