mrjoshuap.leapp
ansible-leapp
这个 Ansible 角色尝试对基于 EL 的系统(主要是红帽企业 Linux)执行自动化的原地升级。
它执行以下主要任务:
- 验证前置条件和要求
- 为升级准备系统
- 生成 leapp 升级前报告
- 处理常见的升级问题(默认禁用)
- 执行升级(默认禁用)
- 验证升级后的状态(默认禁用)
默认情况下,此角色不会执行实际的升级。它旨在准备系统并生成需要审核的升级前报告。如果你想试试运气,也可以让它尝试执行升级。
待办事项
- 实现升级后验证(tasks/verify.yml)
参考资料
我使用了以下文档作为参考:
- https://developers.redhat.com/products/rhel/download
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/upgrading_from_rhel_7_to_rhel_8/index
- https://www.redhat.com/en/blog/upgrading-rhel-7-rhel-8-leapp-and-boom
- https://access.redhat.com/articles/4263361
- https://access.redhat.com/articles/3664871
角色变量
修改此角色行为的变量在 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-rpms
和rhel-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.