name='Synctime'"
ansible httpd -m shell -a "crontab -l"
注:删除时最好将job的命令也写上,因为可能会有重名的计划任务。
Yum 模块
用于对软件包的管理,下载、安装、卸载、升级等操作。
相关选项:
- name // 指定要操作的软件包名字
- download_dir // 指定下载软件包的存放路径,需要配合download_only一起使用
- download_only // 只下载软件包,而不进行安装,和yum --downloadonly一样
- list:
- installed // 列出所有已安装的软件包
- updates // 列出所有可以更新的软件包
- repos // 列出所有的yum仓库
- state:
- installed, present // 安装软件包(两者任选其一都可以)
- removed, absent // 卸载软件包
- latest // 安装最新软件包
# 列出所有已安装的软件包
ansible 192.168.1.2 -m yum -a 'list=installed'
# 列出所有可更新的软件包
ansible 192.168.1.2 -m yum -a 'list=updates'
#列出所有的yum仓库
ansible 192.168.1.2 -m yum -a 'list=repos'
# 安装包组,类似yum groupinstall 'Development Tools'
ansible 192.168.1.2 -m yum -a 'name="@Development Tools" state=installed'
# 安装软件包
ansible httpd -m yum -a "name=httpd state=latest"
解释:
name=httpd #软件名
state=latest #安装yum源里最新的版本
注:如果不想有这些输出,直接在后面跟上“>> /dev/null”输出到黑洞里面
// 查看一下结果
ansible httpd -m shell -a "rpm -qa httpd"
# 卸载软件包
ansible 192.168.1.2 -m yum -a 'name=httpd state=removed'
# 验证
ansible httpd -m shell -a "rpm -qa httpd"
yum_repository模块
yum_repository 模块可以帮助我们管理远程主机上的 yum 仓库。
常用参数:
- name参数:必须参数,用于指定要操作的唯一的仓库ID,也就是”.repo”配置文件中每个仓库对应的”[中括号]”内的仓库ID。
- baseurl参数:此参数用于设置 yum 仓库的 baseurl。
- description参数:此参数用于设置仓库的注释信息,也就是”.repo”配置文件中每个仓库对应的”name字段”对应的内容。
- file参数:此参数用于设置仓库的配置文件名称,即设置”.repo”配置文件的文件名前缀,在不使用此参数的情况下,默认以 name 参数的仓库ID作为”.repo”配置文件的文件名前缀,同一个”.repo” 配置文件中可以存在多个 yum 源。
- enabled参数:此参数用于设置是否激活对应的 yum 源,此参数默认值为 yes,表示启用对应的 yum 源,设置为 no 表示不启用对应的 yum 源。
- gpgcheck参数:此参数用于设置是否开启 rpm 包验证功能,默认值为 no,表示不启用包验证,设置为 yes 表示开启包验证功能。Yes:1 No:0
- gpgcakey:当 gpgcheck 参数设置为 yes 时,需要使用此参数指定验证包所需的公钥。
- state参数:默认值为 present,当值设置为 absent 时,表示删除对应的 yum 源。
示例:
1.在 httpd 主机上设置ID为 local 的 yum 源,并启用它(local源使用系统光盘镜像作为本地 yum 源,以便测试举例)。
ansible httpd -m yum_repository -a 'file=lemon name=A baseurl=file:///mnt description="local" enabled=yes gpgcheck=no'
2.在 testA 主机上设置ID为 local 的 yum 源,开启包验证功能,并指定验证包所需的公钥位置为 /media/RPM-GPG-KEY-CentOS-7。
ansible httpd -m yum_repository -a 'name=local baseurl=file:///mnt description="A" gpgcheck=yes gpgcakey=file:///mnt/RPM-GPG-KEY-CentOS-7'
3.在httpd主机上删除/etc/yum.repos.d/alibaba.repo 配置文件中的 aliEpel 源。
ansible httpd -m yum_repository -a 'file=lemon name=A state=absent'
pip模块
用于安装python中的包(需要联网)。
# 查看模块参数
ansible-doc -s pip
# 配置阿里yum源
ansible httpd -m shell -a 'curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo && yum makecache && yum -y install epel epel-release'
# 使用pip时,需要保证被管理机器上有python-pip软件包
ansible 192.168.1.2 -m yum -a 'name=python-pip'
# 安装python的三方包
ansible 192.168.1.2 -m pip -a 'name=flask'
ansible httpd -m shell -a 'find / -name flask' //验证
Service|Systemd模块
用于对服务进行管理,服务的启动、关闭、开机自启等。
相关选项:
- name 指定服务的名字,比如nginx.service,crond.service
- state 填入你要执行的操作,比如reloaded, restarted, started, stopped
- enabled 指定服务开机自启 systemctl enable nginx
启动服务
ansible httpd -m yum -a "name=httpd state=latest"
ansible httpd -m service -a "name=httpd state=started"
查看一下结果
ansible httpd -m shell -a "systemctl status httpd | grep Active"
添加开机启动项
ansible httpd -m service -a "name=httpd enabled=true"
查看一下结果
ansible httpd -m she