0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Exastro IT Automation 2.4でAnsible-Pioneerを使ってみた

Last updated at Posted at 2024-06-24

Ansible-Pioneerとは

Ansible-Pioneerとは、なんとITAの独自モジュールです。
対話ファイルというものを作成すると、直接実行するPlaybookからPioneerモジュールを使って対話ファイルを順番に実行していきます。

Ansibleのどのモジュールを使っても自動化できない場合、手動作業を挟んでしまうと自動化のメリットが半減しますよね。
そこで、Ansible-Pioneerが自動化を止めない最後の切り札となるわけです。
Telnet・SSHでログイン可能であれば対応可能なので、幅広い機器に対応できますね。
これでより柔軟な自動化を実現できます。

Ansible-Pioneerについて詳しくは、ITAマニュアルを参考にして下さい.

③Ansible-Pioneer編

今回はPioneer独自モジュールを用い、対象ホストの/tmp/hostsにホスト追加を実施します。

具体的な手順はこのようになります。

1.事前準備
2.Movementの設定
3.オペレーションの設定
4.代入値管理(パラメータシートの作成)
5.作業実行

1.事前準備

今回は以下の対話ファイルを使用します。
書式やモジュールについての詳細はITAマニュアルを参照するとよいです。

add_host.yml
conf:
  timeout: 20
  
exec_list:
  - expect: 'password'
    exec: '{{ __loginpassword__ }}'

#“register”を用い、‘cat /tmp/hosts’ の標準出力を登録
  - command: 'cat /tmp/hosts'
    prompt: root@{{ __inventory_hostname__ }}
    register: result_stdout
    when:
      - VAR_hosts_ip is define
      - VAR_hosts_name is define

  - command: 'echo {{ item.0 }} {{ item.1 }} >> /tmp/hosts'
    prompt: 'root@{{ __inventory_hostname__ }}'
    when:
      - VAR_hosts_ip is define
      - VAR_hosts_name is define
#“with_items”を用いた繰り返し処理を定義
    with_items:
      - '{{ VAR_hosts_ip }}'
      - '{{ VAR_hosts_name }}'
#“exec_when”を用いた分岐処理を定義
#判定は繰り返しごとに行われる
    exec_when:
      - result_stdout no match({{ item.0 }} *{{ item.1 }})
#登録された出力中に指定文字列が存在しないときに処理を行う

2.Movementの設定

ここでは、Roleに関連付けるMovementの設定について述べます。

Movementの作成

「Ansible-Pioneer」メニューグループ >> 「Movement一覧」
を選択し、登録作業ボタンより登録作業を開始します。

必須入力項目は「Movement名」「ホスト指定形式」です。

※Movement:各機器に対する構築ツールを使った構築、設定などの作業の単位

今回は下表のように設定します。
スクリーンショット 2024-06-11 174423.png

Movement名 ホスト指定形式
add_host IP

OS種別マスタの作成

PioneerはターゲットホストのOSに応じて、実際に投下されるコードを選択することができます。

「Ansible-Pioneer」メニューグループ → 「OS種別」
を選択し、登録作業ボタンより登録作業を開始します。

今回のターゲットホストはRHEL8のサーバなので、以下のように設定します。

OS種別名 SV
RHEL8 True

スクリーンショット 2024-06-11 180623.png

機器一覧情報への追加

先程登録したOS種類とターゲットマシンを紐付けます。

「基本コンソール」メニューグループ → 「機器一覧」を選択します。
[フィルタ]ボタンを押下し、対象となる機器(target)の[更新]を押下します。

次に下表のように選択・設定します。

プロトコル OS種別
ssh RHEL8

image.png

対話種別の作成

「Ansible-Pioneer」メニューグループ → 「対話種別」
を選択し、登録作業ボタンより登録作業を開始します。

次に下表のように選択・設定します。

対話種別名
hosts追加 

スクリーンショット 2024-06-11 181846.png

3.オペレーションの設定

オペレーションを作成し、Movementとホストを関連付けます。

ここでのオペレーションは、作業全体を示すITAシステム内で使用する作業名称のことを指します。

「基本コンソール」メニューグループ → 「オペレーション一覧」
を選択し、登録を開始します。

必須入力項目は「オペレーション名」「実施予定日」です。
今回は下表のように設定します。

オペレーション名 実施予定日時
Pioneer_Practice (任意の値)

スクリーンショット 2024-06-11 182729.png

4.代入値管理(パラメータシートの作成)

パラメータシート作成

パラメータシートを作成し、ターゲットマシンに適用するパラメータを管理します。

「パラメータシート作成」メニューグループ → 「パラメータシート定義・作成」
を選択、必須項目を入力します。

必須入力項目は「パラメータシート名」「パラメータシート名(REST)」「表示順序」「対象メニューグループ」です。
また、今回はバンドル利用にチェックを入れます。
スクリーンショット 2024-06-11 183725.png

パラメータシートの項目名定義

ここではシートの項目を定義します。

項目を追加し、「項目名」「入力方式」「最大バイト数」を下図のように設定します。
スクリーンショット 2024-06-11 184324.png

パラメータの登録

ここまでで、パラメータシートの作成を行いました。
ここからはターゲットマシンの設定に使用するデータを登録します。

「AnsibleDriver実践用」メニューグループ >> 「Pioneer実践」
を選択し、登録を開始します。

必須入力項目は「ホスト名」「オペレーション」「パラメータ」です。

具体的な設定は以下の表を参考にします。
スクリーンショット 2024-06-12 101716.png

ホスト名 オペレーション 代入順序 IP_address Host_name
(対象のホスト) Pioneer_practice 1 0.0.0.0 www.test.com
(対象のホスト) Pioneer_practice 2 1.1.1.1 www.pioneer.com

代入値自動登録設定

各項目と変数を関連付けます。

「Ansible-Pioneer」メニューグループ → 「代入値自動登録設定」
を選択し、登録作業をします。
具体的な設定は以下の表を参考にします。

メニューグループ:メニュー:項目 代入順序 登録方式 Movement名 Movement名:変数名 代入順序
代入値自動登録用:Pionner:パラメータ/Host_name 1 Value型 add_host add_host:Var_hosts_name 1
代入値自動登録用:Pionner:パラメータ/Host_name 2 Value型 add_host add_host:Var_hosts_name 2
代入値自動登録用:Pionner:パラメータ/IP_address 1 Value型 add_host add_host:Var_hosts_ip 1
代入値自動登録用:Pionner:パラメータ/IP_address 2 Value型 add_host add_host:Var_hosts_ip 2

スクリーンショット 2024-06-12 102152.png

5.作業実行

Movementの実行

「Ansible-Pioneer」メニューグループ →「作業実行」を選択します。

実行するMovementとオペレーションを選択し、ページ下にある[実行]をクリックすることで作業が開始します。
スクリーンショット 2024-06-12 103824.png

実行結果の確認

作業実行すると画面が遷移して、実行ステータスやログが表示されます。
また、投入データや結果データをまとめたZIPファイルをダウンロードすることができます。

適宜、必要項目を確認します。
スクリーンショット 2024-06-12 110249.png
また、ターゲットホストに移動し/tmp/hostsの中身を確認します。

target.(RHEL8)
# cat /tmp/hosts

以下が表示され、ホストが追加されていれば成功です。

0.0.0.0 www.test.com
1.1.1.1 www.pioneer.com

おわりに

ITAに搭載されているAnsible-Pioneerモードの使い方について記事を作成し説明しました。基本的な操作はLegacyモードなどとほとんど変わらず、使いづらいということもないので、対話が入ってくる処理の場合に使うと便利だと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?