VMを使用することで、ハードを用意することなくサーバーを立てることができます。 以下より、学科サーバー上でVMを作成する方法を説明します。
VMを作成する
VMの作成にはie-virshコマンドを使用します。
ie-virshコマンドとは
ie-virshコマンドは学科サーバー(amaneなど)でVMを作成することができるコマンドです。virshコマンドをラップしたもので、使い方はそれとほぼ同じです。
ie-virsh | virsh |
---|---|
ie-virsh define | virsh define |
ie-virsh start | virsh start |
ie-virsh shutdown | virsh shutdown |
OSを決める
まずはVMで使用するOSを決めましょう。
$ie-virsh templates
で、使用できるOSの一覧が表示されます。
$ie-virsh templates
uid: 20665 gid: 1001 name: e185742
CentOS-7
CentOS-8
Debian-10
Debian-8
Fedora33-Debug
Fedore-25
Ubuntu-16
Ubuntu-18
Ubuntu-20
今回はUbuntu-20
を使用してみたいと思います。
VMを定義する
$ie-virsh define <vm-name> -t <template-name>
で定義、作成することができます。
Ubuntu-20のVMをhogevmという名前で作成したければ、
$ie-virsh define -b hogevm -t Ubuntu-20
といった具合です。
作成時に初期userとパスワードが出力されるのでメモしておきましょう。 もし忘れた場合は再度VMを作り直すか、シス管にご連絡ください。 また、VMのパスワードはデフォルトのパスワードから必ず変えましょう。
ie-virsh define -b hogehoge -t Ubuntu-20
uid: 21796 gid: 1001 name: e195755
e195755-hogehoge
generate xml :xxxxxxxx
vnc password : xxxxxxxx
Formatting 'e195755-hogehoge.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=10737418240 backing_file=xxxxxxxxx backing_fmt=qcow2 lazy_refcounts=off refcount_bits=16
initial user is xxxxxxxx
initial password is xxxxxxxxxxxx
Domain 'e195755-hogehoge' defined from xxxxxxx
define 時の option
bios から uefi を使うように変更したので、biosを使いたい時には -b を使ってください。
既存の define には影響しませんが、define しなおすと影響が出ます。
% ie-virsh define --help
ie-virsh-define
define (but don't start) a domain from an template XML file
USAGE:
ie-virsh define [FLAGS] [OPTIONS] <name>
ARGS:
<name>
FLAGS:
-b, --bios use BIOS as firmware instead of UEFI
-g, --gdb define the domain in which the gdb port is opened from the template XML file
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-t, --template <template> create a VM with a differential from the template VM registered in
$ie-virsh templates
作成されているか確認する
自分が作成したVMの一覧を表示するには、
$ie-virsh list
で、出来ます。以下は表示の例です。
$ie-virsh list
uid: 20665 gid: 1001 name: e185742
Id Name State
-------------------------------------------------
83 e185742-fedora-debug-matac42 running
117 e185742-test running
118 e185742-hoge running
129 e185742-node02 running
130 e185742-node01 running
131 e185742-node03 running
- e185742(matac42vm.st) shut off
- e185742(oppj.st) shut off
- e185742-fedora-debug-matac shut off
- e185742-hogevm shut off
作成したVMがリストにあればOKです。VM名は<ID>+VM名
で表示されます。
例ではe185742-hogevm
が一番下にあるので、hogevmが作成されていることがわかります。
VMにIPアドレスを振る
作成したVMにsshでアクセスできるように、IPアドレスをVMに割り振りましょう。
MACアドレスの確認
IPアドレスをVMに割り振るにはMACアドレスを確認する必要があります。
MACアドレスを確認するには、
$ie-virsh domiflist <vm-name>
で、出来ます。以下はその例です。
$ie-virsh domiflist hogevm
uid: 20665 gid: 1001 name: e185742
Interface Type Source Model MAC
-----------------------------------------------------------
- bridge br62 virtio 52:54:00:d6:27:88
例ではhogevmのMACアドレスが、52:54:00:d6:27:88
であることがわかりました。
IPアドレスを取得する
IPアドレス取得の方法は、IPアドレス申請方法を御覧ください。
VMにアクセスする
VMを起動する
まずは作成したVMを起動しましょう。
VMを起動するには、
$ie-virsh start <vmname>
で、出来ます。以下は起動例です。
$ie-virsh start hogevm
uid: 20665 gid: 1001 name: e185742
Domain e185742-hogevm started
起動しているかを確認しましょう。
$ie-virsh list
uid: 20665 gid: 1001 name: e185742
Id Name State
-------------------------------------------------
83 e185742-fedora-debug-matac42 running
117 e185742-test running
118 e185742-hoge running
129 e185742-node02 running
130 e185742-node01 running
131 e185742-node03 running
149 e185742-hogevm running <--runningになっていれば起動している。
- e185742(matac42vm.st) shut off
- e185742(oppj.st) shut off
- e185742-fedora-debug-matac shut off
ssh接続する
sshを使用して作成したVMにアクセスします。
VM作成時の初期ユーザーはie-user
です。パスワードは ie-virsh define
時に表示されます。
もし忘れた場合は再度VMを作り直すか、シス管にご連絡ください。
また、VMのパスワードはデフォルトのパスワードから必ず変えましょう。
次のコマンドでVMにsshします。
$ssh ie-user@<VMのIPアドレス>
すると、本当にアクセスしてよいか聞かれるので、yesと入力してEnter。
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
パスワードを入力してEnter。
ie-user@10.0.3.10's password:
以下のようにプロンプトが表示されれば接続成功です。
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
0 updates can be installed immediately.
0 of these updates are security updates.
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Wed Aug 26 16:27:14 2020 from 10.100.10.50
ie-user@ubuntu:~$
作成後は
- パスワード変更
- rootログインの禁止設定
- ユーザー作成
等を行うと良いでしょう。
もしグローバルIPを取得したい場合はこちらの記事を参考に作業を進めてください。
また、VMを使用しない時は、
$ie-virsh shutdown <vmname>
で電源を落としておきましょう。
VMスペック
デフォルトのスペックは以下のとおりです。
CPU | メモリ | ディスク |
---|---|---|
1コア | 1GB | 8GB |
VMのスペックを上げたい
VMのスペックを上げるを御覧ください。
メディアの接続
iso image を接続して install などを行うことが可能です
ie-virsh start した後に接続します
uefi menu を出した段階で別なコマンドでで
ie-virsh attach-disk 03 /home/open/Fedora/Fedora-Server-dvd-x86_64-36_Beta-1.4.iso
とします。外したい時には、
ie-virsh change-media 03 -- --eject
とします。(sdd 固定なので、不都合があるかもしれない)
ie-virsh undefine の対処法
$ie-virsh undefine <vmname>
をするとvmを削除することができます。
もし謝って削除してしまっても元に戻すことができます。
+amane+e235718 ie-virsh list
uid: 19042 gid: 1001 name: e235718
Id Name State
-------------------------------------------------
- e235718-03 shut off
- e235718-lamp shut off
- e235718-test shut off
+amane+e235718 ie-virsh undefine lamp
uid: 19042 gid: 1001 name: e235718
Domain 'e235718-lamp' has been undefined
+amane+e235718 ie-virsh list
uid: 19042 gid: 1001 name: e235718
Id Name State
-------------------------------------------------
- e235718-03 shut off
- e235718-test shut off
このように ie-virsh list
を実行した際にvmが表示されなくなっています。
もう一度defineします。
+amane+e235718 ie-virsh define lamp
uid: 19042 gid: 1001 name: e235718
generate xml : /etc/libvirt/qemu/e23/e235718/e235718-lamp.xml
vnc password : xxxxxxx
Domain 'e235718-lamp' defined from /etc/libvirt/qemu/e23/e235718/e235718-lamp.xml
+amane+e235718 ie-virsh dumpxml lamp | grep 'source file'
<source file='/mnt/ie-virsh/e23/e235718/e235718-lamp.qcow2' index='2'/>
ここにあるsource fileがあるか確認します。
+amane+e235718 ls /mnt/ie-virsh/e23/e235718/e235718-lamp.qcow2
/mnt/ie-virsh/e23/e235718/e235718-lamp.qcow2
source fileがあるので、vmはundefine前の状態で使用することができます。
vmのNICは再生成されており、MACアドレスが変わっているので、IPアドレスを再取得してください。
IPアドレス取得の方法は、IPアドレス申請方法を御覧ください。
+amane+e235718 ie-virsh domiflist lamp
uid: 19042 gid: 1001 name: e235718
Interface Type Source Model MAC
-----------------------------------------------------------
vnet374 bridge br62 virtio 52:54:00:58:da:3b
IPアドレスが再取得できたら、sshログインが可能となります。
undefine前
+amane+e235718 ssh e235718@10.0.6.177
Web console: https://fedora37:9090/ or https://10.0.6.177:9090/
Last login: Sat Nov 2 09:28:45 2024 from 10.100.0.10
[e235718@fedora37 ~]$
undefine後
+amane+e235718 ssh e235718@10.0.6.183
Web console: https://fedora37:9090/ or https://10.0.6.183:9090/
Last login: Sat Nov 2 12:49:33 2024 from 10.100.0.10
[e235718@fedora37 ~]$