我試圖處理在Ansible劇本以下情況:記錄與在Ansible劇本用戶名/密碼(獲取從API)
- 通過雲提供商的API創建服務器
- 來自API的響應存儲根憑據(用戶名/密碼)
- 使用root憑據登錄,並將SSH密鑰
- 設置新用戶,禁用root登錄,等
我可以在步驟4中使用authorized_key
和user
模塊。我有一個用於步驟1和步驟2的模塊(自建)。如何處理步驟3?是否有以編程方式用用戶名/密碼登錄的現有解決方案?我不想通過命令行給他們。
基本上我也可以爲此構建一個模塊。理想情況下,我想類似的東西:
- task: setup SSH place_ssh_with_passwd: state: present key: /path/to/local/key path: /root/.ssh/authorized_keys user: "{{ server.username }}" password: "{{ server.password }}"
如果一切都失敗了,你總是可以簡單地運行一個本地任務並用你的憑據手動連接到主機。像這樣:' - shell:sshpass -p'password'scp/path/to/local/key [email protected]:/root/.ssh/authorized_keys'。 – udondan