我需要在Ansible Tower Job-Template中为单个剧本使用两个不同的凭据。在剧本中,我包括两个角色(一个角色用于Windows计算机,一个角色用于Linux计算机)。配置作业模板时,我注意到我无法选择两个计算机凭据,因此剧本失败了。
我在https://stackoverflow.com/a/55870311/4715624处找到了一个解决方案,其中包括在variable instanceof Array
文件夹下创建两个Ansible保管库(具有相同的保管库密码)并将密码保存在那里。此解决方案可从命令行运行,例如
host_vars
然后,我在Ansible Tower中创建了保险库类型凭证,并尝试使用该凭证运行相应的作业。但这不起作用(身份验证问题)。有人可以告诉我在Ansible Tower中为单个剧本使用多个凭证的正确方法吗?还是在Ansible Tower中根本不可能?
更新: 我的剧本看起来像这样:
ansible-playbook -v test-multi-credential-playbook-in-ansible-tower.yml --ask-vault-pass
答案 0 :(得分:0)
为每个角色使用标签,并在Tower中创建两个模板。在模板中以凭据身份提及密码。
---
- hosts: all
#become: yes
roles:
- role: role1
tags: role1
- role: role2
tags: role2
答案 1 :(得分:0)
输入配置:
fields:
- type: string
id: custom_user
label: Username
- secret: true
type: string
id: custom_pass
label: Password
required:
- custom_user
- custom_pass
注射器配置:
extra_vars:
my_pass: '{{custom_pass}}'
my_user: '{{custom_user}}'
使用您刚刚创建的自定义凭据为您的环境创建 Windows 凭据。
然后在清单的 Windows 组中,您可以将这些凭据定义为 group_vars/host_vars,如下所示:
ansible_user: "{{ custom_user }}"
ansible_password: "{{ custom_pass }}"