ansible 运行命令

2018-08-01  本文已影响0人  xuweizhen

ansible 运行命令

ansible运行命令,需要以下步骤:

1. ansible通信

ansible只需要安装在一台主控机上,其他远程的主机的通信主要通过SSH,当然,你也可以通过其他的通信方式。
只有与远程主机通信后,才可以与远程host进行交互和其他操作。
使用SSH需要你输入密码,在批量操作时很不方便,所以我们可以使用免密登录

1.1 免密登录:

使用公钥认证来进行免密登录
用户必须提供自己的公钥。如果没有现成的,可以直接用ssh-keygen生成一个:

$ ssh-keygen

运行上面的命令以后,系统会出现一系列提示,可以一路回车。其中有一个问题是,要不要对私钥设置口令(passphrase),如果担心私钥的安全,这里可以设置一个。
运行结束以后,在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pubid_rsa。前者是你的公钥,后者是你的私钥。
这时再输入下面的命令,将公钥传送到远程主机host上面:

$ ssh-copy-id user@host

好了,从此你再登录,就不需要输入密码了。
参考文档:
SSH用法及命令:https://blog.csdn.net/pipisorry/article/details/52269785

2. 主机管理

ansible需要在Inventory文件中配置管理的主机,否则ansible并不知道需要对哪些主机进行操作。
该文件默认使用/etc/ansible/hosts文件,也可以自己自定义
Inventory文件简单示例:

[rebatch]
192.168.99.100
192.168.99.101
rebatchservice.com.cn

[]中表示组,组下面的都是属于该组的hosts
hosts可以使用ip或域名

Inventory文件使用pattern的格式管理主机

2.1 patterns用法

patterns用于确定哪些主机和组执行task

all
*
example.com
192.168.154.60
192.168.154.*
reonline:rebatch
reonline:!rebatch
reonline:&rebatch
example.*.com:reonline
reonline[0]
reonline[0-9]
~(web|db).*\.example\.com
ansible-playbook site.yml --limit datacenter2
ansible-playbook site.yml --limit @retry_hosts.txt

注意
如果在inventory文件中使用同一ip的不同端口,会有问题,具体参考:
https://github.com/ansible/ansible/issues/25311
参考文档
Inventory文件指南:http://www.ansible.com.cn/docs/intro_inventory.html

运行第一条命令:

有了管理的主机和免密登录,我们可以运行第一条命令:

ansible all -m ping

如果有返回说明已成功

上一篇 下一篇

猜你喜欢

热点阅读