我試圖創建一個循環,對散列迭代從qa.yml文件和列表中的每個用戶它試圖找到一個讀文件在本地服務器(公鑰)上,一旦找到文件,它將在遠程機器上創建用戶並將公鑰複製到遠程機器上的authorized_key。
我試圖以迭代的方式實現它,所以爲了更新鍵或添加更多的用戶鍵我需要更改.yml列表並將公鑰文件放在適當的位置。但是我無法獲得local_action +查找工作。
---
- hosts: tag_Ansible_CLOUD_QA
vars_files:
- ../users/qa.yml
- ../users/groups.yml
remote_user: ec2-user
sudo: yes
tasks:
- name: Create groups
group: name="{{ item.key }}" state=present
with_dict: "{{ user_groups }}"
- name: Create remote users QA
user: name="{{ item.key }}" comment="user" group=users groups="qa"
with_dict: "{{ qa_users }}"
- name: Erase previous authorized keys QA
shell: rm -rf /home/"{{ item.key }}"/.ssh/authorized_keys
with_dict: "{{ qa_users }}"
- name: Add public keys to remote users QA
local_action:
find: paths="{{'/opt/pubkeys/2016/q2/'}}" patterns="{{ item.key }}"
register: result
authorized_key: user="{{ item.key }}" key="{{ lookup('file', result) }}"
with_dict: "{{ qa_users }}"
哈希:
qa_users:
user1:
name: User 1
user2:
name: User 2
感謝您的反饋意見和建議,我可能會跟隨它,但是我很好奇,爲什麼我堅持跑步,local_action時收到此錯誤: - 名稱:查找密鑰,錯誤:加載YAML腳本時的語法錯誤,credentials/distribute-public-key.yml 注意:錯誤可能實際出現在此位置之前:第41行,第17列 - 名稱:查找密鑰 local_action: ^ –
@DmitryR你可能想現在嘗試我的編輯。沒有發現local_action附近的語法問題。它仍然沒有經過測試,所以可能仍然會失敗。 – ydaetskcoR