通过命令行更新在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文件误提交到公开仓库中。