仮想化通信

日本仮想化技術株式会社の公式エンジニアブログ

Exastro ITAでGitソース連携してAnsibleで処理を自動化する

概要

Exastro ITAにはGitソースの更新などと連動して、コード上にあるPlaybookを実行する機能があります。CI/CD for IaCという機能です。

f:id:virtualtech:20211108140615p:plain

使い方は「Exastro ITA Learn」に掲載された資料に纏まっています。

今回はこれを試してみることにしました。 Gitソースは以下に用意しました。

github.com

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機能は利用できないと思われます。

  1. 「CI/CD for IaC > リモートリポジトリー」を開いて、リモートGitのURLなどを入力
  2. 「CI/CD for IaC > 登録アカウント」で任意の「Exastro IT Automationアカウント」を設定
  3. オペレーションを作る
  4. Movementを作る
  5. 「Ansible-Legacy > 作業対象ホスト」を開いて、「オペレーション、Movement、ホスト」を紐付ける
  6. 「Ansible-Legacy > Movement-Playbook紐付」を開いて、「Movement、Playbook、インクルード順序」の設定を行う
  7. 「CI/CD for IaC > 登録アカウント」で「紐付先資材名、リモートリポジトリー、資材パス、紐付先資材タイプ、実行ログインID、自動同期の有無、オペレーション、Movement、ドライランの有無」を設定(紐付先資材名の項目以外は選択式なので事前に登録が必要)

ここまで行ったら、GitHubのコードを変更するたびにドライランが実行される状態になります。

f:id:virtualtech:20211108140858p:plain

ドライランが問題ないことを確認したら、「Ansible-Legacy > 作業実行」やSymphony、Conductorなどを使って作業を実行します。

今回はpingするだけだったのでこれだけですが、何らかの処理に事前に用意したパラメータシート上の変数を使うなどが必要な場合はパラメータシートの定義などが必要になります。