转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。
继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后,继续学习ansible常用模块之系统操作yum模块。
yum模块用来管理服务器上的安装包,包括安装、更新、删除等多项包管理操作。
1. 常用参数
|-----------------|-------------------------------------------------------------------------------|-----------------------------------------------|
| 参数 | 选项/默认值【红色】 | 含义 |
| name | | 指定安装包名称 |
| state | present/installed:安装需要的包,版本不一定最新 latest:若当前的包不是最新,就更新到最新的包 absent/removed:删除包 | 定义操作类型 |
| download_dir | | 存储安装包路径,只在指定download_only时生效,目录会自动创建 |
| download_only | true/false | 是否只下载不安装 |
| allow_downgrade | true/false | 指定是否允许命名的包和版本降级该包的更高版本。 |
| bugfix | true/false | 如果设置为true,并且state=latest则只安装已标记为与错误修复相关的更新 |
| security | true/false | 如果设置为true且state=latest,则只安装标记为安全相关的更新。 |
| cacheonly | true/false | 指定yum是否完全从系统缓存运行;不下载或更新元数据 |
| update_cache | true/false | 检查缓存是否过期需要更新,只在state参数为present或latest时生效 |
| update_only | true/false | 只更新服务器上已安装的包,只在state参数为latest时生效 |
| exclude | | 当state=present或latest时要排除的包名 |
| installroot | / | 指定一个备用 installroot,所有包都将相对于该 installroot 进行安装 |
2. 使用范例
2.1 在远程主机安装包
ansible all -m yum -a "name=httpd"
2.2 在远程主机安装指定版版本的包
ansible all -m yum -a "name=httpd-2.4.6-99.el7.centos.1 state=present"
2.3 在远程主机卸载某个包
ansible all -m yum -a "name=httpd state=absent"
2.4 在远程主机从指定URL安装包
ansible all -m yum -a "name=http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.24.0-1.el7.ngx.x86_64.rpm state=present"
2.5 在远程主机安装本地包
ansible all -m yum -a "name=/tmp/nginx-1.22.1-1.el7.ngx.x86_64.rpm state=present"
2.6 在远程主机指定只下载包,不安装
ansible all -m yum -a "name=nginx download_only=true download_dir=/tmp/nginx state=present"