:通过这个选项来指定ansible命令对哪些主机生效,可以使用主机列表中的地址或者组名[-f forks]:可以理解为ansible一次性要让多少个主机执行任务(并行任务数)[-m module_name]:使用的模块名[-a args]:模块的参数,每个模块参数不一样,可以用ansible-doc -s 模块名 来查看参数7. 常用模块及使用:查看ansible支持的所有模块:ansible-doc -l查看模块相信信息:ansible-doc \"模块名\"查看模块支持的参数:ansible-doc -s “模块名”-m command:在远程主机上执行command命令例:ansible webservers -m command -a \"date\"注解:command模块不是调用的shell的指令,所以没有bash的环境变量,也不能使用shell的一些操作方式,其他和shell没有区别
-m ping:对远程主机执行ping命令例:ansible webservers -m ping
-m script:在远程主机执行主控端的shell/python脚本(脚本在ansible服务器上)例:ansible webservers -m script -a '/root/test.sh'-m sehll:执行远程主机上的shell/python脚本
例:ansible webservers -m shell -a 'sh /root/test.sh'注解:shell模块调用的/bin/sh指令执行
-m copy:把主控端/root目录下的a.sh文件拷贝到到指定节点上,参数:src=:定义本地源文件的路径 ,dset=:定义目标文件路径 例:ansible webservers -m copy -a 'src=/root/test.sh dest=/root/'
-m services:在远程主机上启动关闭,并开机关闭
例:ansible webservers -m service -a 'name=iptables state=stopped enabled=off'-m group:在远程主机上新建一个用户组,并执行组id
例:ansible webservers -m group -a 'gid=1024 name=ansibletest'
-m user:在远程主机上新建用户,并指定用户id
例:ansible webservers -m user -a 'name=ansibletest groups=ansibletest state=present'-m file:更改远程主机文件属性
例:ansible webservers -m file -a \"dest=/root/test.sh mode=777 owner=root group=root\"-m yum:在远程主机上yum安装服务
例:ansible webservers -m yum -a \"state=present name=httpd\"
8. Playbook的简单使用
“一个playbook由多个play组成,一个play由多个task组成”
playbook YAML格式:
------------------------------------------------- hosts: groupname #指定执行的hosts remote_user: yourname #知道执行的用户 sudo: yes
tasks: #task起始标志,可以在里面定义1个或多个task - name:echo hostname #为task定义一个name command:hostname ##这里就跟执行的模块和参数 - name:yum install vim
yum:name=vim state=present
------------------------------------------------9.