AWXでGitHubプライベートリポジトリと同期してみた

どうも、Tです。

AWXをGitHubのプライベートリポジトリと同期してみたので備忘録です。

スポンサーリンク
アドセンス1

環境

AWX

24.6.1

やりたいこと

以前、GitHubパブリックリポジトリを使いplaybookの実行まで試しました。

AWXでGitHubパブリックリポジトリのPlaybookを実行してみた
どうも、Tです。 先日、AWXがデプロイできたので、こちらが動くのか簡単なPlaybookを実行したので備忘録です。 環境 ...

パブリックリポジトリは世界に公開されてしまうため、プライベートリポジトリを使いAWXと同期します。

下記のような内容は割愛しているのでわからない方はググりながら補完してください。

  • Playbookの書き方や細かな意味
  • Ainsibleは何なのかとか…
  • GitHubの使い方とか…

今回はGitHub(プライベートリポジトリ)とAWXとの同期まで説明し、Playbook関連の設定や実行方法は含めていません。

GitHub設定

GitHubプライベートリポジトリ作成

GitHubでプライベートリポジトリを作成し、テスト用のPlaybookをPushしておきます。

今回は「test-awx-private」というリポジトリ名にしました。

 Playbookの実行はしないので、内容は割愛しています。

「Code」をクリックしリポジトリのURLをメモしておきます。

パーソナルアクセストークン発行

AWXからGithubプライベートリポジトリ接続の認証に利用するパーソナルアクセストークンを発行します。

Githubの右上の自身のアイコンをクリックしメニューから「Settings」をクリックします。

Settings画面の左メニュー下部にある「Developer settings」をクリックします。

「Personal access tokens」->「Fine-grained tokens」画面を開き「Generate new token」をクリックします。

パーソナルアクセストークンは2種類ありますが、現在推奨されているFine-grained personal access tokensで作成するようにしています。
詳しくは下記をご参照ください。
個人用アクセス トークンを管理する - GitHub Docs
コマンド ラインまたは API を使用して GitHub への認証を行うときに、パスワードの代わりに personal access token を使用することができます。

下記を設定します。

項目備考
Token nametest-awx-private-tokenわかりやすい任意の名前
Resource owner自身のGitHubアカウント名AWXからの認証時にも利用
Expiration7daysトークンの有効期限。下記から任意の期間を指定。

7days

30days

60days

Custom

No expiration

Reposigory access

(Only select repositories)

<アカウント名>/test-awx-private今回はテスト用のプライベートリポジトリのみを選択。

画面下部のPermissionsのRepository permissionsのメニューから「Contens」を「Read-only」にします。

AWXからのPullのみできればよいので、Read-onlyにしています。

ContentsのRead-onlyに必要となるMedataが自動的にRead-onlyになることを確認します。

画面下部の「Generate token」をクリックします。

確認画面で「Generate token」をクリックします。

発行されたトークンをコピーします。

 トークンは後から確認することができません。
コピーし忘れた場合、再度トークンの発行が必要になります。

AWX設定

認証情報設定

AWXでGitHub認証用の設定を行います。

「リソース」->「認証情報」画面を開き「追加」をクリックします。

下記の項目を設定し「保存」をクリックします。

項目
名前任意の認証情報設定名
認証情報タイプソースコントロール
ユーザー名GitHubのアカウント名もしくはメールアドレス
パスワードGitHubで作成したパーソナルアクセストークン

 認証情報タイプについて

ソースコントールは、GitやSubversionなどのリモートリビジョン管理システムからの複製・更新するプロジェクトに使用されます。
https://docs.redhat.com/ja/documentation/red_hat_ansible_automation_platform/2.4/html/automation_controller_user_guide/ref-controller-credential-types#ref-controller-credential-source-control

認証情報タイプに「GitHubパーソナルアクセストークン」というそれらしい選択肢がありますが、こちらはWebhookで利用するものです。本手順のようなGitHubのプライベートリポジトリから複製・更新するようなプロジェクトには使用できないためご注意ください。
https://docs.redhat.com/ja/documentation/red_hat_ansible_automation_platform/2.4/html/automation_controller_user_guide/ref-controller-credential-types#ref-controller-credential-gitHub-pat

認証情報が設定できたことを確認します。

プロジェクト作成

AWXのプロジェクトを作成していきます。

「リソース」->「プロジェクト」画面を開き「追加」をクリックします。

下記を設定し「保存」をクリックします。

項目
名前任意のプロジェクト名
ソースコントロールのURLGitHubで作成したプライベートリポジトリのURL
ソースコントロールブランチ/タグ/コミットmain
ソースコントロール認証情報認証情報設定で作成したものを選択

自動的に同期されるため、「最終ジョブステータス」が「成功」になることを確認します。

確認

「リソース」->「テンプレート」画面の「追加」->「新規ジョブテンプレートの追加」をクリックします。

ジョブテンプレートの「プロジェクト」で作成したプロジェクトを選択し「Playbook」でGitHubのプライベートリポジトリにPushしていたPlaybookが選択できることを確認します。

参考

Why cant you use the Auth Type GitHub Personal Access Token in projects?
Please confirm the following I agree to follow this project's code of conduct. I have checked the current issues for duplicates. I understand that AWX is open s...

まとめ

一度わかってしまえば簡単ですが、あまり情報がなく結構時間かかりました…。

スポンサーリンク
アドセンス1
アドセンス1
ブログランキング・にほんブログ村へ

シェアする

フォローする