mrjoshuap.leapp

ansible-leapp

这个 Ansible 角色尝试对基于 EL 的系统(主要是红帽企业 Linux)执行自动化的原地升级。

它执行以下主要任务:

  • 验证前置条件和要求
  • 为升级准备系统
  • 生成 leapp 升级前报告
  • 处理常见的升级问题(默认禁用)
  • 执行升级(默认禁用)
  • 验证升级后的状态(默认禁用)

默认情况下,此角色不会执行实际的升级。它旨在准备系统并生成需要审核的升级前报告。如果你想试试运气,也可以让它尝试执行升级。

待办事项

  • 实现升级后验证(tasks/verify.yml)

参考资料

我使用了以下文档作为参考:

角色变量

修改此角色行为的变量在 defaults/main.yml 中声明。

# 提供存在于 /etc/yum.repos.d 的仓库 ID 列表
# 默认 []
leapp_custom_repositories: []

# 指定 grub 设备,通常大多数安装不需要
leapp_grub_device: '/boot'

# 跳过红帽订阅管理器? 默认否
leapp_skip_rhsm: no

# 跳过验证前检查? 默认否
leapp_skip_validate: no

# 跳过准备任务? 默认否
leapp_skip_prepare: no

# 跳过 cockpit 安装? 默认否
leapp_skip_prepare_cockpit_install: no

# 跳过软件包安装? 默认否
leapp_skip_prepare_package_install: no

# 跳过实际软件包更新? 默认是
leapp_skip_prepare_update: yes

# 跳过对软件包更新的重启? 默认否
leapp_skip_prepare_update_reboot: no

# 跳过 leapp 升级前步骤? 默认是
leapp_skip_preupgrade: yes

# 跳过删除先前报告? 默认否
leapp_skip_preupgrade_cleanup: no

# 跳过常见问题修复? 默认是
leapp_skip_remediate: yes

# 跳过实际的 leapp 升级? 默认是
leapp_skip_upgrade: yes

# 升级后重启等待多长时间(以秒为单位)? 默认 1200
leapp_reboot_timeout: 1200

依赖关系

使用此角色没有依赖关系,但是,该角色假设你已经建立了一个标准操作环境,提供:

  • 红帽企业 Linux 7
  • 通过 RHSM 或 Satellite 授权的系统
  • 配置并启用最新更新的仓库,特别是 rhel-7-server-rpmsrhel-7-server-extras-rpms

此外,你还必须下载附加所需的数据文件(RPM 包变化和 RPM 仓库映射),这些文件附加在 知识库文章 中,并将其放置在与包含此角色的 playbook 相同目录下的 'files' 目录中。

示例 Playbook

以下是一个简单的 playbook,它将执行到实际升级的默认行为:

---

- name:  EL 系统进行原地升级
  hosts: all
  become: yes

  vars:
    # 提供存在于 /etc/yum.repos.d 的仓库 ID 列表
    # 默认 []
    leapp_custom_repositories: []

    # 跳过红帽订阅管理器? 默认否
    leapp_skip_rhsm: no

    # 跳过验证前检查? 默认否
    leapp_skip_validate: no

    # 跳过准备任务? 默认否
    leapp_skip_prepare: no

    # 跳过 cockpit 安装? 默认否
    leapp_skip_prepare_cockpit_install: no

    # 跳过软件包安装? 默认否
    leapp_skip_prepare_package_install: no

    # 跳过实际软件包更新? 默认是
    leapp_skip_prepare_update: yes

    # 跳过 leapp 升级前步骤? 默认否
    leapp_skip_preupgrade: no

    # 跳过删除先前报告? 默认否
    leapp_skip_preupgrade_cleanup: no

    # 跳过实际的 leapp 升级? 默认是
    leapp_skip_upgrade: yes

    # 升级后重启等待多长时间(以秒为单位)? 默认 1200
    leapp_reboot_timeout: 1200

  roles:
    - mrjoshuap.leapp

许可证

GPL-2.0-or-later

作者信息

Joshua Preston 是红帽的解决方案架构师,专门从事平台和管理技术。

关于项目

An Ansible role that attempts an inplace upgrade of EL7 to EL8 using LEAPP

安装
ansible-galaxy install mrjoshuap.leapp
许可证
gpl-2.0
下载
105
拥有者
I am a passionate open source individual. I also love me some automation, embedded use-cases and a fill of happy source codes.