一、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'