クイックスタート

本シナリオでは、簡単な例として、ホスト名の変更を題材に Exastro IT Automation の基本操作を学習します。
また、本シナリオを通して、Exastro IT Automation により自動化の最大のメリットを理解することを目的としています。
今回の題材では、作業を実行するために以下の事前準備を行います。
事前準備を終えた後は、作業概要の登録やパラメータの設定といった必要最低限の操作を行い、繰り返し作業を実施します。
このシナリオでは、最初に1回だけ準備作業を行っておけば、作業を実施する際には簡単な操作だけで何度でも同じ作業を実施できることを理解することを目的としています。

前提

本シナリオを実行するために必要となる条件は、下記の通りです。
  1. 作業可能なサーバ(RHEL8)がある。

  2. 利用するユーザはsshでログイン可能で、sudoer で全操作権限を持っている必要があります。

  3. 作業用ワークスペース

作業対象サーバ
Exastro IT Automation が Ansible を利用して、行う操作対象のサーバのことです。
ワークスペース
システムの構成情報や自動化タスクのための設計情報を中央管理するための作業領域のことです。

事前準備

システムの構成情報のフォーマットを設計します。
システムにある全ての情報をパラメータとして管理する必要はありません。今後管理が必要になったタイミングで適宜追加や見直しをしましょう。

パラメータシート作成

パラメータシート作成 では、作業時に利用する設定値(パラメータ)を登録するためのパラメータシートを管理します。
パラメータシート
システムのパラメータ情報を管理するデータ構造のことです。
ホスト名を管理するためのパラメータシートを作成します。
パラメータシート作成 ▶ パラメータシート定義・作成 から、ホスト名を管理するために、「サーバー基本情報」というパラメータシートを作成します。
パラメータシート作成
表 47 パラメータシート作成(サーバー基本情報)の項目の設定値

設定項目

項目1設定値

項目の名前

ホスト名

項目の名前(Rest API用)

hostname

入力方式

文字列(単一行)

最大バイト数

64

正規表現

初期値

必須

一意制約

説明

備考

表 48 パラメータシート作成(サーバー基本情報)のパラメータシート作成情報の設定値

設定項目

設定値

項番

(自動入力)

パラメータシート名

サーバー基本情報

パラメータシート名(REST)

server_information

作成対象

パラメータシート(ホスト/オペレーションあり)

表示順序

1

バンドル利用

「利用する」にチェックを入れない(無効)

最終更新日時

(自動入力)

最終更新者

(自動入力)

作業項目の設定

作業手順を登録するために、Exastro IT Automation で扱う作業単位である Movement (ジョブ)を定義します。
Movement
Exastro IT Automation における、最小の作業単位のことを指します。
1回の Movement 実行は、1回の ansible-playbook コマンドの実行と同じです。
Exastro IT Automation では、Movement という単位で作業を管理します。Movementは作業手順書における作業項目に該当します。
Movement は、Ansible Playbook のような IaC (Infrastrucure as Code) を紐付けたり、IaC 内の変数とパラメータシートの設定値を紐付ける際に利用します。
Ansible-Legacy ▶ Movement一覧 から、ホスト名設定のための Movement を登録します。
Movement登録
表 49 Movement 情報の設定値

Movement名

Ansible利用情報

ホスト指定形式

ヘッダーセクション

ホスト名設定

IP

※ヘッダーセクションを参照

リスト 249 ヘッダーセクション
- hosts: all
  remote_user: "{{ __loginuser__ }}"
  gather_facts: no
  become: yes

Ansible Playbook 登録

Ansible Playbook の登録を行います。Ansible Playbook は運用手順書内に記載されたコマンドに該当します。
Ansible-Legacyモードではご自身で作成したPlaybookを利用することを想定しています。
Ansible-Legacyモードを使用することのメリットとして、自身の用途に合ったPlaybookを作成することで、自由に手順を作成できることが挙げられます。
ですが、Ansible-Legacyモードを利用するにはご自身でPlaybookを作成していただく必要があるため、Playbook作成の知識が必要となります。
本シナリオでは、 以下のPlaybookを利用します。以下をコピーして、yml形式でhostname.ymlを作成してください。
リスト 250 hostname.yml
- name: Set a hostname
  ansible.builtin.hostname:
    name: "{{ hostname }}"
Ansible-Legacy ▶ Playbook素材集 から、上記のPlaybookを登録します。
Playbook登録
表 50 Ansible Playbook 情報の登録

Playbook素材名

Playbook素材

hostname

hostname.yml

