通过本地的Ansible Galaxy来管理私有的Collection(Galaxy NG版本)
首先
我之前在本地的Ansible Galaxy写了一篇关于私有Collection管理的文章。这次我想尝试一下Galaxy NG这个另一种实现。
从前端库的描述来看,它被称为“用于Ansible Automation Hub的前端”,所以可以将其定位为Tower 3.8.0之后内置的Automation Hub的OSS版本。
※ 参考:https://tekunabe.hatenablog.jp/entry/2020/11/19/091903
请在以下网址中参考:https://tekunabe.hatenablog.jp/entry/2020/11/19/091903。
尝试过的环境
银河NG 4.2.0
CentOS Linux 发行版 7.8.2003(银河NG的安装位置。本次使用了在Oracle Cloud的免费框架上搭建的1核心CPU、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包的方法。我选择了使用Python包的方法来执行。
$ ansible-playbook enduser-install.yml -i hosts --extra-vars "@enduser-install-vars.yml"

上传收藏品

创建命名空间后,点击“上传集合”进行上传。


$ ansible-galaxy collection publish <Collectionのtar.gz> --api-key <発行したトークン> --server https://<サーバーのIP>/api/galaxy/ --ignore-certs
从AWX使用
以前,Galaxy服务器的设置在”设置”中,但大约在15版本左右,似乎变成了”认证信息”。



在以前的文章中已经提到,只要创建一个包含collections/requirements.yml文件的项目,就可以使用在Galaxy NG上上传的集合。所以以上就是设置的全部内容。
结束
安装和初始设置相较于普通的Galaxy,这个似乎更加简单。
而且,由于Private Automation Hub也发布了,我想以后可能会成为主流吧。