yum install epel-release -y yum install ansible -y
二、配置ansible
1、 使用ansible前需实现ansible服务器对另外两台机的ssh无密码访问,操作如下:
a、 输入命令:ssh-keygen,一直按回车,直至完成操作; b、 命令:ssh-copy-id root@192.168.159.129 ,然后输入连接密码即可实现无密码访问
2、 添加ansible客户机组,命令:vim /etc/ansible/hosts,在最后面添加如下内容:
[root@localhost ~]# vim /etc/ansible/hosts [web] 192.168.159.129
三、使用ansible
使用以下命令列出默认清单文件中的所有受管主机:
[root@localhost ~]# ansible all --list-hosts
hosts (1):
192.168.159.129
3.1运行临时命令
Ansible运行临时命令的语法如下:
ansible host-pattern -m module [-a 'module arguments'] [-i inventory]
[root@localhost ~]# ansible web -m command -a "ls" 192.168.159.129 | CHANGED | rc=0 >> anaconda-ks.cfg
command模块允许管理员对受管主机快速执行远程命令。这些命令不是由受管主机上的shell加以处理。因此,它们无法访问shell环境变量,也不能执行重定向和管道等shell操作。
在命令需要shell处理的情形中,管理员可以使用shell模块。与command模块类似,可以在临时命令中将要执行的命令作为参数传递给该模块。Ansible随后对受管主机远程执行该命令。与command模块不同的是,这些命令将通过受管主机上的shell进行处理。因此,可以访问shell环境变量,也可以使用重定向和管道等操作。
以下示例演示了command与shell的区别。如果尝试使用这两个模块执行内建的Bash命令set,只有使用shell模块才会成功:
[root@localhost ~]# ansible web -m command -a 'set' 192.168.159.129 | FAILED | rc=2 >> [Errno 2] 没有那个文件或目录 [root@localhost ~]# ansible web -m shell -a 'set' 192.168.159.129 | CHANGED | rc=0 >> BASH=/bin/sh BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=()
ansible常用模块raw、command、shell的区别:
shell模块调用的/bin/sh指令执行command模块不是调用的shell的指令,所以没有bash的环境变量raw很多地方和shell类似,更多的地方建议使用shell和command模块。但是如果是使用老版本python,需要用到raw,又或者是客户端是路由器,因为没有安装python模块,那就需要使用raw模块了