Movement と Ansible Playbook の紐付け

定義した Movement に対して、Ansible Playbook を紐付け、更に Ansible Playbook 内の変数と パラメータシート作成 で登録したパラメータシートの項目の紐付けを行います。
Ansible-Legacy ▶ Movement-ロール紐付 から、Movement と Ansible Playbook の紐付けを行います。
本シナリオでは、 hostname.ymlを利用します。
Movement-Playbook紐付け
表 51 Movement-Playbook紐付け情報の登録

Movement名

Playbook素材

インクルード順序

ホスト名設定

hostname.yml

1

パラメータシートの項目と Ansible Playbook の変数の紐付け

hostname.ymlでは、hostname という変数にホスト名を代入することで、対象サーバーのホスト名を設定することができます。
Ansible-Legacy ▶ 代入値自動登録設定 から、サーバー基本情報パラメータシートのホスト名の項目に入るパラメータを、Ansible Playbook の hostname に代入する設定を行います。
代入値自動登録設定
表 52 代入値自動登録設定の設定値

パラメータシート(From)

登録方式

Movement名

IaC変数(To)

メニューグループ:メニュー:項目

Movement名:変数名

代入値自動登録用:サーバー基本情報:ホスト名

Value型

ホスト名設定

ホスト名設定:hostname

機器登録

作業対象となるサーバを機器一覧に登録します。
Ansible共通 ▶ 機器一覧 から、作業対象であるサーバーの接続情報を登録します。
機器一覧登録
表 53 機器一覧の設定値

HW機器種別

ホスト名

IPアドレス

ログインパスワード

ssh鍵認証情報

Ansible利用情報

ユーザ

ssh秘密鍵ファイル

Legacy/Role利用情報

認証方式

SV

server01

192.168.0.1 ※適切なIPアドレスを設定

接続ユーザ名

(秘密鍵ファイル)

鍵認証(パスフレーズなし)

Tip

今回のシナリオでは鍵認証で実行しますが、パスワード認証での実行も可能です。
認証方式は、作業対象サーバーへのログインの方法に応じて適宜変更してください。

繰り返し作業(1回目)

具体的なパラメータの設定や作業手順を考える前に、作業計画を立てるところから初めます。
まずは、いつ、どこの機器に対して、何を、どうするかといった情報を簡単に整理しておきましょう。
表 54 作業の方針

作業実施日時

2024/04/01 12:00:00

作業対象

作業対象サーバー(RHEL8)

作業内容

ホスト名の変更

作業概要登録

オペレーション登録では、作業を実施する際の作業概要を定義します。オペレーションは各作業ごとに1つ作成します。オペレーションは使いまわさないようにしましょう。
先に決めた作業の方針を元にオペレーション情報を記入しましょう。
オペレーション
実施する作業のことで、オペレーションに対して作業対象とパラメータが紐づきます。
基本コンソール ▶ オペレーション一覧 から、作業実施日時や作業名を登録します。
オペレーション登録
表 55 オペレーション登録内容

オペレーション名

実施予定日時

RHEL8のホスト名変更作業

2024/04/01 12:00:00

Tip

作業実施日時は、本シナリオでは適当な日時で問題ありませんが、作業日が定まっている場合は、正確な作業実施の予定日時を設定することを推奨します。
定期作業などの繰り返し行われる作業のように、作業日が定まっていない場合は現在の日時を登録しても問題ありません。

パラメータ設定

パラメータシートには、設定したいパラメータを機器ごとに登録します。
オペレーションには、作業概要登録で作成した RHEL8のホスト名変更作業 を選択します。オペレーションを選択することでオペレーションに対して、作業対象サーバとパラメータが紐付けされます。
本シナリオでは、server01 というホスト名を作業対象サーバに設定します。
入力用 ▶ サーバー基本情報 から、ホストに対するパラメータを登録します。
パラメータ登録
表 56 サーバー基本情報パラメータの設定値

ホスト名

オペレーション

パラメータ

オペレーション名

ホスト名

server01

2024/04/01 12:00:00_RHEL8のホスト名変更作業

server01

作業実行

  1. 事前確認

    まずは、現在のサーバーの状態を確認しましょう。
    作業対象サーバに SSH ログインし、現在のホスト名を確認します。
    リスト 251 コマンド
    # ホスト名の取得
    hostnamectl status --static
    
    リスト 252 実行結果
    # 結果は環境ごとに異なります
    localhost
    
  2. 作業実行

    Ansible-Legacy ▶ 作業実行 から、ホスト名設定 Movement を選択し、 作業実行 を押下します。
    次に、作業実行設定 で、オペレーションに RHEL8のホスト名変更作業 を選択し 選択決定 を押下します。
    最後に、実行内容を確認し、作業実行 を押下します。
    作業状態確認 画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。
