处理本地和远程用户的最佳做法是什么?
我目前的理解是,我们有一个本地和远程机器,在远程机器上有一个默认的本地用户和默认的pipe理员用户。 在标准情况下,joe将生成一个SSH密钥对,并将其公钥复制到远程的“.ssh / authorised_keys”中。
localhost remotehost ========= ========== // sudo root user user:joe user:admin passsword:xxx password:admin123 .ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys
我正确地说,标准ansible.cfg设置将是
[defaults] ansible_user=joe ansible_ssh_user=admin private_key_file=/home/pauloconnell/.ssh/id_rsa.pem
我碰到这张票,build议创build一个可靠的特定用户运行远程命令https://stackoverflow.com/questions/29392369/ansible-ssh-private-key-in-source-control
同样,图片看起来像是在本地计算机上创build了一个新的“ansible_ssh_user”,将其密码保存到一个文件库中,然后在远程服务器上创build具有正确组权限的相同用户
localhost remotehost ========= ========== // sudo root user user:joe user:admin passsword:xxx password:admin123 ~~.ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys~~ user:ansible_ssh_user user:ansible_ssh_user .ssh/id_rsa.pub ----------------------------------> ./ssh/authorised_keys
我想确认在这种情况下configuration文件将如何改变?
[defaults] ansible_user=ansible_ssh_user ansible_ssh_user=ansible_ssh_user private_key_file=??
是和不是。
ansible_ssh_user和ansible_user ,因为从2.0版开始不推荐使用ansible_ssh_*variables。 看到这个笔记 : Ansible 2.0已将ansible_ssh_user,ansible_ssh_host和ansible_ssh_port中的“ssh”弃用为ansible_user,ansible_host和ansible_port。 如果您使用2.0版之前的Ansible版本,则应继续使用旧式variables(ansible_ssh_ *)。 在较早版本的Ansible中,这些较短的variables被忽略,没有警告。
在大多数情况下,您不需要设置private_key_file 。
你不需要在控制机器上安装ansible_user 。 您只需确保控制机上的普通用户可以在远程主机上以ansible_user身份login,这意味着您需要将ssh密钥复制到远程主机。 ssh-copy-id ansible_user@remote-host应该是你所需要的。