概要
前回設定した以下記事の続き。
- パスワードによるSSH設定、
- GUIによるリモートコンソール接続の設定
- cockpitによる仮想化設定
を行う。
実行環境
- sshアクセス&リモートデスクトップログインを行うクライアントPC
- macbookpro m1_pro OS:Sonoma 14.2.1
- Ubuntu
- VERSION="23.10 (Mantic Minotaur)"
cockpitのインストール。
まずは、以下のコマンドでnmcliなどをインストールしておく。あると管理が便利になるため。
sudo apt update
sudo apt install -y network-manager
sudo netplan apply
その後、以下のコマンドでcockpitをインストールする。このコマンドだけで、KVMの仮想環境が出来上がる。
sudo apt install -y cockpit
次にcockpitにアクセスする。ポート9090を使用するので、Firewallで閉じている場合は解放すること。
https://サーバーのIPアドレス:9090
ローカルの場合はサーバのIPアドレスにhttps://localhost:9090またはhttps://127.0.0.1:9090
証明書の設定をしていないため以下のような表示が出てくると思われる。
今回は続行する。
ユーザー名とパスワードは、ホストのユーザー名とパスワード名を入れてログインする。
コンソールは最初制限されているため、sudo用のパスワードをGUIで入れることで、仮想マシンの操作などが実行できるようになる。
また、ホストのコンソール画面に戻り、以下のプラグインをインストールする。
sudo apt install -y cockpit-machines
これで、仮想ゲストが作成できるようになる。
インストールが完了するとGUIの左側に「Virtual machines」という項目が増える。ここから操作して、サーバを作成していくことになる。
仮想ゲストの作成
cockpitを用いてインストールしようとしたら、以下のようなエラーに遭遇。
https://qiita.com/kure/items/889d49cbe2affabae0cf
https://qiita.com/engishoma/items/695fea4656876f93317d
ユーザ、グループ名をqemuに変えるべしとあったが、自分の環境ではqemuのユーザがなく、
libvirt-qemu
というものしかなかったので、以下のコマンドで変えるものとする。
sudo chown libvirt-qemu:libvirt-qemu ./Almalinux~~dvd.iso
それでもまだ上記のエラーが出たので、おそらくディレクトリにアクセスできないのかと思い、isoファイルを移動させる。今回は、/tmp/に移動させた。tmpは一週間で消えてしまうので、どこか任意の置き場を作るとよいだろう。
mv Almalinux~~dvd.iso /tmp/
すると、あっさり通ってくれた。サーバは作成された時はrunnningになる。
そしてGUIコンソールからLinuxのセットアップを行う。
ちなみに、自分は作成時には以下のような設定にして作成した。
オートスタートなどの設定を読み込ませる際にはGUIでシャットダウンさせるか、以下のコマンドをホストで実行。
sudo virsh shutdown サーバ名
ホストから行うゲストサーバの設定
まずは、サーバの自動起動を有効化する。
sudo virsh autostart サーバ名
そして、virshコンソールからでも入れるようにする。cockpitでもなんとかなるがこれができるとなにかと便利。
ゲスト上で、以下のコマンドを入力する。cockpitのコンソールから操作するとよい。。
sudo vi /etc/default/grub
その後、以下のように編集する。
GRUB_CMDLINE_LINUX="「もともと変えてあるオプション」"
↓
GRUB_CMDLINE_LINUX="「もともと変えてあるオプション」 console=tty0 console=ttyS0,115200n8"
そして、以下のコマンドを実行する。*未検証だが、このコマンドだけでうまくいく可能性あり。
systemctl enable serial-getty@ttyS0.service
systemctl start serial-getty@ttyS0.service
ホスト上で、以下のコマンドを実行して、入れることを確認する。
sudo virsh console ゲスト名
事後作業
今回の設定で、最低限VMを構築することができた。
しかし本来であればネットワークの設定をしておいた方が良い。
これで作成したVMはvirbr0
という仮想ブリッジの配下になっている。サーバから外に出る分には問題ないのだが、外部からアクセスすることはできない。
そのため、新たにブリッジを作成し、このVMに紐づけてNICを追加する必要がある。
参考サイト