-
Notifications
You must be signed in to change notification settings - Fork 5
Vagrant環境整備
Kenichi Omichi edited this page Apr 5, 2022
·
2 revisions
OpenStack を構成していた Intel NUC を Vagrant でシンプルに管理したいと思い、Ubuntu20.04 のクリーンインストールから始めた。 OpenStack 開発をしていた時は良かったが、3台程度のマシンを OpenStack で管理するのは効率が悪くて辛すぎるので(バージョンアップ、障害調査など)。 その時の記録。
環境
- Ubuntu 20.04
- Intel NUC 32GB mem
Windows で RUFUS を使ってブータブル USB メモリを作ろうとしたが失敗したので、Ubuntu 20.04 Desktop で作った手順が以下の通り。
- Ubuntu 20.04 LTS server の ISO イメージ(ubuntu-20.04.4-live-server-amd64.iso) をダウンロード
- Startup Disk Creator をUbuntu 20.04 Desktop で起動
- 公式の手順 で Startup Disk Creator を使ってブータブルUSBメモリを作成
- NUC の BIOS 上で USB から起動するように変更
- 手順 3. で作成したブータブル USB メモリを入れた状態で NUC を起動
- 通常通り Ubuntu 20.40 Server を設定、インストール (できれば自動化したい)。NVMe SSDなのでインストールがかなり速い。
上記の通常インストールだと WIFI 設定ができないので、インストール後に個別設定。
- ネットワークデバイスの確認。下記の例だと wlp58s0 がWIFIネットワークデバイス。
$ ls /sys/class/net/
eno1 lo wlp58s0
- 既存のネットワークコンフィグファイルの確認
$ ls /etc/netplan/
00-installer-config.yaml
- 既存ネットワークコンフィグファイルにWIFIネットワークデバイスの設定を追加(サーバなので固定IP設定)
$ sudo vi /etc/netplan/00-installer-config.yaml
+ network:
+ version: 2
+ wifis:
+ wlp58s0:
+ addresses: [192.168.1.91/24]
+ gateway4: 192.168.1.254
+ nameservers:
+ addresses: [192.168.1.254]
+ search: []
+ access-points:
+ "SSID_name":
+ password: "WiFi_password"
- WIFIの有効化 上記のコンフィグファイルからWIFIを有効化。 ただし、wpasupplicant パッケージがインストールされていない場合、これを実行してもWIFI有効にならない。
$ sudo netplan --debug apply
TODO: USBインストールの時点で自動的にwpasupplicantパッケージをインストールする
Kubernetesクラスタデプロイメントツールである Kubespray には Vagrantfile が含まれているのでそれを利用する。
- まずは必要なパッケージをインストール
$ sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils python3-venv
- libvirtd サービスが動作していることを確認
$ sudo systemctl status libvirtd
- vagrant コマンドを実行するユーザを libvirt と kvm のグループに追加
$ sudo adduser <username> libvirt
$ sudo adduser <username> kvm
- 上記のグループ追加を反映するため、ターミナルからログアウトする
$ exit
これを行わないと、vagrant up 時に以下のようなエラーを出力する
Failed to connect socket to '/var/run/libvirt/libvirt-sock': Permission denied
- venv を作成し、Kubespray に必要な pip モジュールをインストールする
$ python3 -m venv ~/kubespray-venv
$ source ~/kubespray-venv/bin/activate
$ cd kubespray
$ pip3 install -r tests/requirements.txt
- vagrant-libvirt プラグインをインストールする(~/.vagrant.d/ 配下にプラグインがインストールされる)
$ sudo apt install libvirt-dev build-essential
$ vagrant plugin install vagrant-libvirt
- Kubespray で vagrant を実行する
$ vagrant up
この際、ubuntu18.04 のVMイメージが ~/.vagrant.d/boxes/ 配下に格納される。
$ ls ~/.vagrant.d/boxes/generic-VAGRANTSLASH-ubuntu1804/3.6.12/libvirt/ -lh
total 1.4G
-rw-rw-r-- 1 oomichi oomichi 1.4G Apr 5 21:12 box.img
-rw-rw-r-- 1 oomichi oomichi 301 Apr 5 21:12 info.json
-rw-rw-r-- 1 oomichi oomichi 59 Apr 5 21:12 metadata.json
-rw-rw-r-- 1 oomichi oomichi 2.0K Apr 5 21:12 Vagrantfile