VirtualBox上のUbuntu 24.04でHost-Only側に固定IPを設定する【Netplan】
はじめに
Ansibleの検証環境を作るため、VirtualBox上に複数のUbuntu Serverを用意しました。
今回の構成では、
- NAT:インターネット接続用
- Host-Only:管理サーバと管理対象サーバ間の通信用
として、2つのネットワークアダプターを使用しています。
そのうえで、Ansibleから管理対象を安定して指定できるように、Host-Only側へ固定IPを設定しました。
この記事では、実際に自宅の検証環境で行った、
ネットワークインターフェース確認
↓
Netplan設定
↓
設定反映
↓
IPアドレス確認
↓
pingによる疎通確認
までをまとめます。
環境
今回使用した環境です。
| 項目 | 内容 |
|---|---|
| 仮想化ソフト | VirtualBox |
| OS | Ubuntu 24.04 |
| 管理サーバ | controller |
| 管理対象 | tokyo / yokohama / omiya |
IPアドレスは次のように設定します。
| サーバ | IPアドレス |
|---|---|
| controller | 192.168.56.10 |
| tokyo | 192.168.56.11 |
| yokohama | 192.168.56.12 |
| omiya | 192.168.56.13 |
今回はcontrollerを例に説明します。
ネットワーク構成
VirtualBoxでは、次のように2つのネットワークアダプターを使用しています。
Ubuntu VM
│
├─ アダプター1:NAT
│ └─ インターネット接続用
│
└─ アダプター2:Host-Only
└─ 管理用通信
NAT側はインターネット接続に使用し、Host-Only側をcontrollerと管理対象サーバ間の通信に使用します。
今回固定IPを設定するのは、Host-Only側です。
ネットワークインターフェースを確認する
まず、Ubuntu側でネットワークインターフェースを確認します。
ip addr
私の環境では、
enp0s3
enp0s8
のように複数のインターフェースが表示されました。
ここで重要なのは、
「Host-Only側は必ずenp0s8」と決めつけないこと
です。
環境によってインターフェース名は異なる可能性があります。
自分の環境でNAT側とHost-Only側を確認してから、固定IPを設定します。
なぜHost-Only側を固定IPにするのか
今回この環境を作った目的は、Ansibleで複数台のLinuxサーバを管理することです。
今後Ansibleでは、
tokyo → 192.168.56.11
yokohama → 192.168.56.12
omiya → 192.168.56.13
のように管理対象を指定します。
接続先のIPアドレスが変わってしまうと、そのたびにAnsible側の設定も見直す必要があります。
そのため、管理通信に使用するHost-Only側に固定IPを設定しました。
自分の場合は、
「Ansibleに接続先サーバの住所を教えるため」
と考えると理解しやすかったです。
Netplanの設定ファイルを確認する
UbuntuではNetplanを使ってネットワーク設定を管理します。
まず、設定ファイルを確認します。
ls -l /etc/netplan/
環境によって、
01-netcfg.yaml
50-cloud-init.yaml
など、ファイル名が異なる場合があります。
そのため、最初からファイル名を決めつけず、自分の環境に存在するファイルを確認します。
設定内容を確認する場合は、
sudo cat /etc/netplan/<実際のファイル名>
とします。
設定を変更する場合は、
sudo nano /etc/netplan/<実際のファイル名>
とします。
Host-Only側に固定IPを設定する
今回のcontrollerでは、次のように設定しました。
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
enp0s8:
dhcp4: false
addresses:
- 192.168.56.10/24
役割は次のとおりです。
enp0s3
→ NAT側
→ dhcp4: true
enp0s8
→ Host-Only側
→ dhcp4: false
→ 192.168.56.10/24
NAT側はインターネット接続用なのでDHCPによる自動取得のままにしています。
一方、管理通信に使用するHost-Only側ではDHCPを無効にして、
192.168.56.10/24
を設定しています。
Netplanの設定を反映する
Netplanを編集したら、まず次のコマンドを実行しました。
sudo netplan try
問題がなければ、
sudo netplan apply
で設定を反映します。
反映後、
ip addr
を実行してIPアドレスを確認します。
今回のcontrollerでは、Host-Only側に、
192.168.56.10
が設定されていることを確認しました。
同じ考え方で残り3台も設定しました。
controller → 192.168.56.10
tokyo → 192.168.56.11
yokohama → 192.168.56.12
omiya → 192.168.56.13
controllerからpingで疎通確認する
固定IPを設定しただけでは、実際に通信できるかは分かりません。
そこでcontrollerから管理対象3台へpingを実行しました。
tokyo:
ping 192.168.56.11
yokohama:
ping 192.168.56.12
omiya:
ping 192.168.56.13
ここで通信できれば、
VirtualBoxのネットワーク設定
↓
Ubuntuのネットワークインターフェース確認
↓
Host-Only側に固定IPを設定
↓
設定反映
↓
controllerから管理対象へping
まで確認できたことになります。
まとめ
今回は、Ansibleの検証環境を作るために、VirtualBox上のUbuntu 24.04でHost-Only側へ固定IPを設定しました。
ポイントは、
- NATとHost-Onlyの役割を分ける
-
ip addrで実際のインターフェースを確認する - Host-Only側だけ固定IPにする
- Netplanのファイル名を決めつけず実際の環境で確認する
-
netplan try、netplan applyで設定を反映する - 最後に
ip addrとpingで確認する
という流れです。
今回の検証では、
controller → 192.168.56.10
tokyo → 192.168.56.11
yokohama → 192.168.56.12
omiya → 192.168.56.13
として、controllerから3台へ通信できるところまで確認しました。
このあと、controllerから3台へSSH接続し、SSH公開鍵認証を使ってAnsibleを実行するための環境を作っていきます。
関連リンク
普段はnoteで、Linux・Ansible・Python・Excelなどについて、実際に手を動かした学習過程や検証内容を発信しています。
note
実機検証の途中経過や、技術学習で気づいたことはXでも発信しています。
X
GitHubでは、実際の検証で作成したPlaybookやPythonスクリプトなどを公開しています。
GitHub