通过命令行更新在Ansible Galaxy注册的角色

首先

Ansible Galaxy的网站不知不觉地进行了更新,并似乎采用了Galaxy-NG基础。

以前,我在Ansible Galaxy上注册的角色更新工作是将其与GitHub连接,并在将新代码和标签推送到GitHub后,在Ansible Galaxy的Web界面上点击“导入”按钮。

看起来新的网站似乎无法进行管理操作,所以我会查阅Galaxy NG的文件并记下相应的处理步骤。

由于我以前从未使用过除了执行ansible-galaxy install命令之外的任何操作,所以我完全毫无头绪,感到有些困惑。

除了需要更新v3 Token之外,CLI的步骤本身不应该有特别的新信息。

请查阅参考资料。

    https://ansible.readthedocs.io/projects/galaxy-ng/en/latest/

操作步骤

环境

在Galaxy注册的角色组以工作环境~/ansible/dev/下的目录形式保存。

$ cd ~/ansible/dev/
$ ls 
ansible.cfg                       ansible-homegw-openvpn/           ansible-netflow-nfcapd/  ansible-uoa-metaldap/
ansible-fprobe-ng/                ansible-homegw-postfix/           ansible-nfcapd/          ansible-uoa-opmldap/
ansible-homegw-dnsmasq/           ansible-homegw-pppoe/             ansible-test-metaldap/   ansible-uoa-transldap/
...

将ansible.cfg文件保存在此目录中,并在此目录中执行ansible-galaxy角色导入命令。

准备作业 zuò yè)

首先,登录到Ansible Galaxy网站。

    https://galaxy.ansible.com/ui/

登录后,即使跳转到个人主页或其他页面,也不会自动显示自己拥有的角色列表等。

在搜索菜单中输入自己的姓名,然后点击Role namespaces中显示的自己的图标,就可以看到自己注册的角色列表。

然而,在这里选择角色也只能进行参考,无法进行任何操作。

获取和保存v3 Token

从API Token菜单中获取Token并将其保存在安全的地方。

按下”加载令牌”按钮会重新生成令牌并使旧令牌失效,因此请务必进行可靠的保存。

创建ansible.cfg文件

将ansible.cfg文件放置在执行操作的当前目录中。

模板文件的内容如下。

[galaxy]
server_list = beta

[galaxy_server.beta]
url = https://galaxy.ansible.com/api/
token = <your-api-token>

将令牌(token)的右侧替换为先前获取并保存的Token。

将在GitHub注册的新标签注册到Galaxy。

命令行如下所示。

“YasuhiroABE”是GitHub帐户名称,”ansible-myfavorite-setting”是仓库名称。
在meta/main.yml文件中指定了”role_name: myfavorite-setting”。

$ ansible-galaxy -v role import YasuhiroABE ansible-myfavorite-setting
...
===== PROCESSING LOADER RESULTS ====
enumerated role name myfavorite-setting

===== COMPUTING ROLE VERSIONS ====
adding new version from tag: v1.0.17
tag: v1.0.0 version: 1.0.0
tag: v1.0.1 version: 1.0.1
...

在安装程序中会识别出新的标签并更新角色,之后的安装中会提取更新后的最新标签。

考虑一下

ansible.cfg文件中包含Token信息,因此需要单独管理,与公开的Git仓库分开。

由于ansible.cfg在ansible-playbook操作目录中是一个常见且熟悉的文件,因此需要特别注意,以免在配置Galaxy角色的工作环境和步骤时不小心将ansible.cfg文件误提交到公开仓库中。

广告
将在 10 秒后关闭
bannerAds