作業実行
  1. 事後確認

    再度作業対象サーバに SSH ログインし、ホスト名が変更されていることを確認します。
    リスト 253 コマンド
    # ホスト名の取得
    hostnamectl status --static
    
    リスト 254 実行結果
    server01
    

繰り返し作業(2回目)

具体的なパラメータの設定や作業手順を考える前に、作業計画を立てるところから初めます。
まずは、いつ、どこの機器に対して、何を、どうするかといった情報を簡単に整理しておきましょう。
表 57 作業の方針

作業実施日時

2024/05/01 12:00:00

作業対象

作業対象サーバー(RHEL8)

作業内容

ホスト名の更新

作業概要登録

オペレーション登録では、作業を実施する際の作業概要を定義します。オペレーションは各作業ごとに1つ作成します。オペレーションは使いまわさないようにしましょう。
先に決めた作業の方針を元にオペレーション情報を記入しましょう。
オペレーション
実施する作業のことで、オペレーションに対して作業対象とパラメータが紐づきます。
基本コンソール ▶ オペレーション一覧 から、作業実施日時や作業名を登録します。
オペレーション登録
表 58 オペレーション登録内容

オペレーション名

実施予定日時

RHEL8のホスト名更新作業

2024/05/01 12:00:00

Tip

作業実施日時は、本シナリオでは適当な日時で問題ありませんが、作業日が定まっている場合は、正確な作業実施の予定日時を設定することを推奨します。
定期作業などの繰り返し行われる作業のように、作業日が定まっていない場合は現在の日時を登録しても問題ありません。

パラメータ設定

本シナリオでは、server01 というホスト名をパラメータ値として設定しました。
しかし、機器一覧 でもホスト名を管理しており、ホスト名の管理が多重管理状態となっています。
Exastro IT Automation では、機器の情報を ITA独自変数 で取得することができ、ログイン先のホスト名は __inventory_hostname__ という変数を使うことで取得できるため、パラメータの一元管理が可能となります。
入力用 ▶ サーバー基本情報 から、ITA 独自変数を使って機器一覧に登録してあるホスト名を登録してみましょう。
パラメータ設定
表 59 サーバー基本情報パラメータの設定値

ホスト名

オペレーション

パラメータ

オペレーション名

ホスト名

server01

2024/05/01 12:00:00_RHEL8のホスト名更新作業

"{{ __inventory_hostname__ }}"

__inventory_hostname__ 変数を使うことで、機器一覧に登録したホスト情報を参照できるようになりました。
次に、作業対象となるサーバーのホスト名を db01 に変更します。
Ansible共通 ▶ 機器一覧 から、作業対象サーバのホスト名を db01 に更新します。
パラメータ登録
表 60 機器一覧の設定値

HW機器種別

ホスト名

IPアドレス

ログインパスワード

ssh鍵認証情報

Ansible利用情報

ユーザ

ssh秘密鍵ファイル

Legacy/Role利用情報

認証方式

SV

db01

192.168.0.1 ※適切なIPアドレスを設定

接続ユーザ名

(秘密鍵ファイル)

鍵認証(パスフレーズなし)

作業実行

  1. 作業実行

    Ansible-Legacy ▶ 作業実行 から、ホスト名設定 Movement を選択し、 作業実行 を押下します。
    次に、作業実行設定 で、オペレーションに RHEL8のホスト名更新作業 を選択し 選択決定 を押下します。
    最後に、実行内容を確認し、作業実行 を押下します。
    作業状態確認 画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。
作業実行
  1. 事後確認

    再度サーバに SSH ログインし、ホスト名が変更されていることを確認します。
    リスト 255 コマンド
    # ホスト名の取得
    hostnamectl status --static
    
    リスト 256 実行結果
    db01
    
以降は、 Ansible共通 ▶ 機器一覧 から、ホスト名を変更し、作業実行をするだけでホスト名の更新を行うことが可能です。

まとめ

RHEL8 サーバに対してホスト名を設定するシナリオを通して、Exastro IT Automation の基本的な操作方法を学習しました。
また、Exastro IT Automation により自動化の最大のメリットである、繰り返し作業による作業の効率化について学習しました。
次のシナリオ では、より実用的なパラメータシートの管理方法について紹介をします。