linux-system-roles.bootloader

ブートローダー

ansible-lint.yml ansible-test.yml codeql.yml markdownlint.yml python-unit-test.yml tft.yml tft_citest_bad.yml woke.yml

ブートローダーとカーネルコマンドラインの管理のためのAnsibleロールです。

サポートされているアーキテクチャ

このロールは現在、以下のアーキテクチャで動作する grub2 ブートローダーの設定をサポートしています:

  • AMDおよびIntelの64ビットアーキテクチャ (x86-64)
  • 64ビットARMアーキテクチャ (ARMv8.0)
  • IBM Power Systems、リトルエンディアン (POWER9)

要件

以下を参照してください

コレクション要件

ostree システムを管理しない場合、このロールに要件はありません。

ostree システムを管理する場合、追加のモジュールが外部コレクションから必要です。以下のコマンドを使用してインストールしてください:

ansible-galaxy collection install -vv -r meta/collection-requirements.yml

ロール変数

bootloader_gather_facts

すべてのカーネルのブート情報を含む bootloader_facts を収集するかどうかを指定します。

デフォルト: false

タイプ: bool

bootloader_settings

この変数を使用して、設定したいカーネルとそのコマンドラインパラメータをリストします。

必要なキー:

  1. kernel - これを使って、設定を更新したいカーネルを指定します。 各リストで同じカーネルを一つまたは複数のキーを使って指定する必要があります。

    カーネルを追加したい場合は、3つのキー - pathtitleinitrd を指定する必要があります。

    カーネルを変更または削除したい場合は、一つ以上のキーを指定できます。

    また、DEFAULT または ALL を指定してデフォルトまたはすべてのカーネルを更新できます。

    利用可能なキー:

    • path - カーネルパス
    • index - カーネルインデックス
    • title - カーネルタイトル
    • initrd - カーネル初期RAMディスクイメージ

    利用可能な文字列:

    • DEFAULT - デフォルトエントリを更新するため
    • ALL - すべてのエントリを更新するため
  2. state - カーネルの状態。

    利用可能な値:presentabsent

    デフォルト: present

  3. options - 更新したい設定を指定します。

    • name - 設定の名前。namereplaced を使用する場合は省略されます。
    • value - 設定の値。値が不要な場合は value を省略する必要があります(例:quiet)。
    • state - present(デフォルト)または absentabsent の場合、name 名の設定を削除します - 名前は提供する必要があります。
    • previous - オプション - 値は replaced のみ - これは以前の設定を新しい設定に置き換えることを指定します。
    • copy_default - オプション - カーネルを作成する際には、copy_default: true を指定してデフォルトの引数をコピーできます。

例については、Example Playbookを参照してください。

デフォルト: {}

タイプ: dict

bootloader_timeout

この変数を使用して、GRUBブートローダーの読み込み時間をカスタマイズできます。

デフォルト: 5

タイプ: int

bootloader_password

この変数を使用して、ブートパラメータをパスワードで保護できます。

警告: ブートローダーパスワードの変更は冪等ではありません。

ブートローダーのユーザー名は常に root です。

これはボールトから取得する必要があります。

設定されていない場合、現在の設定は変更されません。

デフォルト: null

タイプ: string

bootloader_remove_password

この変数を true に設定することで、ブートローダーパスワードを削除できます。

デフォルト: false

タイプ: bool

bootloader_reboot_ok

true の場合、ロールが変更が行われたと判断し、再起動が必要な場合、管理対象ホストを再起動します。

false の場合、管理対象ホストを再起動するタイミングはユーザーが判断します。

ロールは bootloader_reboot_required 変数(下記参照)を true の値で返し、再起動が必要な変更が行われたことを示します。

デフォルト: false

タイプ: bool

ロールによって外部に公開される変数

ロールは以下の変数を公開します:

bootloader_reboot_needed

デフォルト false - true の場合、ロールによって行われた変更を適用するために再起動が必要であることを意味します。

bootloader_facts

すべてのカーネルのブート情報を含みます。

