创建 Ansible 用户的最佳实践

创建 Ansible 用户的最佳实践

在 ansible 中处理本地和远程用户的最佳实践是什么?

我目前的理解是,我们有一台本地计算机和一台远程计算机,其中远程计算机上有默认本地用户和默认管理员用户。在标准情况下,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

我碰到了这张票,它建议创建一个特定的 ansible 用户来运行远程命令https://stackoverflow.com/questions/29392369/ansible-ssh-private-key-in-source-control

同样,图片看起来会像这样,在本地机器上创建一个新的“ansible_ssh_user”,它的密码保存到保险库,然后在远程服务器上使用正确的组权限创建相同的用户

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

我想确认在这种情况下配置文件会如何改变?

[defaults]
ansible_user=ansible_ssh_user
ansible_ssh_user=ansible_ssh_user
private_key_file=??

答案1

是也不是。

  • 你不需要ansible_ssh_user,因为自 2.0 版以来,变量ansible_user的使用已被弃用。请参阅ansible_ssh_*这张纸条

Ansible 2.0 已弃用 ansible_ssh_user、ansible_ssh_host 和 ansible_ssh_port 中的“ssh”,改为 ansible_user、ansible_host 和 ansible_port。如果您使用的是 2.0 之前的 Ansible 版本,则应继续使用旧式变量 (ansible_ssh_*)。在旧版本的 Ansible 中,这些较短的变量会被忽略,且不会发出警告。

  • 大多数情况下您不需要设置private_key_file

  • 您不需要ansible_user在控制机上安装。您只需要确保控制机上的常规用户可以以ansible_user远程主机的身份登录,这意味着您需要将 ssh 密钥复制到远程主机。这 ssh-copy-id ansible_user@remote-host应该是您所需要的全部。

相关内容