5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ローカルAnsible GalaxyでプライベートなCollection管理(Galaxy NG編)

Posted at

#はじめに
以前にローカルAnsible GalaxyでプライベートなCollection管理という記事を書きました。
今回はGalaxy NGという別実装を試してみます。

フロントエンド側のリポジトリを見ると「Frontend for Ansible Automation Hub」と記載があるので、Tower 3.8.0から同梱されるようになったAutomation Hub※のOSS版というような位置付けでしょうか。

※参考:https://tekunabe.hatenablog.jp/entry/2020/11/19/091903

#試した環境
Galaxy NG 4.2.0
CentOS Linux release 7.8.2003(Galaxy NGのインストール先。今回はOracle CloudのAlways Free枠で建てたCPU1コア・メモリ1GBのサーバを利用しています)
Ansible 2.9.13(インストールに使用。上記のCentOSではなく、自分の端末にインストールして使用しています)
AWX 15.0.1(インストール後の動作確認環境)

#インストール手順
リポジトリ内にドキュメントがあるので、そのとおりに進めます。

Ansibleがインストールされている端末から、以下を実行していきます。

必要なコレクションをインストール。

$ ansible-galaxy collection install pulp.pulp_installer
$ ansible-galaxy collection install ansible.galaxy_collection

インストールに利用するPlaybookなどを取得します。

$ git clone https://gist.github.com/629ba52d68301cc9798227b87704df84.git example
$ cd example

enduser-install-vars.yml内の「pulp_default_admin_password」の値を変更しておきます。
この値が管理ユーザーのログインパスワードになります。

$ vi enduser-install-vars.yml

最初にインストールしたpulp_installerの動作に必要なロール・コレクションをインストール。

$ ansible-galaxy install -r ~/.ansible/collections/ansible_collections/pulp/pulp_installer/requirements.yml

インストール先のサーバのinventoryファイルを作成します。

$ vi hosts
XXX.XXX.XXX.XXX ansible_user=opc

Ansibleを使ってインストールします。
ドキュメントにはPythonパッケージを利用する方法とRPMパッケージを利用する方法の2パターン記載がありましたが、私はPythonパッケージ利用の方法で実行しました。

$ ansible-playbook enduser-install.yml -i hosts --extra-vars "@enduser-install-vars.yml"

完了したらブラウザで「https://<サーバーIP>」を開くと、ログイン画面に遷移します。
Usernameは「admin」、パスワードは上記で設定したものでログイン可能です。
スクリーンショット 2020-11-11 0.40.04.png

#コレクションのアップロード
まずはNamespaceを作成してみましょう。
左のメニューの「My Namespaces」をクリックし、「Create」ボタンを押下し作成します。
スクリーンショット 2020-11-20 16.45.29.png

Namespaceを作成したら、「Upload collection」を押下しアップロードします。

スクリーンショット 2020-11-20 16.39.44.png

また、コレクションのアップロードはコマンドからも可能です。
左メニューのAPI Tokenからトークンを発行し、
スクリーンショット 2020-11-20 16.58.18.png
以下のようにコマンドを実行します。

$ ansible-galaxy collection publish <Collectionのtar.gz> --api-key <発行したトークン> --server https://<サーバーのIP>/api/galaxy/ --ignore-certs

#AWXから利用する
以前は「設定」の中に参照するGalaxyサーバーの設定がありましたが、バージョン15あたりから「認証情報」に変わったようです。

「認証情報タイプ」で『Ansible Galaxy/Automation Hub API トークン』を選択、
「GALAXY SERVER URL」に『https://<サーバーのIP>/api/galaxy/』、
「APIトークン」にGalaxy NG側で発行したAPIトークンを入力し保存します。
スクリーンショット 2020-11-20 20.22.19.png

次に「組織」の設定で『GALAXY 認証情報』に上記で作成した認証情報を追加。
スクリーンショット 2020-11-20 20.49.59.png

最後に「設定 -> ジョブ」にて『ANSIBLE GALAXY SSL 証明書の検証を無視する』を有効化します。
スクリーンショット 2020-11-20 21.06.17.png

以上で設定は終了です。以前の記事で書いたようにcollections/requirements.ymlを含めたプロジェクトを作成すれば、Galaxy NGにアップロードしたコレクションを利用できます。

#終わりに
インストールや初期設定は通常のGalaxyよりコチラの方が簡単な印象。
Private Automation Hubもリリースされたことだし、今後はコチラが主流になるのかな、と思います。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?