ansible命令应用基础:
Usage: ansible <host-pattern> [-f forks] [-m module_name][-a args]
-f forks:启动的并发线程数
-m module_name:要使用的模块
-a args:模块特有的参数
常见模块: ansible-doc -s 模块 --查看模块使用参数
command:命令模块,默认模块,用于在远程执行命令:
# ansible all -a 'ping'
cron: 定时模块
state:
present,latest表示安装,absent表示卸载
# ansible web -m cron -a 'minute="*/2" job="/bin/echo hello" name="test cron job"'
minute表示分钟,hour表示小时,day表示日期,month表示月份,weekday表示周,如果没写则默认为 *
删除cron计划
ansible testhost -m cron -a "name='test cron' state=absent"
user: 定义用户模块
name=: 指明创建的用户的名字
# ansible web -m user -a 'name=mysql uid=306 system=yes group=mysql'
group=: 创建组
# ansible web -m group -a 'name=mysql gid=306 system=yes'
copy: 复制模块
src=:定义本地源文件
dest=:定义远程目标文件路径
content=:取代src=,表示直接用此处指定的信息生成为目标文件内容:
# ansible all -m copy -a 'src=/etc/fstab dest=/tmp/fstab.ansible owner=root mode=640'
file:设定文件属性
path=:指定文件路径,可以使用name取dest来替换
创建文件的符号链接:
src=:指明源文件
path=:指明符号链接文件路径
# ansible all -m file -a 'path=/tmp/fstab.link src=/tmp/fstab.ansible state=link'
ping:测试指定主机是否能连接
# ansible all -m 'ping'
service:指定运行状态:
enabled=:是否开机自动启动,取值为true或者false
name=:服务名称
state=:状态 取值有started,stopped,restarted
shell:在远程主机上运行命令
尤其是用到管道等功能的复杂命令
script:将本地脚本复制到远程主机并运行之:
注意:要适用相对路径指定脚本
# vim ansible.sh
# chmod +x ansible.sh
# ansible all -m script -a '/root/ansible.sh'
yum:安装程序包
name=:指明要安装的程序包,可以带上版本号
state=:present,latest表示安装,absent表示卸载
# ansible all -m yum -a "name=lrzsz "
setup:收集远程主机的facts
每个被管理节点在接受并运行管理命令之前,会将自己主机相关信息,如操作系统版本,IP地址等报告给远程的ansible主机。
# ansible all -m setup