LoginSignup
1
4

More than 5 years have passed since last update.

VM setup on headless KVM

Last updated at Posted at 2018-05-01

目標:GUI が使えない手元 KVM に ubuntu 仮想マシンをセットアップしたい。X を飛ばすとかは無しで。

xenial-server-cloudimg-amd64-disk1.img をダウンロードする。このイメージの cloud-init では複数の DataSource が利用できる。イメージの中では次のように設定されている。

/etc/cloud/cloud.cfg.d/90_dpkg.cfg
datasource_list: [ NoCloud, ConfigDrive, OpenNebula, DigitalOcean, Azure, AltCloud, OVF, MAAS, GCE, OpenStack, CloudSigma, SmartOS, Bigstep, Scaleway, AliYun, Ec2, CloudStack, None ]

手元の KVM で使う分には、一番最初の NoCloud簡単だと思う。

default_user である ubuntu のパスワードを有効化するには、次の NoCloud user-data を使うのが簡単。

user-data
#cloud-config
ssh_pwauth: True
password: password
lock_passwd: False

新規にユーザを作るならこんな感じにすると簡単だろう。

user-data
#cloud-config
users:
  - name: adminuser
    groups: admin
    plain_text_passwd: password
    lock_passwd: false

インストール

実際に起動させるには、例えば次のようにする。

cp xenial-server-cloudimg-amd64-disk1.img /var/lib/libvirt/images/test.img

cloud-init で何が起こってるのかわからない時など、root でログインしたい場合は次のようにしてパスワードを設定できる。これはデバッグ時のみ。

virt-sysprep --root-password password:hogehoge -a /var/lib/libvirt/images/test.img

NoCloud 用の補助ディスクを作る。先ほどの user-data を使う。必ず user-datameta-data の両方のファイルを用意してコマンドを実行する。user-data だけでは NG

touch meta-data
genisoimage -output /var/lib/libvirt/images/udata.iso -volid cidata \
  -joliet -rock user-data meta-data

libvirt 環境に登録する。

virt-install --virt-type kvm --name test --ram 2048 \
  --disk path=/var/lib/libvirt/images/test.img,size=16 \
  --disk path=/var/lib/libvirt/images/udata.iso,device=cdrom \
  --graphics none --console pty,target_type=serial --import --network network=default

初期設定が終わったら無効化しておくのも手。

touch /etc/cloud/cloud-init.disabled

補足

virt-sysprep で全部設定してしまえばいいような気もしますが、cloud-init でユーザ作成などもおこなっているので、いい感じに順番に実行するのが難しかったです。

もっといい方法があるかなぁ…?

^] は、CTRL を押しながら ] キーを押す。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4