ansible是可以通过ssh私钥去导入到远端客户机电脑,然后第二次访问以后就可以免密码输入。
但是这样也会带来一些问题,在实际的环境中。会有安全隐患,如果这台ansible主机被攻陷,会导致整个生产环境被攻陷
所以安全的方法还是利用ansible的ansible_ssh_pass 和ansible_ssh_user这两个模块配置请看下面
一.SSH秘钥远程拷贝导入
先介绍一下如何进行ssh秘钥导入,网络上教程很多,这里还是简单介绍一下:
ssh-keygen -t rsa -P ""
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.1.34
上面第一个命令是生成本地秘钥
第二个是将私钥远程copy到客户端,这里会要输入一下yes然后输入root密码后面就不用
二.利用ansible的ansible_ssh_pass 和ansible_ssh_user这两个模块配置推送
ansible_ssh_pass和ansible_ssh_user其实就是root账号和密码
就是在hosts文件里面多加一个参数如下:
[test]
192.168.1.122 ansible_ssh_pass='12345' ansible_ssh_user=root
这样的好处就是不用推送证书,推送完成以后hosts文件删除就不用推送SSH了
如果用户和密码都是统一的,可以定义一下[test:vars]具体如下
[test]
192.168.1.122
[test:vars]
ansible_ssh_user=root
ansible_ssh_pass='12345'
这样时间就是见两个模块放进去,不用去配置到每个上面。