在配置ansible的时候,根据网上的安装指导,还是踩了一些坑,现在总结如下:
1.使用秘钥登录的时候,文件权限特别重要,ssh对于这些要求高。
authorized_keys 600
id_rsa 600
id_rsa.pub 644
2.一般id_rsa和id_rsa.pub的名称不要改变,改变了很多地方就要修改配置。比如
/etc/ssh/ssh_config里面默认是IdentityFile ~/.ssh/id_rsa
3.ansible一般有两种登陆远程ssh的方式,一种是使用账户密码方式登陆。
这里我们先登录到普通用户,再sudo到root用户。
NICKNAME ansible_ssh_host=IP ansible_ssh_port=PORT ansible_ssh_user=NUSER ansible_ssh_pass={normal_user_passwd} ansible_sudo=true ansible_sudo_user=root ansible_sudo_pass={root_passwd}
注意ansible_ssh_pass ,这里它是账户密码方式的密码,而不是私钥的密码。
所以另一种方式就是使用密钥对来登陆。
最好生成空密码的密钥对。
当然即使有密码的密钥对,我们也可以使用,就是麻烦了点。记住,使用选择使用密钥登陆方式登陆,就不要再配置ansible_ssh_pass 了。这会导致验证失败的。
testmars ansible_ssh_host=IP ansible_ssh_port=PORT ansible_ssh_user=root ansible_ssh_private_key_file=/root/.ssh/id_rsa
以上配置就可以了,在每次连通的时候会要求输入私钥的密码。