拜托我。我从来没有做过与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 }}"
基本上,我无法弄明白我需要做什么来将子元素插入到键变量中,如果它甚至可能的话。
答案 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)
如果没有授权键,该怎么办?仅在已授权可用时,如何检查执行命令?