【Ansible Tower/AWX】Guest Additionsのインストール(AlmaLinux9.0向け)


この記事はプロモーションを含みます。

AlmaLinux

ホーム > Ansible Tower・AWX リファレンス

Ansibleを使用して、AlmaLinux9.0にVirtualBoxのGuest Additionsをインストールするプレイブックをご紹介したいと思います。

構築する環境

構築する環境を説明します。
今回は、以下のターゲットノードに、Guest Additionsのインストールを行います。

  • コントロールノード
    • Ansible AWX 15.0.1
  • ターゲットノード
    • AlmaLinux release 9.0 (Emerald Puma)
      (VirtualBox 7.0上の仮想マシン)

AWXの設定

AnsibleAWXでの各種設定についての説明になります。
インベントリーについては特別な設定を行っていませんので、以下を参考にして下さい。
インベントリー

認証情報

ターゲットノードに接続する際に使用する認証情報について説明します。

今回実行するプレイブックでは、rootユーザーで実行する処理を含んでいるため、
一般ユーザーの設定の他、権限昇格を行う設定が必要となります。
権限昇格を行うための設定方法は下記を参考にして下さい。
*一般ユーザーを使用せずに、直接rootユーザーで接続する場合は本設定は不要です。

テンプレート

今回実行するテンプレートの設定について説明します。
下記は私の設定なので、ご自身の環境に合わせて適宜設定して下さい。

項目設定値
名前2001_VB_GuestAdditions_Install
説明VirtualBoxのGuestAdditionsをインストールする
ジョブタイプ実行
インベントリーSyutaku Inventory
プロジェクトSyutaku Project
PLAYBOOKPB2001_VB_GuestAdditions_Install.yml
認証情報設定なし(起動プロンプト)
詳細0(Normal)

プレイブック

今回実行するプレイブックです。

---
- hosts: all
  gather_facts: False
  become: yes
  tasks:

  - name: 実行権限確認
    shell: whoami

  - name: EPELリポジトリのインストール
    dnf:
      name: epel-release
      state: present

  - name: "各種パッケージのインストール"
    dnf:
      name: "{{ packages }}"
      state: present
    vars:
        packages:
          - kernel-devel
          - kernel-headers
          - gcc
          - gcc-c++
          - make
          - bzip2
          - tar
          - elfutils-libelf-devel
          - perl
          - dkms
          - libX11.so.6
          - libXt
          - libXmu
          - python3-libselinux

  - name: 再起動
    reboot:
      reboot_timeout: 300

  - name: GuestAdditions CDイメージ転送先ディレクトリの作成
    file:
      path: /var/tmp
      state: directory
      mode: "755"

  - name: GuestAdditions CDイメージの転送
    copy:
      src: /home/awx/VBoxGuestAdditions.iso
      dest: /var/tmp/
      mode: "644"

  - name: GuestAdditions CDイメージマウント用ディレクトリの作成
    file:
      path: /mnt/cdrom
      state: directory
      mode: "755"

  - name: GuestAdditions CDイメージマウント
    shell: mount -r -o loop /var/tmp/VBoxGuestAdditions.iso /mnt/cdrom
    args:
      warn: false

  - name: GuestAdditions インストール
    shell: sh /mnt/cdrom/VBoxLinuxAdditions.run

  - name: インストールログ確認
    shell: cat /var/log/vboxadd-setup.log

GuestAdditionsのイメージファイルですが、処理中に外部ネットワークから取得しているのではなく、ローカルに用意していたものを転送しています。
なので、事前にローカルにイメージファイルを格納しておくようにして下さい。
上記のプレイブックでは「/home/awx/」配下に格納しています。

実行結果

プレイブックの実行結果です。

SSH password: 
BECOME password[defaults to SSH password]: 

PLAY [all] *********************************************************************

TASK [実行権限確認] ******************************************************************
changed: [STKPUB002]

TASK [EPELリポジトリのインストール] ********************************************************
changed: [STKPUB002]

TASK [各種パッケージのインストール] **********************************************************
changed: [STKPUB002]

TASK [再起動] *********************************************************************
changed: [STKPUB002]

TASK [GuestAdditions CDイメージ転送先ディレクトリの作成] ***************************************
changed: [STKPUB002]

TASK [GuestAdditions CDイメージの転送] ************************************************
changed: [STKPUB002]

TASK [GuestAdditions CDイメージマウント用ディレクトリの作成] *************************************
changed: [STKPUB002]

TASK [GuestAdditions CDイメージマウント] ***********************************************
changed: [STKPUB002]

TASK [GuestAdditions インストール] ***************************************************
changed: [STKPUB002]

TASK [インストールログ確認] **************************************************************
changed: [STKPUB002]

PLAY RECAP *********************************************************************
STKPUB002                  : ok=10   changed=10   unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

記事は以上です。今回のプレイブックはエラーハンドリングや冪等性を考慮していないので、これをベースにしてご自身の環境に合わせて、色々カスタマイズして使用してみて下さい。

コメント

タイトルとURLをコピーしました