概要
Exastro ITAにはGitソースの更新などと連動して、コード上にあるPlaybookを実行する機能があります。CI/CD for IaCという機能です。
使い方は「Exastro ITA Learn」に掲載された資料に纏まっています。
- https://exastro-suite.github.io/it-automation-docs/asset/Learn_ja/ITA-CICD_for_IaC_practice_ja.pdf
- https://exastro-suite.github.io/it-automation-docs/asset/Learn_ja/ITA-CICD_for_lac_ja.pdf
今回はこれを試してみることにしました。 Gitソースは以下に用意しました。
Gitと連携しない場合と連携した場合の使い方の違い
Exastro ITAでGitソース連携機能を使わない場合は、Exastro ITAにPlaybookをファイルアップロードして、オペレーション、Movement、Movement-Playbook紐付などをした後、「Ansible-Legacy作業実行」などを使ってドライランを行い、問題なければ他のオペレーションを定義して、実際に作業対象ホストに対して何らかの処理を行います。
CI/CD for IaCという機能を使うと、任意のGitソースが更新されるとドライランが実行されたり、設定によっては自動的に連動して処理を実行できます。
CI/CD機能というと、GitHubだとGitHub Action、GitLabだとGitLab CI/CDがありますが、Exastro ITAのCI/CD for IaC機能を使えば比較的簡単に自分が管理しているサーバー上でCI/CDが実現できるという点がメリットとして挙げられます。
試す方法
Exastro ITA Learnの「Exastro IT Automation CI/CD for IaC」の資料を参考にすることでExastro ITAのCI/CD機能についてお試しできますが、作業を書き起こすと以下の通りです。
なお、Exastro ITA 1.8.xではCI/CD機能はオプションの機能です。インストール時に 「cicd_for_iac:yes」と変更してセットアップしていなければ利用できません。また、コンテナーイメージ版ではおそらくCI/CD機能は利用できないと思われます。
- 「CI/CD for IaC > リモートリポジトリー」を開いて、リモートGitのURLなどを入力
- 「CI/CD for IaC > 登録アカウント」で任意の「Exastro IT Automationアカウント」を設定
- オペレーションを作る
- Movementを作る
- 「Ansible-Legacy > 作業対象ホスト」を開いて、「オペレーション、Movement、ホスト」を紐付ける
- 「Ansible-Legacy > Movement-Playbook紐付」を開いて、「Movement、Playbook、インクルード順序」の設定を行う
- 「CI/CD for IaC > 登録アカウント」で「紐付先資材名、リモートリポジトリー、資材パス、紐付先資材タイプ、実行ログインID、自動同期の有無、オペレーション、Movement、ドライランの有無」を設定(紐付先資材名の項目以外は選択式なので事前に登録が必要)
ここまで行ったら、GitHubのコードを変更するたびにドライランが実行される状態になります。
ドライランが問題ないことを確認したら、「Ansible-Legacy > 作業実行」やSymphony、Conductorなどを使って作業を実行します。
今回はpingするだけだったのでこれだけですが、何らかの処理に事前に用意したパラメータシート上の変数を使うなどが必要な場合はパラメータシートの定義などが必要になります。