このロールは、bootloader_gather_facts: true を設定した場合にこの変数を返します。

例えば:

"bootloader_facts": [
    {
        "args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet",
        "id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet",
        "index": "3",
        "initrd": "/boot/initramfs-0-rescue-c44543d15b2c4e898912c2497f734e67.img",
        "kernel": "/boot/vmlinuz-0-rescue-c44543d15b2c4e898912c2497f734e67",
        "root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
        "title": "Fedora Linux (0-rescue-c44543d15b2c4e898912c2497f734e67) 36 (Workstation Edition)",
        "default": True
    },
    {
        "args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "index": "2",
        "initrd": "/boot/initramfs-6.3.12-100.fc37.x86_64.img $tuned_initrd",
        "kernel": "/boot/vmlinuz-6.3.12-100.fc37.x86_64",
        "root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
        "title": "Fedora Linux (6.3.12-100.fc37.x86_64) 37 (Workstation Edition)",
        "default": False
    },
    {
        "args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "index": "1",
        "initrd": "/boot/initramfs-6.4.15-100.fc37.x86_64.img $tuned_initrd",
        "kernel": "/boot/vmlinuz-6.4.15-100.fc37.x86_64",
        "root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
        "title": "Fedora Linux (6.4.15-100.fc37.x86_64) 37 (Workstation Edition)",
        "default": False
    },
    {
        "args": "ro rootflags=subvol=root rd.luks.uuid=luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "id": "luks-9da1fdf5-14ac-49fd-a388-8b1ee48f3df1 rhgb quiet $tuned_params",
        "index": "0",
        "initrd": "/boot/initramfs-6.5.7-100.fc37.x86_64.img $tuned_initrd",
        "kernel": "/boot/vmlinuz-6.5.7-100.fc37.x86_64",
        "root": "UUID=65c70529-e9ad-4778-9001-18fe8c525285",
        "title": "Fedora Linux (6.5.7-100.fc37.x86_64) 37 (Workstation Edition)",
        "default": False
    }
]

例としてのプレイブック

- hosts: all
  vars:
    bootloader_settings:
      # 既存のカーネルをパスを使用して更新し、前の設定を置き換えます
      - kernel:
          path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
        options:
          - name: console
            value: tty0
            state: present
          - previous: replaced
      # インデックスを使用して既存のカーネルを更新します
      - kernel:
          index: 1
        options:
          - name: print-fatal-signals
            value: 1
      # タイトルを使用して既存のカーネルを更新します
      - kernel:
          title: Red Hat Enterprise Linux (4.1.1.1.el8.x86_64) 8
        options:
          - name: no_timer_check
        state: present
      # 引数付きのカーネルを追加します
      - kernel:
          path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
          initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
          title: My kernel
        options:
          - name: console
            value: tty0
          - name: print-fatal-signals
            value: 1
          - name: no_timer_check
            state: present
        state: present
      # 引数付きのカーネルを追加し、デフォルト引数をコピーします
      - kernel:
          path: /boot/vmlinuz-6.5.7-100.fc37.x86_64
          initrd: /boot/initramfs-6.5.7-100.fc37.x86_64.img
          title: My kernel
        options:
          - name: console
            value: tty0
          - copy_default: true
        state: present
      # カーネルを削除します
      - kernel:
          title: My kernel
        state: absent
      # すべてのカーネルを更新します
      - kernel: ALL
        options:
          - name: debug
            state: present
      # デフォルトカーネルを更新します
      - kernel: DEFAULT
        options:
          - name: quiet
            state: present
    bootloader_timeout: 5
    bootloader_password: null
    bootloader_remove_password: false
    bootloader_reboot_ok: true
  roles:
    - linux-system-roles.bootloader

rpm-ostree

README-ostree.mdを参照してください。

ライセンス

MIT

プロジェクトについて

Ansible role for bootloader management

インストール
ansible-galaxy install linux-system-roles.bootloader
ライセンス
mit
ダウンロード
82.9k