Ansible配置及使用
使用公私钥实现ssh无密码登录
-
生成公钥和私钥
ssh-keygen -t rsa公钥相当于锁
id_rsa.pub,私钥相当于钥匙id_rsa -
借用ssh-copy-id工具实现无密码登录
ssh-copy-id -i /root/.ssh/id_rsa.pub 39.105.47.177 #公钥上传到服务器
ssh -i /root/.ssh/id_rsa 39.105.47.177 #使用对应的私钥登录服务器
Ansible配置
Ansible的默认配置文件路径是在/etc/ansible/hosts下
-
创建Ansible配置文件
[root@vagrant2 local]# mkdir /etc/ansible/ [root@vagrant2 local]# touch hosts -
配置Ansible配置文件
[test] vm_01 ansible_ssh_port=22 ansible_ssh_host=127.0.0.1 ansible_ssh_pass='vagrant' vm_02 ansible_ssh_port=10022 ansible_ssh_host=39.105.47.177 ansible_ssh_pass='sxsds231AA'[test]代表test主机组,vm_01,vm_02代表主机,属于test主机组。其余为主机IP,端口以及密码如果机器免密码都做好的话,配置文件可以省略密码配置。
-
使用ping模块查看在主机是否连接正常,ping模块不需要 -a 指定参数
ansible test -m ping# test 为指定主机组,可用all参数代替,指定所有主机组主机, -m为指定ping模块![]()
用密码操作的话必须安装”sshpass“工具,yum装一下
yum install -y sshpass,然后再来操作一下。![]()
这个大概意思说需要把主机的指纹添加到known_hosts里,命令行ssh 这个主机输入yes,将主机的指纹添加到known_hosts里。
![]()
然后再用
ansible test -m ping查看主机是否连接正常。![]()
测试的两台主机均已联通,代表我们现在可以批量管理这两台服务器了。
Ansible命令模块
ansible的三个命令模块:command、shell、raw,这三个模块的参数就直接输入命令即可。
-
ansible模块command(不支持管道,不建议使用)
ansible [指定主机or主机组or全部主机] -m command -a 'shell命令'输出两台主机的磁盘空间情况
![]()
ansible的command模块不支持管道,使用就会报错
![]()
-
ansible模块shell(支持管道)
ansible [指定主机or主机组or全部主机] -m shell -a 'shell命令'![]()
-
ansible模块raw,最原始ssh的方式运行命令
ansible [指定主机or主机组or全部主机] -m raw -a 'shell命令'raw指定主机安装yum
![]()
-









浙公网安备 33010602011771号