yum模块

state参数:

  • present 确保存在(安装)
  • latest 最新(安装最新版)
  • absent 确保不存在(卸载)

yum安装软件包

yum模块支持列表方式安装多个包

# 安装httpd和mariadb,并启动httpd服务和mariadb服务
---
- name: 安装pkg
  hosts: servera.lab.example.com
  tasks:
    - name: install_pkg
      yum:
        name: "{{ item }}"
        state: latest
      loop:
        - httpd
        - firewalld
        - mariadb-server
        - php
        - php-mysqlnd

yum卸载软件包

---
- hosts: node1
  tasks:
    - name: 卸载软件包
      yum:
        name: httpd
        state: removed

package_facls模块(收集已安装的软件包)

---
- name: 显示已安装的软件包
  hosts: servera.lab.example.com
  tasks:
    - name: 收集已安装的软件包
      package_facts:
      	#manager表示包管理器,auto表示自动判断包管理器类型
        manager: auto 
    - name: 列出已安装的软件包
      debug:
        var: ansible_facts.packages
    - name: 显示NetworkManager版本
      debug:
        msg: "NetworkManager版本:{{ansible_facts.packages['NetworkManager'][0].version}}"
      when: "'NetworkManager' in ansible_facts.packages" 
      # 如果NetworkManager在已安装列表中,显示NetworkManager的版本

package(自动包管理器)

package会自动判断系统的包管理器,而不用关注被控端的包管理器类型

---
- name: 自动判断包管理器
  hsots: webservers
  tasks:
    name: install httpd
      package:
        name: httpd
        state: present

yum_repository和rpm_key模块(配置软件仓库)

rpm_key模块导入gpgkey,yum_repository模块配置软件仓库


导入gpp_key

---
- name: 配置软件仓库
  hosts: servera.lab.example.com
  remote_user: devops
  become: yes
  become_user: root
  tasks:
    - name: 导入gpg_key # 如果下方gpgcheck=yes,gpgkey=key地址,这个tasks可省略
      rpm_key:
        key: http://materials.example.com/yum/repository/RPM-GPG-KEY-example
        state: present

配置软件仓库

---
- name: 配置软件仓库
  hosts: servera.lab.example.com
  remote_user: devops
  become: yes
  become_user: root
  tasks:
    - name: 确保存在example这个repo
      yum_repository:
        file: example
        name: example-internal
        description: repo描述
        baseurl: http://materials.example.com/yum/repository/
        enabled: yes
        gpgcheck: yes
        gogkey: http://materials.example.com/yum/repository/RPM-GPG-KEY-example
        state: present

rhsm_repository(红帽订阅软件仓库管理)

需要红帽订阅才能正常使用

---
- name: 启用软件仓库
  hosts: servera.lab.example.com
  tasks:
  - rhsm_repository:
      name:
        - rhel_8_for-x86_64_baseos-rpms
        - rhel_8_for-x86_64_baseos-debug-rpms
      state: present
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