ホーム > 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上の仮想マシン)
- AlmaLinux release 9.0 (Emerald Puma)
AWXの設定
AnsibleAWXでの各種設定についての説明になります。
インベントリーについては特別な設定を行っていませんので、以下を参考にして下さい。
・インベントリー
認証情報
ターゲットノードに接続する際に使用する認証情報について説明します。
今回実行するプレイブックでは、rootユーザーで実行する処理を含んでいるため、
一般ユーザーの設定の他、権限昇格を行う設定が必要となります。
権限昇格を行うための設定方法は下記を参考にして下さい。
*一般ユーザーを使用せずに、直接rootユーザーで接続する場合は本設定は不要です。
テンプレート
今回実行するテンプレートの設定について説明します。
下記は私の設定なので、ご自身の環境に合わせて適宜設定して下さい。
項目 | 設定値 |
---|---|
名前 | 2001_VB_GuestAdditions_Install |
説明 | VirtualBoxのGuestAdditionsをインストールする |
ジョブタイプ | 実行 |
インベントリー | Syutaku Inventory |
プロジェクト | Syutaku Project |
PLAYBOOK | PB2001_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
記事は以上です。今回のプレイブックはエラーハンドリングや冪等性を考慮していないので、これをベースにしてご自身の環境に合わせて、色々カスタマイズして使用してみて下さい。
リンク
コメント