Ansible with subelements引用一个字典

时间:2017-07-25 19:05:30

标签: ansible

拜托我。我从来没有做过与Ansible这么复杂的事情,我真的很想把它拼凑起来。

总而言之,我已经有了一个dict和任务,可以将我们员工的SSH帐户和公钥部署到我们的服务器上。我想重新使用此dict来将某些员工密钥部署到某些网站用户帐户。一个例子可能比我能解释得好。

-a65535 -h TABLOCK

上述配置和任务适用于将我们的员工及其密钥添加到服务器。现在,我想重新使用这些密钥,以便我可以将某些员工添加到某些其他用户,而无需复制和粘贴员工的密钥。这是我正在尝试做的事情:

employee_ssh_users:
  user1: 'user1key'
  user2: 'user2key'
  user3: 'user3key'
  user4: 'user4key'

- name: Add employee SSH users
  user: 
    name: "{{ item.key }}"
    state: present
  with_dict: "{{ employee_ssh_users }}"

- name: Add employee public keys to employee accounts
  authorized_key:
    user: "{{ item.key }}"
    state: present
    key: "{{ item.value }}"
  with_dict: "{{ employee_ssh_users }}"

基本上,我无法弄明白我需要做什么来将子元素插入到键变量中,如果它甚至可能的话。

2 个答案:

答案 0 :(得分:2)

这很简单:

- name: Add employee public keys to website accounts
  authorized_key:
    user: "{{ item.0.name }}"
    key: "{{ employee_ssh_users[item.1] }}"
  with_subelements:
    - "{{ website_keys }}"
    - authorized

您可以按名称查询employee_ssh_users并使用不带引号的item.1,因为它本身就是变量。

答案 1 :(得分:0)

如果没有授权键,该怎么办?仅在已授权可用时,如何检查执行命令?