2. パッケージ管理¶
Tip
本シナリオに入る前に、 前のシナリオ を完了させておくことを推奨します。
2.1. パラメータ設計¶
- 「あるべきインストール状態」である「インストールされている状態」か「インストールされていない状態」のいずれかの状態を管理する方法 
- 不定数のパッケージを管理する方法 
2.1.1. 選択肢の作成¶
データシートの作成¶
 
| 設定項目 | 項目1設定値 | 
|---|---|
| 項目の名前 | present-absent | 
| 項目の名前(Rest API用) | present-absent | 
| 入力方式 | 文字列(単一行) | 
| 最大バイト数 | 16 | 
| 正規表現 | |
| 初期値 | |
| 必須 | ✓ | 
| 一意制約 | ✓ | 
| 説明 | |
| 備考 | 
| 項目名 | 設定値 | 
|---|---|
| 項番 | (自動入力) | 
| メニュー名 | 状態 | 
| メニュー名(REST) | state | 
| 作成対象 | データシート | 
| 表示順序 | 99999 | 
| 最終更新日時 | (自動入力) | 
| 最終更新者 | (自動入力) | 
選択肢を登録¶
 
| パラメータ | 備考 | 
|---|---|
| present-absent | |
| present | インストール | 
| absent | アンインストール | 
2.1.2. パラメータシートの作成¶
 
| 設定項目 | 項目1設定値 | 項目2設定値 | 
|---|---|---|
| 項目の名前 | パッケージ名 | 状態 | 
| 項目の名前(Rest API用) | package_name | state | 
| 入力方式 | 文字列(単一行) | プルダウン選択 | 
| 最大バイト数 | 64 | (項目なし) | 
| 正規表現 | (項目なし) | |
| 選択項目 | (項目なし) | 入力用:状態:present-absent | 
| 参照項目 | (項目なし) | |
| 初期値 | ||
| 必須 | ✓ | ✓ | 
| 一意制約 | ||
| 説明 | ||
| 備考 | 
 
| 項目名 | 設定値 | 
|---|---|
| 項番 | (自動入力) | 
| メニュー名 | 導入パッケージ | 
| メニュー名(REST) | packages | 
| 作成対象 | パラメータシート(ホスト/オペレーションあり) | 
| 表示順序 | 2 | 
| バンドル利用 | 「利用する」にチェックを入れる(有効) | 
| 最終更新日時 | (自動入力) | 
| 最終更新者 | (自動入力) | 
2.2. 作業手順の登録¶
2.2.1. Movement 登録¶
 
| Movement名 | Ansible利用情報 | |
|---|---|---|
| ホスト指定形式 | ヘッダーセクション | |
| パッケージ管理 | IP | ※ヘッダーセクションを参照 | 
- hosts: all
  remote_user: "{{ __loginuser__ }}"
  gather_facts: no
  become: yes
2.2.2. Ansible Role 登録¶
2.2.3. Movement と Ansible Role の紐付け¶
 
| Movement名 | ロールパッケージ名:ロール名 | インクルード順序 | 
|---|---|---|
| パッケージ管理 | OS-RHEL8:OS-RHEL8/RH_rpm/OS_build | 1 | 
2.2.4. 変数ネスト管理¶
# VAR_RH_hostname に対する、値は1つのみ
VAR_RH_hostname: myhostname
# VAR_RH_rpm に対して、変数のセット(action と pkg_name)が繰り返し、かつ、セット数が不定
VAR_RH_rpm:
- action: absent
  pkg_name: httpd
- action: present
  pkg_name: vsftpd
  ...
 
| Movement名 | 変数名 | メンバー変数名(繰返し有) | 最大繰返数 | 
|---|---|---|---|
| パッケージ管理 | VAR_RH_rpm | 0 | 10 | 
2.2.5. 代入値自動登録設定¶
 
| パラメータシート(From) | 登録方式 | Movement名 | IaC変数(To) | ||
|---|---|---|---|---|---|
| メニューグループ:メニュー:項目 | 代入順序 | Movement名:変数名 | Movement名:変数名:メンバー変数 | ||
| 代入値自動登録用:導入パッケージ:パッケージ名 | 1 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[0].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 1 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[0].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 2 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[1].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 2 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[1].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 3 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[2].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 3 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[2].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 4 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[3].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 4 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[3].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 5 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[4].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 5 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[4].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 6 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[5].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 6 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[5].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 7 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[6].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 7 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[6].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 8 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[7].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 8 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[7].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 9 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[8].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 9 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[8].action | 
| 代入値自動登録用:導入パッケージ:パッケージ名 | 10 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[9].pkg_name | 
| 代入値自動登録用:導入パッケージ:状態 | 10 | Value型 | パッケージ管理 | パッケージ管理:VAR_RH_rpm | パッケージ管理:VAR_RH_rpm:[9].action | 
 
