Ansible自动化安装软件包

主要介绍的功能是通过Ansible批量对授管主机进行软件包一些常见的操作,比如网络安装、本地安装、YUM源安装、删除、下载、更新等操作。通过专业的方式提高主机运维效率。完成这一系列功能的是yum模块。欢迎大家学习yum模块的使用方法。

示例1.2.3-1:安装软件,Playbook脚本如下:

vim install_tools.yml

---
- name: install vim software
  hosts: all
  tasks:
    - name: Start the vim,make,net-tools,gcc installation operation
      yum:
      name: vim,make,net-tools,gcc
      state: present

执行Playbook:

ansible-playbook install_tools.yml

将Playbook同步到git仓库:

git add install_tools.yml
git commit -m "install tools yaml"
git push origin master

示例1.2.3-2:安装软件包组,Playbook脚本如下:

vim install_tools.yml

---
- name: install package groups
  hosts: all
  tasks:
    - name: Start installing package groups
      yum:
      name: "@RPM Development Tools"
      state: present

执行Playbook:

ansible-playbook install_tools.yml

将Playbook同步到git仓库:

git add install_tools.yml
git commit -m "install tools yaml"
git push origin master

示例1.2.3-3:安装本地RPM软件包,Playbook脚本如下:

vim install_tools.yml

---
- name: install a nginx software
  hosts: all
  tasks:
    - name: install nginx rpm from a local file
      yum:
      name: /usr/local/src/nginx-1.20.2-1.el7.ngx.x86_64.rpm
      state: present

执行Playbook:

ansible-playbook install_tools.yml

将Playbook同步到git仓库:

git add install_tools.yml
git commit -m "install tools yaml"
git push origin master

注意:示例1.2.3-3中需要将rpm包传至ansible客户端主机上。

示例1.2.3-4:更新软件包,Playbook脚本如下:

vim upgrade_packages.yml

---
- name: install a nginx software
  hosts: all
  tasks:
    - name: upgrade all packages, excluding kernel & foo related packages
      yum:
      name: "*"
      state: latest
      exclude: kernel*,foo*

执行Playbook:

ansible-playbook upgrade_packages.yml

将Playbook同步到git仓库:

git add upgrade_packages.yml
git commit -m "upgrade packages yaml"
git push origin master

注意:示例1.2.3-4中,更新所有的软件包,不包括与内核和foo相关的包。

示例1.2.3-5:从远程安装nginx rpm包,Playbook脚本如下:

vim install_tools.yml

---
- name: install a nginx software
  hosts: all
  tasks:
    - name: install the nginx rpm from a remote repo
      yum:
      name: http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm
      state: present

执行Playbook:

ansible-playbook install_tools.yml

将Playbook同步到git仓库:

git add install_tools.yml
git commit -m "install tools yaml"
git push origin master

示例1.2.3-6:下载rpm包,但不安装,Playbook脚本如下:

vim download_package.yml

---
- name: Download lrzsz software
  hosts: all
  tasks:
    - name: Download the lrzsz package but do not install it
      yum:
      name: lrzsz
      state: latest
      download_only: true
      download_dir: ./

执行Playbook:

ansible-playbook download_package.yml

将Playbook同步到git仓库:

git add download_package.yml
git commit -m "download package yaml"
git push origin master

yum模块常用属性解析:

属性含义
disable_gpg_check是否禁用正在安装的软件包签名的GPG检查。仅当state值是“present”或“latest”时有效。值类型:布尔类型,默认为no
download_dir指定下载软件包存储目录,当指定download_only有效。ansible 2.8以后支持此参数。
download_only仅下载软件包,不进行安装,值类型:布尔类型,默认为no,ansible 2.7以后支持此参数。
exclude当state=present或latest时要排除的包名
name软件包名称或带有版本的软件包名称,如“name-1.0”。如果指定了低版本软件包,需要设置参数allow_downgrade: yes;当使用state=latest时,这可以是“*”,表示运行“yum -y update”。您还可以将url或本地路径传递给rpm文件(使用state=present)。要安装多个包,可以用逗号分隔包或(从2.0开始)包列表。
state是否安装,或删除一个软件包。属性如下:present and installed:安装指定软件包latest:如果有可用最新版本软件包,更新软件包absent and removed:删指定软件包默认值:None
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gswcfl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值