我想使用 Ansible 将新用户的公钥推送到主机清单。为此,创建了一个剧本,如下例所示。
---
- name: vms1 - Authorize hosts with pub key
hosts: vms1
tasks:
- name: Copy ssh pub key to remote host
ansible.posix.authorized_key:
user: user1
state: present
key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"
- name: vms2 - Authorize hosts with pub key
hosts: vms2
tasks:
- name: Copy ssh pub key to remote host
ansible.posix.authorized_key:
user: user2
state: present
key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"
- name: vms3 - Authorize hosts with pub key
hosts: vms3
tasks:
- name: Copy ssh pub key to remote host
ansible.posix.authorized_key:
user: user3
state: present
key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"
库存是这样的。(有更多的主机)
[vms1]
192.168.7.211
192.168.7.212
192.168.7.213
[vms2]
192.168.7.21
192.168.7.22
192.168.7.23
[vms3]
192.168.7.111
192.168.7.112
192.168.7.113
每个游戏都有自己的主机组和自己的用户。可以使用以下命令启动 playbook。
ansible-playbook -k -i inventory playbook.yml
使用-k
选项时,它只询问一次 SSH 密码。我遇到的问题是每个组的密码都不同。因此,我想为每个游戏输入密码。
每次播放都需要密码吗?
问:“如何为每场比赛要求密码?”
答:使用变量ansible_password。例如,将变量放入剧本的vars
阅读详情
在第一次播放时阅读密码并在以后使用它们。例如,给定库存
下面的剧本
在第一次播放时提示用户输入密码并在以后使用它们