2.3. 作業対象の登録¶
2.3.1. 機器登録¶
2.4. パッケージのインストール実施(1回目)¶
2.4.1. 作業概要の作成¶
| 作業実施日時 | 2023/04/02 12:00:00 | 
| 作業対象 | db01(RHEL8) | 
| 作業内容 | パッケージのインストール・アンインストール | 
2.4.2. 作業概要登録¶
 
| オペレーション名 | 実施予定日時 | 
|---|---|
| RHEL8のパッケージ管理 | 2023/04/02 12:00:00 | 
2.4.3. パラメータ設定¶
 
| ホスト名 | オペレーション | 代入順序 | パラメータ | |
|---|---|---|---|---|
| オペレーション名 | パッケージ名 | 状態 | ||
| db01 | 2023/04/02 12:00:00_RHEL8のパッケージ管理 | 1 | postgresql-server | present | 
2.4.4. 作業実行¶
- 事前確認 まずは、現在のサーバーの状態を確認しましょう。サーバに SSH ログインし、 postgresql-server のインストール状況を確認します。- rpm -q postgresql-server - package postgresql-server is not installed 
- 作業実行 から、パッケージ管理 Movement を選択し、 作業実行 を押下します。次に、 で、オペレーションに RHEL8のパッケージ管理 を選択し、作業実行 を押下します。画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。  
- 事後確認 再度サーバに SSH ログインし、postgresql-server のインストール状況を確認し postgresql-server がインストールされていることを確認します。- rpm -q postgresql-server - # 環境ごとにバージョンは異なります postgresql-server-10.23-1.module+el8.7.0+17280+3a452e1f.x86_64
2.5. パッケージのインストール実施(2回目)¶
2.5.1. 作業概要の作成¶
| 作業実施日時 | 2024/05/02 12:00:00 | 
| 作業対象 | db01(RHEL8) | 
| 作業内容 | DBパッケージへ変更 | 
2.5.2. 作業概要登録¶
 
| オペレーション名 | 実施予定日時 | 
|---|---|
| RHEL8をDBパッケージへ変更 | 2024/05/02 12:00:00 | 
2.5.3. パラメータ設定¶
 
| ホスト名 | オペレーション | 代入順序 | パラメータ | |
|---|---|---|---|---|
| オペレーション名 | パッケージ名 | 状態 | ||
| db01 | 2024/05/02 12:00:00_RHEL8をDBパッケージへ変更 | 1 | postgresql-server | absent | 
| db01 | 2024/05/02 12:00:00_RHEL8をDBパッケージへ変更 | 2 | mariadb-server | present | 
2.5.4. 作業実行¶
- 事前確認 現在のサーバーの状態を確認しましょう。サーバに SSH ログインし、パッケージのインストール状態を確認します。- rpm -q postgresql-server - # 環境ごとにバージョンは異なります postgresql-server-10.23-1.module+el8.7.0+17280+3a452e1f.x86_64- rpm -q mariadb-server - package mariadb-server is not installed 
- 作業実行 から、パッケージ管理 Movement を選択し、 作業実行 を押下します。次に、 で、オペレーションに RHEL8をDBパッケージへ変更 を選択し、作業実行 を押下します。画面が開き、実行が完了した後に、ステータスが「完了」になったことを確認します。  
- 事後確認 再度サーバに SSH ログインし、postgresql-server がアンインストールされ、mariadb-server がインストールされていることを確認します。- rpm -q postgresql-server - package postgresql-server is not installed - rpm -q mariadb-server - mariadb-server-10.3.35-1.module+el8.6.0+15949+4ba4ec26.x86_64 
2.6. まとめ¶
- 入力値が確定している場合は、データシートを利用して入力ミスを防ぐことが可能です。 
- 複数かつ数が不定のパラメータを管理する場合は、「バンドル」を利用することで柔軟なパラメータ管理が行うことが可能です。 
- 大量のパラメータを設定する場合は、「全件ダウンロード・ファイル一括登録」を利用することでファイルからのデータ登録を行うことが可能です。