BFT名古屋 TECH BLOG

日々の業務で得た知識を所属するエンジニアたちがアウトプットしていきます。

【Ansible Tower】GitHubと連携してみた

f:id:bftnagoya:20210415172442j:plain

はじめに

こんにちは! 最近でたスーパードライジョッキ缶にびっくりしている、BFT名古屋支店 いけちゃんまんです。
本日はシリーズもの企画最終日、 GitHub 連携についてです。
第1弾 AnsibleTowerインストールしてみた

bftnagoya.hateblo.jp

第2弾 【Ansible Tower】 と 【Active Directoty】 連携してみた

bftnagoya.hateblo.jp

第3弾 【Ansible Tower】GitHubと連携してみた ★今ここ!!

前提条件

・AnsibleTowerサーバが構築済みであること
GitHubアカウントがあること
 ※別アカウントから連携する場合はアカウントなくてもOK
GitHubにPlaybookが配置されていること

GitHubとは

Ansible Tower と GitHub 連携と書いてありますが、そもそもGitHubがわからない方もいるかもしれません。
そんな人のためにまずGitHubについて説明したいと思います。
GitHubという言葉を分解すると、git(ギット)のhub(ハブ)となり、日本語に直すと、「拠点」の「集まり」です。
GitHub上で、エンジニアが公開用のプログラムをアップして自分以外のエンジニアに共有できます。その後、履歴を残しながら更新したり、自分以外のエンジニアも修正を加えることが可能です。
GitHub は企業や個人関係なく無料で使用できます。GitHub に作成されたリポジトリは、基本的にすべて公開することになりますが、指定したユーザーだけがアクセスできるプライベートリポジトリを作成することもできます。

GitHubを使うメリット

GitHubソースコードを共有することにより、複数の担当者が共同開発を進めることができます。

また、一般的にプロジェクトでは GitHub のプライベートリポジトリに Playbook データを格納します。プライベートリポジトリを使うことにより、許可されたユーザーだけが参照できるようになります。

GitHub連携

今回のイメージ図はこちらになります。

f:id:bftnagoya:20210413105703j:plain
イメージ図
GitHubと連携することで、GitHub上でバージョン管理されたPlaybookをAinsible Towerから利用することができるようになります。

プロジェクトの作成

まず、 GitHub にログインし、左カラムので Playbook が配置されているディレクトリをクリックします。

f:id:bftnagoya:20210415170248j:plain
GitHub確認画面001

Playbook が配置されているディレクトリの画面で緑のCodeボタンをクリックし、HTTPS URL をコピーしてください。

f:id:bftnagoya:20210415152236j:plain
GitHub確認画面002

次に Ansible Tower にログインします。
そして、左カラムのプロジェクトをクリックし、緑の+ボタンをクリックします。

f:id:bftnagoya:20210414132441j:plain
確認画面001

新規プロジェクトの画面で、以下に設定します。
注意点として、SCMタイプをGitに設定すると、ソース詳細の項目が出てきます。
ソース詳細のSCM URLに先ほどの、GitHubHTTPS URL を設定してください。

f:id:bftnagoya:20210414133337j:plain
確認画面002

これでプロジェクトの設定は完了です。

テンプレートの作成

次にテンプレートを作成します。
Ansible Tower にログインし、左のカラムのテンプレートをクリックし、緑の+ボタンをクリックします。 そして、ジョブテンプレートをクリックします。

f:id:bftnagoya:20210414133803j:plain
確認画面003

新規ジョブテンプレートの画面で、以下を設定します。
注意点として、プロジェクトに先ほど作成したgit_test001を設定します。
そうすることによって、そのディレクトリ配下の Playbook が PLAYBOOK のプルダウンから選択できます。

f:id:bftnagoya:20210413141944j:plain
確認画面004

Playbook を GitHubリポジトリから選択できたので、Ansible Tower と GitHub 連携は完了です。

まとめ

これにて3本構成もすべておしまいです。
読んでいただき、ありがとうございました。