Ansible host中配置密码,与发布公钥免密

Ansible自动化

ansible配置host文件

配置/etc/ansible/hosts文件 ansible的携带密码访问

ansible_ssh_host 将要连接的远程主机名.与你想要设定的主机的别名不同的话,可通过此变量设置.

ansible_ssh_port ssh端口号.如果不是默认的端口号,通过此变量设置.这种可以使用 ip:端口 192.168.1.100:2222

ansible_ssh_user 默认的 ssh 用户名(后面ansible_su_pass 可以给root密码)

ansible_ssh_pass ssh 密码(这种方式并不安全,我们强烈建议使用 –ask-pass 或 SSH 密钥)

ansible_sudo_pass sudo 密码(这种方式并不安全,我们强烈建议使用 –ask-sudo-pass)

cat /etc/ansible/hosts
192.168.1.11 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='jack' ansible_su_pass='root_password' 

不配做密码的话可以直接把key文件传输到另外一台服务器上进行ansible自动交互

生成公钥

.ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)

ssh-keygen -t rsa

ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.42.163

配置自身也免密登入

ssh-copy-id localhost

查看服务器公钥

ssh-keyscan命令是一个收集大量主机公钥的使用工具。

ssh-keyscan 192.168.10.203 

第一次ssh登入时key文件密钥会写到文件(进行公钥验证)里所以需要yes确认,这里也可以通过配置/etc/ssh/ssh_config文件

StrictHostKeyChecking no

也可以直接命令

ssh -o stricthostkeychecking=no

ansible测试

ansible all -m ping

考虑到ansible 的host文件里配置每台服务器密码的话太暴露,对host文件进行加密

cat /etc/ansible/hosts
[node1]
192.168.77.129 ansible_ssh_pass=123456
[node2]
192.168.77.130 ansible_ssh_pass=123456
[node3]
192.168.77.131 ansible_ssh_pass=123456

对文件加密这里需要输入加密密码

ansible-vault encrypt /etc/ansible/hosts

后续如要编辑ansible的host文件时

ansible-vault edit /etc/ansible/hosts2 --ask-vault-pass

执行ansible命令

ansible -i /etc/ansible/hosts node1 -m ping --ask-vault-pass
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值