KVMゲストとしてRancherOSをインストール

KVM

CD Boot

virt-install で ISO ファイルから仮想ゲストを作成&起動します

$ virt-install \
  --name rancher \
  --vcpus 1 \
  --cpu host \
  --memory 2048,maxmemory=4096 \
  --os-variant virtio26 \
  --cdrom rancheros.iso \
  --network network=default,model=virtio \
  --disk pool=ytera,size=10,format=qcow2,bus=virtio \
  --graphics none

storage pool 使ったことなかったので使ってみた。

$ virsh pool-list
 Name                 State      Autostart 
-------------------------------------------
 default              active     yes       
 Downloads            active     yes       
 tmp                  active     yes       
 ytera                active     yes
$ virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

インストール

ros install コマンドでディスクにインストールします

$ sudo ros help install
NAME:
   ros install - install RancherOS to disk

USAGE:
   ros install [command options] [arguments...]

OPTIONS:
   --image value, -i value         install from a certain image (e.g., 'rancher/os:v0.7.0')
                                               use 'ros os list' to see what versions are available.
   --install-type value, -t value  generic:    (Default) Creates 1 ext4 partition and installs RancherOS (syslinux)
                        amazon-ebs: Installs RancherOS and sets up PV-GRUB
                        gptsyslinux: partition and format disk (gpt), then install RancherOS and setup Syslinux
   --cloud-config value, -c value  cloud-config yml file - needed for SSH authorized keys
   --device value, -d value        storage device
   --partition value, -p value     partition to install to
   --statedir value                install to rancher.state.directory
   --force, -f                     [ DANGEROUS! Data loss can happen ] partition/format without prompting
   --no-reboot                     do not reboot after install
   --append value, -a value        append additional kernel parameters
   --kexec, -k                     reboot using kexec
   --debug                         Run installer with debug output

SSH でログインするために公開鍵を cloud-config で設定する必要があります。最小でこの程度。

#cloud-config
ssh_authorized_keys:
  - ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBE3YdsjZWcGkO8g0gCypD1ampRaZunb8VHJD0zzqjc8NxW+H192uOxwXSBJZQWAVY3yH5VIjKhnTdp83/swhajc=
hostname: rancher

cloud-config ファイルは事前にチェックできます

$ sudo ros config validate -i cloud-config.yml

YAML フォーマットの正しさだじゃなくて typo などの不明な設定も見つけてくれます

$ sudo ros config validate -i cloud-config.yml 
> ERRO[0000] hogehoge: Additional property hogehoge is not allowed

cloud-config で設定可能なリストは ドキュメント で。ネットワーク設定 で固定IPにしたり bonding や Tag VLAN 設定もできます。

インストールするバージョンを -i rancher/os:v1.0.1 などと指定できます。指定可能なリストは ros os list で確認できます。

$ sudo ros os list
rancher/os:v1.0.1 remote latest running
rancher/os:v1.0.0 remote available 
rancher/os:v0.9.2 remote available 
rancher/os:v0.9.1 remote available 
rancher/os:v0.9.0 remote available 
(snip)

インストールの実行。なぜか Continue [y/N]: へのキーボードからの入力が効かなかったので yes コマンドで渡して逃げました。

$ yes | sudo ros install -d /dev/vda -c cloud-config.yml -a "console=tty0 console=ttyS0,115200n8"
> INFO[0000] No install type specified...defaulting to generic 
Installing from rancher/os:v1.0.1
Continue [y/N]: 
> INFO[0000] start !isoinstallerloaded                    
> INFO[0000] trying to load /bootiso/rancheros/installer.tar.gz 
23b9c7b43573: Loading layer  4.23 MB/4.23 MB
f90562450ed7: Loading layer 14.96 MB/14.96 MB
94dbf06f5a27: Loading layer 4.608 kB/4.608 kB
52125c070e5e: Loading layer 18.08 MB/18.08 MB
051a95b6eaa9: Loading layer 1.636 MB/1.636 MB
a6fd95b21434: Loading layer 1.536 kB/1.536 kB
c52e27553689: Loading layer  2.56 kB/2.56 kB
7b425eeedf72: Loading layer 3.072 kB/3.072 kB
> INFO[0003] Loaded images from /bootiso/rancheros/installer.tar.gz 
> INFO[0003] starting installer container for rancher/os-installer:latest (new) 
Installing from rancher/os-installer:latest
mount: /dev/sr0 is write-protected, mounting read-only
Continue with reboot [y/N]: 
> INFO[0005] Rebooting

起動しました。 😊

> INFO[0009] [15/16] [docker]: Started                    
> INFO[0010] [16/16] [preload-user-images]: Started       
> INFO[0010] Project [os]: Project started                
> INFO[0011] RancherOS v1.0.1 started                     


               ,        , ______                 _                 _____ _____TM
  ,------------|'------'| | ___ \               | |               /  _  /  ___|
 / .           '-'    |-  | |_/ /__ _ _ __   ___| |__   ___ _ __  | | | \ '--.
 \/|             |    |   |    // _' | '_ \ / __| '_ \ / _ \ '__' | | | |'--. \
   |   .________.'----'   | |\ \ (_| | | | | (__| | | |  __/ |    | \_/ /\__/ /
   |   |        |   |     \_| \_\__,_|_| |_|\___|_| |_|\___|_|     \___/\____/
   \___/        \___/     Linux 4.9.24-rancher

         RancherOS v1.0.1 rancher ttyS0
         docker-sys: 172.18.42.2 eth0: 192.168.122.129 lo: 127.0.0.1
rancher login:
ssh rancher@192.168.122.129

でログインできます。

インストール先のディスクが AWS EBS や GPT の場合は ros install-t で type の指定が必要。

仮想サーバーの削除

お掃除

$ virsh destroy rancher
$ virsh undefine rancher --remove-all-storage
Domain rancher has been undefined
Volume 'vda'(/home/ytera/rancher.qcow2) removed.