関連リンク
#はじめに
前回の記事では、Exastro IT Automation(以下ITAと略)に搭載されているAnsible3モードの1つ、Ansible-Legacyの使い方について説明しました。
今回は前回に引き続きAnsible-Driver実習編を参考して、Ansible-LegacyRoleを実際に使ってみたいと思います。
###作業環境
- Exastro IT Automation 1.5.0
- CentOS Linux 7(ITAサーバ)
- CentOS Linux 7(targetサーバ)
- Windows 10(ITAクライアント)
- Google Chrome(Win10側)
##Ansible-LegacyRoleとは
Ansible-LegacyRoleとは、ロールパッケージを登録して利用できるモードです。
そもそもRoleとは、playbookで読み込む、Ansible標準のファイル構成で作られた設定のようなものです。
決められたファイル構成にすることで、Ansible側で解釈して設定を読み込んでくれます。
単純な処理だと1つのPlaybookで問題ありませんが、複雑な処理の場合はplaybookを適切なRoleに分割してインクルードさせることで、再利用性や可読性がよくなるというわけです。
自分が作成したRoleや、Ansible Galaxyから取得したRoleをITAに登録して使うことができますが、Role内の変数定義や任意の設定などは、ITA内のITAreadmeや読み替え表を使って設定します。
つまり、Role自体は変更したりしなくて済みます。
Ansible-LegacyRoleについて詳しくは、コミュニティサイトのAnsible-Driver座学編を参考にして下さい。
#②Ansible-LegacyRole編
今回はAnsible GalaxyからダウンロードしたRoleをITAに登録し、実行します。
このRoleは、マシンの/etc/sudoers.d
配下にファイルを追加します。
具体的な手順はこのようになります。
- 事前準備
- Movementの設定
- オペレーションの設定
- 代入値管理(パラメータシートの作成)
- 作業実行
##1.事前準備
今回はAnsible-GalaxyからダウンロードしたRoleをITAに登録し、実行します。
使用するRoleを以下のURLからダウンロードします。
https://galaxy.ansible.com/weareinteractive/sudo
このRoleは、マシンの/etc/sudoers.d
配下にファイルを追加します。
しかしこのRoleは、任意の部分の設定がコメントアウトされていたり、デフォルトの値が入っていたりします。
このような場合、ITAでは、Role中のファイルを変更することなく、ITAreadmeと読替表を作成することで必要な変更を加えることができます。
詳しいITAreadmeと読替表についてはマニュアルを参照するとよいです。
作成するファイルは以下の通りです。
ITAreadme・・・変数の定義を追加・変更するための設定ファイル
sudo_users:
- name:
読替表・・・defaults変数定義ファイルまたはITAreadmeに定義されている
「VAR_...」以外の変数に対して、ITAで具体値を設定できるようにするファイル
LCA_sudo_users: sudo_users
LCA_sudo_sudoers_file: sudo_sudoers_file
ダウンロードし解凍したRole、作成したファイルを以下のようにまとめ、ZIPファイルを作成します。
①「roles」フォルダを作成
②作成した「roles」フォルダにダウンロードしたRoleを移動
③「roles」フォルダ、読替表、ITAreadmeをZIPファイルにまとめる
##2.Movementの設定
ここでは、Roleに関連付けるMovementの設定について述べます。
###Movementの作成
「Ansible-LegacyRole 」メニューグループ >> 「Movement一覧」
を選択し、登録作業ボタンより登録作業を開始します。
必須入力項目は「Movement名」「ホスト指定形式」です。
※Movement:各機器に対する構築ツールを使った構築、設定などの作業の単位
本記事ではMovement名「sudoer登録」ホスト指定形式「IP」と登録します。
今回、以下の表のように設定します。
入力内容 | |
---|---|
Movement名 | Sudoer登録 |
ホスト指定形式 | IP |
①必須入力項目を入力
②入力後、[登録]ボタンをクリック
###ロールパッケージの登録
「Ansible-LegacyRole」メニューグループ >> 「ロールパッケージ管理」
を選択し、登録作業をします。
必須入力項目は「ロールパッケージ名」「ロールパッケージファイル(ZIP形式)」です。
プレイブック素材には先ほど作成した「roles.zip
」を使用します。
ファイル指定後は必ず事前アップロードボタンを押す必要があります。
今回、ロールパッケージ名を「sudo-master」と設定します。
①必須入力項目を入力(ロールパッケージ選択後、「事前アップロード」ボタンをクリック)
②入力後、[登録]ボタンをクリック
###MovementにRoleを関連付ける
「Ansible-LegacyRole」メニューグループ >> 「Movement詳細」
を選択し、登録作業をします。
必須入力項目は「Movement」「ロールパッケージ名」「インクルード順序」です。
今回、以下の表のように設定します。
Movement名 | ロールパッケージ名 | ロール名 | インクルード順序 |
---|---|---|---|
Sudoer登録 | sudo-master | ansible-sudo-master | 1 |
①必須入力項目を適宜選択、入力
②[登録]ボタンをクリック
##3.オペレーションの設定
オペレーションを作成し、Movementとホストを関連付けます。
オペレーションは、作業全体を示すITAシステム内で使用する作業名称のことを指します。
「基本コンソール」メニューグループ >> 「投入オペレーション一覧」
を選択し、登録を開始します。
必須入力項目は「オペレーション名」「実施予定日」です。
今回、以下の表のように設定します。
項目名 | 入力内容 |
---|---|
オペレーション名 | LegacyRole_Practice |
実施予定日時 | (任意の値) |
①必須入力項目「オペレーション名」「実施予定日」の入力
②[登録]ボタンをクリック
##4.代入値管理(パラメータシートの作成)
###パラメータシートの作成
パラメータシートを作成し、ターゲットマシンに適用するパラメータを管理します。
「メニュー作成」メニューグループ >> 「メニュー定義/作成」
を選択、必須項目を入力します。
必須入力項目は「メニュー名」「作成対象」「表示順序」「用途」です
①必須入力項目を適宜選択、入力
②[対象メニューグループ]ボタンをクリック
③メニューグループを図のように選択(メニューグループは前回記事「Ansibleモード共通設定」にて作成済み)
④[決定]ボタンをクリック
###パラメータシートの項目名を定義
前項で[決定]ボタンをクリックしたその続きです。
ここではシートの項目を定義します。
項目を追加し、項目名を「sudoer_name」「sudoer_filename」と入力します。
最大バイト数はどちらも32バイトです。
⑤[項目]をクリックし、新しい項目を追加
⑥「項目 1」「項目 2」をクリックし、項目名を設定
⑦図のように選択、入力
⑧[作成]ボタンをクリック
###パラメータの登録
ここまでで、パラメータシートの作成を行いました。
ここからはターゲットホストの設定に使用するデータを登録します。
「AnsibleDriver実践用」メニューグループ >> 「LegacyRole実践」
を選択し、登録を開始します。
必須入力項目は「ホスト名」「オペレーション」
「パラメータ>>[sudoer_name]、[sudoer_filename]」です。
①必須入力項目を適宜選択、入力
②[登録]ボタンをクリック
###代入値自動登録設定
各項目と変数を関連付けます。
「Ansible-LegacyRole」メニューグループ >> 「代入値自動登録設定」
を選択し、登録作業をします。
各項目に対して、「メニューグループ:メニュー」「登録方式」「Movement」「Value変数」を設定します。
また具体的な設定、下表のようにします。
メニューグループ:メニュー | 項目 | 登録方式 | Movement | Value-変数変数名 | Value変数-メンバー変数名 |
---|---|---|---|---|---|
LegacyRole実践用 | sudoer_name | Value型 | Sudoer登録 | LCA_sudo_users | [0].name |
LegacyRole実践用 | sudoer_filename | Value型 | Sudoer登録 | LCA_sudo_sudoers_file |
①必須入力項目を適宜選択、入力
②[登録]ボタンをクリック
###代入値・作業ホストの確認
「Ansible-LegacyRole」メニューグループ >> 「作業対象ホスト」
「Ansible-LegacyRole」メニューグループ >> 「代入値管理」
の[フィルタ]をクリックし、「一覧/更新」を確認します。
設定した項目が、「legacyRole代入値自動登録設定プロシージャ」によって正しい値に指定されているかを確認します。
##5.作業実行
###Movementの実行
「Ansible-LegacyRole」メニューグループ >>「作業実行」を選択します。
実行するMovementとオペレーションを選択し、ページ下にある[実行]をクリックすることで作業が開始します。
①作成したMovementの選択
②作成したオペレーションの選択
③[実行]ボタンをクリック
###実行結果の確認
作業実行すると画面が遷移して、実行ステータスやログが表示されます。
また、投入データや結果データをまとめたZIPファイルをダウンロードすることができます。
また、ターゲットマシンに移動し以下を実行します。
# cat /etc/sudoers.d/example_sudoers
以下が表示されると、実行成功です。
# Ansible managed
example_name ALL=(ALL:ALL) ALL
#おわりに
今回は、Ansible3モードの1つ、Ansible-LegacyRoleの使い方について説明しました。
次回はAnsible-Pioneerについて説明したいと思います。
関連リンク
###索引