0

我需要为 Ansible Tower Job-Template 中的单个剧本使用两个不同的凭据。在剧本中,我包括两个角色(一个用于 Windows 机器,一个用于 Linux 机器)。在配置作业模板时,我注意到我无法选择两个机器凭据,因此剧本失败。

我在这里找到了一个解决方案https://stackoverflow.com/a/55870311/4715624,其中包括在文件夹下创建两个 Ansible 保险库(具有相同的保险库密码)host_vars并将密码保存在那里。此解决方案可从命令行工作,例如 ansible-playbook -v test-multi-credential-playbook-in-ansible-tower.yml --ask-vault-pass

然后,我在 Ansible Tower 中创建了一个保管库类型凭据,并尝试使用该凭据运行相应的作业。但这不起作用(身份验证问题)。有人可以告诉我在 Ansible Tower 中为单个剧本使用多个凭据的正确方法吗?或者在 Ansible Tower 中根本不可能?

更新:我的剧本如下所示:

---
- hosts: all
  gather_facts: true
  tasks: 
    - name: Include ping linux task
      include_role: 
        name: roles/linux
      when: ansible_os_family != "Windows"

    - name: Include ping windows task
      include_role: 
        name: roles/windows
      when: ansible_os_family == "Windows"
4

2 回答 2

1

这可以通过在 Ansible Tower 中创建自定义凭据并将凭据分配为主机参数来处理。

  1. 使用以下配置创建类型的凭据-

输入配置:

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}}'
  1. 使用您刚刚创建的自定义凭据为您的环境创建一个 Windows 凭据。

  2. 然后在清单的 Windows 组中,您可以将这些凭据定义为 group_vars/host_vars,如下所示:

ansible_user: "{{ custom_user }}"
ansible_password: "{{ custom_pass }}"
于 2021-03-26T15:01:56.180 回答
0

为每个角色使用标签并在 Tower 中创建两个模板。在模板中提及凭证中的密码。

---
- hosts: all
  #become: yes
  roles:
  - role: role1
    tags: role1
  - role: role2
    tags: role2
于 2019-07-17T15:00:44.757 回答