0
請與我聯繫。我從來沒有做過與Ansible這樣複雜的事情,我真的很努力將它拼湊在一起。總結一下,我已經有了一個詞典和一項任務,可以將我們員工的SSH帳號和公共密鑰部署到我們的服務器上。我想重新使用這個詞典也可以將某些員工密鑰部署到某些網站用戶帳戶。一個例子可能比我能解釋得更好。Ansible與子元素引用字典
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 }}"
上述配置和任務對將我們的員工及其鑰匙添加到服務器中工作良好。現在,我想重新使用這些密鑰,以便我可以將某些員工添加到某些其他用戶,而無需複製和粘貼員工的密鑰。這裏是我想要做的事:
website_keys:
- name: site1
authorized:
- user1
- user3
- name: site2
authorized:
- user1
- user2
- name: Add employee public keys to website accounts
authorized_key:
user: "{{ item.0.name }}"
key: "{{ hostvars[inventory_hostname]['employee_ssh_users'][' + item.1 '] }}"
with_subelements:
- "{{ website_keys }}"
- authorized
基本上,我想不出到底是什麼,我需要做的子元素插值到關鍵變量,如果它甚至有可能的。