mrjoshuap.leapp

ansible-leapp

このAnsibleロールは、主にRed Hat Enterprise LinuxのELベースのシステムの自動インプレイスアップグレードを実行しようとします。

以下の高レベルなタスクを実行します:

  • 前提条件と要件の確認
  • アップグレードのためのシステムの準備
  • leappプレアップグレードレポートの生成
  • 一般的なアップグレード問題の修正(デフォルトでは無効)
  • アップグレードの実行(デフォルトでは無効)
  • アップグレード後の状態の確認(デフォルトでは無効)

デフォルトでは、このロールは実際のアップグレードを実行しません。システムを準備し、確認すべきプレアップグレードレポートを生成することを目的としています。もし運が良ければ、アップグレードを実行させることもできます。

TODO

  • アップグレード後の検証を実装する(tasks/verify.yml)

参照

以下のドキュメントを参考にしました:

ロール変数

このロールの動作を変更する変数はdefaults/main.ymlに宣言されています。

# /etc/yum.repos.dに存在するリポジトリIDのリストを提供
# デフォルト []
leapp_custom_repositories: []

# grubデバイスを指定する、ほとんどのインストールには不要
leapp_grub_device: '/boot'

# Red Hatサブスクリプションマネージャーをスキップしますか? デフォルトは「いいえ」
leapp_skip_rhsm: no

# 検証前のフライトチェックをスキップしますか? デフォルトは「いいえ」
leapp_skip_validate: no

# 準備タスクをスキップしますか? デフォルトは「いいえ」
leapp_skip_prepare: no

# コックピットのインストールをスキップしますか? デフォルトは「いいえ」
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

依存関係

このロールを使用するための依存関係はありませんが、このロールは次の標準の操作環境が実装されていることを前提としています:

  • Red Hat Enterprise Linux 7
  • RHSMまたはSatelliteで権限のあるシステム
  • 最新の更新のために構成され、利用可能なリポジトリ、特に rhel-7-server-rpmsrhel-7-server-extras-rpms

また、知識ベース記事に添付されている追加の必要なデータファイル(RPMパッケージの変更とRPMリポジトリのマッピング)をダウンロードし、このロールを含むプレイブックと同じディレクトリの「files」ディレクトリに置く必要があります。

サンプルプレイブック

以下は、実際のアップグレードを行うまでのデフォルトの動作を実行するシンプルなプレイブックです。

---

- name: ELシステムのインプレイスアップグレードを実行する
  hosts: all
  become: yes

  vars:
    # /etc/yum.repos.dに存在するリポジトリIDのリストを提供
    # デフォルト []
    leapp_custom_repositories: []

    # Red Hatサブスクリプションマネージャーをスキップしますか? デフォルトは「いいえ」
    leapp_skip_rhsm: no

    # 検証前のフライトチェックをスキップしますか? デフォルトは「いいえ」
    leapp_skip_validate: no

    # 準備タスクをスキップしますか? デフォルトは「いいえ」
    leapp_skip_prepare: no

    # コックピットのインストールをスキップしますか? デフォルトは「いいえ」
    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またはそれ以降のバージョン

著者情報

ジョシュア・プレストンはRed Hatのソリューションアーキテクトで、プラットフォームと管理技術を専門としています。

プロジェクトについて

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.