はじめに
Exastro IT Automationとは
システム構成(IaC+パラメータ)を管理するためのフレームワークです。
【Exastro-suite】より
今回は5月にリリースされたITAのver2.4を利用して、ITAをすぐに実施できる「クイックスタート」をやってみたいと思います。
ITAの標準的な連携機能であるAnsible Legacyを使って、Linuxサーバのホスト名変更作業を行い、構築作業の自動化を実施します。
手順については、Ansible Legacyのクイックスタート を参考にしました。
作業環境
- Exastro IT Automation 2.4.0
- RHEL8(ITAサーバ用)
- RHEL8(ターゲットマシン用)
- Windows10(クライアント)
- Google Chrome(Win10側)
作業フロー
自動化するための作業には、事前準備として1度だけ実施すべき作業と、繰り返し実施する作業があります。
今回のシナリオでは、1~6が事前準備にあたり。7~11と13~17は繰り返し実施する作業にあたります。
【事前準備】
1.パラメータシートの作成
2.ジョブ(Movement)の登録
3.Ansible Playbookの登録
4.ジョブ(Movement)とAnsible Playbookの紐付け
5.パラメータシートの項目とPlaybookの変数を紐付け
6.機器一覧にターゲットマシンを登録
【作業実行1回目】
7.作業名(オペレーション)の登録
8.パラメータシートにデータを登録
9.事前確認
10.作業実行
11.実行結果の確認
【作業実行2回目】
12.パラメータ設定を更新
13.作業名(オペレーション)の登録
14.機器一覧でターゲットマシンの情報を更新
15.事前確認
16.作業実行
17.実行結果の確認
事前準備
今回は、以下のPlaybookを使用します。
文字コードは「UTF-8」、改行コードは「LF」、拡張子は「yml」形式で作成してください。
※ファイルアップロードができなかったり、実行エラーが発生するため、インデントにご注意ください。
- name: Set a hostname
ansible.builtin.hostname:
name: "{{ hostname }}"
1.パラメータシートの作成
パラメータシートとは
システムのパラメータ情報を管理するデータ構造のこと。
詳しくはこちらを参照。→パラメータシート作成機能
項目の設定値は、以下のように登録しました。
設定項目 | 項目1設定値 |
---|---|
項目の名前 | ホスト名 |
項目の名前(Rest API用) | hostname |
入力方式 | 文字列(単一行) |
最大バイト数 | 64 |
必須 | ✓ |
パラメータシート作成情報の設定値は、以下のように登録しました。
設定項目 | 設定値 |
---|---|
パラメータシート名 | サーバー基本情報 |
パラメータシート名(REST用) | server_information |
作成対象 | パラメータシート(ホスト/オペレーションあり) |
表示順序 | 1 |
入力後は「作成」をクリックします。
2.ジョブ(Movement)の登録
Movementとは
Exastro IT Automation における、最小の作業単位のこと。1回の Movement 実行は、1回の ansible-playbook コマンドの実行と同じ。
詳しくはこちら→Movement一覧
以下のように登録しました。
Movement名 | ホスト指定形式 |
---|---|
ホスト名設定 | IP |
入力後は、「編集確認」 → 「編集反映」をクリックします。
3.Ansible Playbookの登録
Playbookとは
Ansibleで実行するタスクを記述したもの。
詳しくはこちらを参照。→Playbook素材集
以下のように登録しました。
Playbook素材名 | Playbook素材 |
---|---|
hostname | hostname.yml |
入力後は、「編集確認」 → 「編集反映」をクリックします。
4.ジョブ(Movement)とAnsible Playbookの紐付け
MovementとPlaybookの紐づけについて
詳しくはこちらを参照。→Playbook素材集
以下のように登録しました。
Movement名 | Playbook素材 | インクルード順序 |
---|---|---|
ホスト名設定 | hostname.yml | 1 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
5.パラメータシートの項目とPlaybookの変数を紐付け
代入値自動登録設定について
変数の紐づけ登録方式には、以下の3つのタイプがあります。
登録方式 | 説明 |
---|---|
Value型 | 基本的なタイプであり、表の中の値を変数に紐づけるもの。 |
Key型 | 表の項目(列名)を変数に紐づけるもの。項目の設定値が空白の場合は紐づけ対象外となる。 |
Key-Value型 | 名称(Key)と設定値(Value)の両方を変数に紐づける |
詳しくはこちらを参照。→ 代入値自動登録設定
以下のように登録しました。
メニューグループ:メニュー:項目 | 登録方式 | Movement名 | Movement名:変数名 |
---|---|---|---|
代入値自動登録用:サーバー基本情報:ホスト名 | Value型 | ホスト名設定 | ホスト名設定:hostname |
入力後は、「編集確認」 → 「編集反映」をクリックします。
6.機器一覧にターゲットマシンを登録
「Ansible共通」メニューグループ → 「機器一覧」メニューを選択します。
登録をクリックします。
以下のように登録しました。
HW機器種別 | ホスト名 | IPアドレス | ユーザ | パスワード | 認証方式 |
---|---|---|---|---|---|
SV | server01 | ターゲットサーバーのIPアドレス | root | (パスワード) | パスワード認証 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
作業実行1回目
7.作業名(オペレーション)の登録
「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」選択します。
以下のように登録しました。
オペレーション名 | 実施予定日時 |
---|---|
RHEL8のホスト名変更作業 | 2024/04/01 12:00:00 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
8.パラメータシートにデータを登録
今回はホスト名を「hostA」から「server01」に変更します。
「入力用」メニューグループ → 「サーバー基本情報」メニュー → 「登録」選択します。
以下のように登録しました。
入力後は、「編集確認」 → 「編集反映」をクリックします。
ホスト名 | オペレーション名 | パラメータホスト名 |
---|---|---|
server01 | 2024/04/01 12:00:00_RHEL8のホスト名変更作業 | server01 |
9.事前確認
実行する前に現在の状態を確認します。
#実行コマンド
hostnamectl status --static
# 結果(現在のホスト名が表示されます)
hostA
10.作業実行
作業実行について
詳しくはこちらを参照。→作業実行
実行するオペレーションを選択し、選択決定をクリックします。
11.実行結果の確認
再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
#実行コマンド
hostnamectl status --static
# 結果
server01
作業実行2回目
12.パラメータ設定を更新
ITA独自変数とは
ITA 独自で定義している変数のこと。ログイン先のホスト名を変数で取得できるため、パラメータの一元管理が可能となる。
その他のITA独自変数はこちらを参照。→ITA独自変数
以下のように登録しました。
ホスト名 | オペレーション名 | パラメータホスト名 |
---|---|---|
server01 | 2024/04/05 12:00:00_ITA独自変数によるホスト名変更作業 | "{{ inventory_hostname }}" |
入力後は、「編集確認」 → 「編集反映」をクリックします。
13.作業名(オペレーション)の登録
「基本コンソール」メニューグループ → 「オペレーション一覧」メニュー → 「登録」をクリックします。
以下のように登録しました。
オペレーション名 | 実施予定日時 |
---|---|
ITA独自変数によるホスト名変更作業 | 2024/04/05 11:00:00 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
14.機器一覧でターゲットマシンの情報を更新
「Ansible共通」メニューグループ → 「機器一覧」メニュー → 「登録」をクリックします。
以下のように登録しました。
ホスト名 | IPアドレス | ユーザ | パスワード | 認証方式 |
---|---|---|---|---|
db01 | ターゲットサーバーのIPアドレス | root | (パスワード) | パスワード認証 |
入力後は、「編集確認」 → 「編集反映」をクリックします。
15.事前確認
実行する前に現在の状態を確認します。
#実行コマンド
hostnamectl status --static
# 結果
server01
16.作業実行
「Ansible-Lagacy」メニューグループ → 「作業実行」メニュー →「ホスト名設定 → 「作業実行」 → 「オペレーション選択」とクリックしていきます。
最後に、「作業実行」をクリックします。
17.実行結果の確認
再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
#実行コマンド
hostnamectl status --static
# 結果
db01
おわりに
今回はクイックスタートを実施し、Anislbeでサーバのホスト名変更を実施しました。
次回はAcsible Legacyのlearnを実施し、Linuxサーバ構築でよく行うパッケージのインストール作業を自動化してみたいと思います。
次回:パッケージ管理
Exastro IT Automation(ver2.4.0)のlearnをやってみた Ansible Legacy編 その①