本章主要介绍ansible基本模块的使用

Command

在远程主机执行命令,默认模块,可忽略-m选项

#启动远程主机vsftpd服务
ansible test -m command -a 'service vsftpf start'
#此命令不支持$VARNAME <> | ; &等,建议使用shell模块实现
ansible test -m command -a 'echo tang1611 | passwd --stdin tang' 不成功

Shell

和command相似

ansible test -m shell -a 'echo tang1611 | passwd --stdin tang'

Script

运行脚本

ansible test -m script -a f1.sh

Copy

从控制端复制文件到被控端

#src指向的是要复制的文件,dest指向目标的目录,owner是所属组,mode是权限,backup是备份。如果目标存在,默认是覆盖的
ansible test -m copy -a "src=/root/f1.sh dest=/tem/f2.sh owner=tang mode=600 backup=yes"
#也可以利用content向文件写内容
ansible test -m copy -a "content='hello world\n' dest=/tem/f1.txt"

Fetch

从被控端取文件到控制端

#src是被控端需要复制的文件,dest是目标目录
ansible test -m fetch -a "src=/root/a.sh dest=/data/scripts"

File

设置文件属性

ansible test -m file -a "name=/home/var.log state=touch"
ansible test -m file -a "path=/root/a.sh owner=tang mode=755"
ansible test -m file -a 'src=/app/testfile dest/app/testfile-link state=link'

Hostname

管理主机名

ansible test -m hostname -a "name=webhost"

Cron

计划任务,支持时间:minute,hour,day,month,weekday

#开启任务
ansible test -m cron -a "minute=* weekday=1,3,5 job='/usr/sbin/ntpdate 192.168.136.128 &>/dev/null' name=Synctime"
#禁用任务
ansible test -m cron -a 'disabled=yes job='/usr/sbin/ntpdate 192.168.136.128 &>/dev/null' name=Synctime'
#删除任务
ansible test -m cron -a 'state=absent job='/usr/sbin/ntpdate 192.168.136.128 &>/dev/null' name=Synctime'

Yum

管理包

#安装
ansible test -m yum -a "name=httpd state=latest"
#删除
ansible test -m yum -a "name=httpd state=absent"

ansible-doc

ansible模块文档说明

#列出支持的模块
ansible-doc -l
#ping模块功能说明
ansible-doc ping

ansible-galaxy

连接https://galaxy.ansible.com下载相应的roles

#列出所以已安装的galaxy
ansible-galaxy list
#安装galaxy
ansible-galaxy install geerlingguy.redis
#删除galaxy
ansible-galaxy remove geerlingguy.redis

ansible-console

可交互执行命令,支持tab

#连接交互式工具,会提示输入一个密码,随便输入后回车即可,不允许空值
ansible-console
#切换到test组
cd test
#列出组中主机
list
#查询每个主机的网卡信息
ifconfig ens33
#退出ansible-console环境
exit