一、fetch 模块

该模块用于从远程某主机获取(复制)文件到本地。

`dest`:用来存放文件的目录
`src`:  在远程拉取的文件,并且必须是一个**file**,不能是**目录**

举例:

# mkdir /tmp/fetch
# ansible web1 -m fetch -a 'src=/etc/passwd dest=/tmp/fetch'

扩展:
diff 文件路径 文件路径                           //可以判断文件内容之间的区别

二、cron 模块

该模块适用于管理`cron`计划任务的。

`day`                    # 日应该运行的工作( 1-31, *,* /2, )
`hour`                  # 小时 ( 0-23, *,* /2, )
`minute`              # 分钟( 0-59, *,* /2, )
`month`               # 月( 1-12, *, /2, )
`weekday`           # 周 ( 0-6 for Sunday-Saturday,, )
`job`                    # 指明运行的命令是什么
`name`                # 定时任务描述
`reboot`              # 任务在重启时运行,不建议使用,建议使用special_time
`special_time`     # 特殊的时间范围,参数:reboot(重启时),annually(每年),monthly(每月),weekly(每周),daily(每天),hourly(每小时)
`state`                 # 指定状态,present表示添加定时任务,也是默认设置,absent表示删除定时任务
`user`                  # 以哪个用户的身份执行

举例:

添加计划任务:
# ansible web1 -m cron -a 'name="ansible cron test1" minute=*/2 job="/usr/local/bin/ntpdate time1.aliyun.com"'
# ansible web1 -m cron -a 'name="ansible cron test2" minute=* job="/usr/bin/touch /tmp/`date +\%H:\%M:\%S`.txt"'

删除计划任务:
# ansible web1 -m cron -a 'name="ansible cron test2" state=absent'

检查:
# ansible web1 -m shell -a 'crontab -l'

三、yum 模块

顾名思义,该模块主要用于软件的安装。

`name`                          #所安装的包的名称
`state`                           #`present`--->安装, `latest`--->安装最新的, `absent`---> 卸载软件
`update_cache`            #强制更新yum的缓存
`conf_file`                     #指定远程yum安装时所依赖的配置文件(安装本地已有的包)
`disable_pgp_check`    #是否禁止GPG checkin,只用于`present`or `latest`
`disablerepo`               #临时禁止使用yum库。 只用于安装或更新时
`enablerepo`                #临时使用的yum库。只用于安装或更新时

举例:

调用被控端yum安装:
# ansible web1 -m yum -a 'name=httpd state=present'

被控端有安装包进行安装,但要注意安装包所需要的依赖被控端的对应的yum源或者包需要提供:
# ansible web1 -m yum -a 'name=/usr/local/src/percona-xtrabackup-24-2.4.22-1.el8.x86_64.rpm state=present'

网络地址资源包安装(该地址在阿里epel-archive):
# ansible web1 -m yum -a 'name=https://mirrors.aliyun.com/epel-archive/7/x86_64/Packages/h/htop-2.2.0-3.el7.x86_64.rpm state=present'


扩展1:(xtrabackup依赖源)
# vim /etc/yum.repos.d/Percona.repo
[percona]
name = CentOS $releasever - Percona
baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/
enabled = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona
gpgcheck = 1

扩展2:
# yum provides cat             //可以查看命令是由哪个包提供的
# yum list                            //查看所有可用的包
# yum search htop             //查找包

# yum clean all                   //清除缓存
# yum makecache              //建立缓存
# yum repolist                    //查看可用仓库
 

四、yum_repository模块

配置yum源

name:         #必须参数,指定唯一的仓库ID,state为present或absent时需要设置name参数
baseurl:      #指定yum仓库repodata目录的URL,可以是多个,如果设置为多个,需要使用"metalink"和"mirrorlist"参数
enabled:     #使用此yum仓库
gpgcheck:  #是否对软件包执行gpg签名检查
gpgkey:      #gpg秘钥的URL
mode:         #权限设置,当设置为preserve时,文件将与源文件权限相同
file:            # 用于设置仓库的配置文件名称,即设置”.repo”配置文件的文件名前缀,在不使用此参数的情况下,默认以 name 参数的仓库ID作为”.repo”配置文件的文件名前缀,同一个”.repo” 配置文件中可以存在多个 yum 源
state:          #状态,默认的present为安装此yum仓库,absent为删除此yum仓库
description:#设置仓库的注释信息
async:          #如果yum仓库支持并行,yum将并行下载软件包和元数据
bandwidth:  #与throttle参数一起使用,限制yum可用的网络带宽

举例:

配置yum源:
# ansible web1 -m yum_repository -a 'name=Percona description="CentOS $releasever - Percona" baseurl=http://repo.percona.com/centos/$releasever/os/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-percona gpgcheck=1'


扩展:自建yum源
# vim local.repo
[local]                              //仓库ID
name=local disk             //仓库名称(描述)
baseurl=file:///mnt        //仓库的URl 或者来源
enabled=1                     //开关,0为关 1为开
gpgcheck=0                  //秘钥是否检查

五、service 模块

该模块用于服务程序的管理。

`arguments`   #命令行提供额外的参数
`enabled`       #设置开机启动。
`name=`        #服务名称
`runlevel`       #开机启动的级别,一般不用指定。
`sleep`           #在重启服务的过程中,是否等待。如在服务关闭以后等待2秒再启动。(定义在剧本中。)
`state`           #有四种状态,分别为:`started`--->启动服务, `stopped`--->停止服务, `restarted`--->重启服务, `reloaded`--->重载配置

举例:

服务启动并设置开机启动:
# ansible web1 -m service -a 'name=httpd state=started enabled=yes'

服务停止并设置不自启:
# ansible web1 -m service -a 'name=httpd state=stopped enabled=no'