はじめに
手軽にコンテナを運用するために、CentOSのKVM上にRancherOSをインストールしてみました。
謝辞
作業にあたって以下のサイトを参考にさせていただきました。
ありがとうございます☺
【Docker】RancherOSで本格的な自宅サーバーを構築しよう(2) ~ rancher-serverをインストール ~
KVMゲストとしてRancherOSをインストール
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes牧場でコンテナ牛を飼おう!~
RancherOS で インストール後パスワードでログインする方法
前提
- CentOS上にKVMが動作していること
- OSバージョン:CentOS Linux release 7.6.1810
目標
RancherOSをローカルストレージから起動できるようにする。
構築手順
0.イメージファイル作成
検証なので10Gで作成しました。
$ sudo qemu-img create -f qcow2 /var/lib/libvirt/images/rancher.img 10G
Formatting '/var/lib/libvirt/images/rancher.img',
fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
1.ISOをダウンロードする
$ cd /var/iso/rancheros
$ sudo wget https://releases.rancher.com/os/latest/rancheros.iso
2.ISOから起動
# virt-install \
--name rancher \
--vcpus 2 \
--cpu host \
--memory 2048,maxmemory=4096 \
--os-variant virtio26 \
--cdrom /var/iso/rancheros/rancheros.iso \
--network network=default,model=virtio \
--disk /var/lib/libvirt/images/rancher.img \
--graphics none
上記コマンドを実行後、ずらーっとコンソールにログが流れます。
, , ______ _ _____ _____TM
,------------|'------'| | ___ \ | | / _ / ___|
/ . '-' |- | |_/ /__ _ _ __ ___| |__ ___ _ __ | | | \ '--.
\/| | | | // _' | '_ \ / __| '_ \ / _ \ '__' | | | |'--. \
| .________.'----' | |\ \ (_| | | | | (__| | | | __/ | | \_/ /\__/ /
| | | | \_| \_\__,_|_| |_|\___|_| |_|\___|_| \___/\____/
\___/ \___/ RancherOS amd64 4.14.85-rancher
RancherOS v1.5.1 ttyS0
Autologin default
無事牛さんが現れました🐄
3.Rancherユーザのパスワード設定
SSH公開鍵を転送するためにパスワードを設定します。
$ sudo passwd rancher
[任意のパスワード]
4.SSH接続用の鍵を配置
以下、ローカルで作業します。
$ ssh-keygen -t ed25519
$ cd ~/.ssh/
$ cp id_ed25519.pub cloud_config.yml
$ vim cloud-config.yml
$ cat cloud-config.yml
#cloud-config
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBL1uzHCLiBvuCDcVEzDdh8VQxvn2IDc0VWV/r8iURyF [ユーザ名]@localhost.localdomain
hostname: rancher
$ scp ./cloud-config.yml rancher@192.168.122.74:~
RancherOS上で転送したファイルのフォーマットチェック。
$ ls
cloud-config.yml
$ sudo ros config validate -i cloud-config.yml
何も表示されなければOKです。
5.ローカルストレージにインストール
こちらの記事にある通り、インストールコマンド実行時にパスワードを設定します。
4.までの手順でSSH接続は可能ですが、何らかの理由でSSH接続できなくなった場合、詰むので確実に設定します。
$ sudo ros install -c cloud-config.yml -d /dev/vda --append "rancher.password=rancher"
INFO[0000] No install type specified...defaulting to generic
Installing from rancher/os:v1.5.1
Continue [y/N]: y
INFO[0002] start !isoinstallerloaded
INFO[0002] trying to load /bootiso/rancheros/installer.tar.gz
503e53e365f3: Loading layer 5.793MB/5.793MB
be4565044bd7: Loading layer 17.1MB/17.1MB
aba473c857a1: Loading layer 5.12kB/5.12kB
5832a0a1723a: Loading layer 13.64MB/13.64MB
740d67c0ae68: Loading layer 1.645MB/1.645MB
0617e3efc463: Loading layer 1.536kB/1.536kB
0b53db7286a2: Loading layer 2.56kB/2.56kB
417d4c7a93a5: Loading layer 3.072kB/3.072kB
Loaded image: rancher/os-installer:latest
INFO[0004] Loaded images from /bootiso/rancheros/installer.tar.gz
INFO[0004] starting installer container for rancher/os-installer:latest (new)
Installing from rancher/os-installer:latest
mke2fs 1.44.5 (15-Dec-2018)
64-bit filesystem support is not enabled. The larger fields afforded by this feature enable full-strength checksumming. Pass -O 64bit to rectify.
Creating filesystem with 2620928 4k blocks and 2621440 inodes
Filesystem UUID: 25599e4f-cab9-4c77-9bb3-9dfd32ee8bbc
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
Continue with reboot [y/N]: y
INFO[0020] Rebooting
INFO[0020] Setting reboot timeout to 60 (rancher.shutdown_timeout set to 60)
.....^[ ] reboot:info: Setting reboot timeout to 60 (rancher.shutdown_timeout set to 60)
.=.[ ] reboot:info: Stopping /docker : b9b4c6b7b7d9
............D...........[ ] reboot:info: Stopping /ntp : 3799c8b57b90
..@...[ ] reboot:info: Stopping /network : 41f0c72fe2d7
..<..[ ] reboot:info: Stopping /udev : f04a912c1409
..C..[ ] reboot:info: Stopping /system-cron : f540a3bfb619
..=..[ ] reboot:info: Stopping /acpid : fe95cdde9d2a
...?...[ ] reboot:info: Stopping /syslog : 56def79881a9
..H.[ ] reboot:info: Console Stopping [/console] : 7fa626960b96
[ 876.639035] reboot: Restarting system
仮想マシンの作成が完了しました。
ゲストを再起動しています。
6.接続確認
ホストOS(CentOS)からSSH接続をしてみます。
$ ssh rancher@192.168.122.74
$ hostname
rancher
無事接続できました😃
ハマったポイント
手順「5.ローカルストレージにインストール」での、"-d" の指定
ISOイメージから起動したRancherOS上で、 df コマンドを実行しても、"/dev/sda" 、 "/dev/vda"は存在しません。
$ sudo df -h
Filesystem Size Used Available Use% Mounted on
overlay 977.3M 203.2M 774.1M 21% /
tmpfs 1.9G 0 1.9G 0% /dev
tmpfs 949.8M 0 949.8M 0% /sys/fs/cgroup
tmpfs 978.8M 0 978.8M 0% /mnt
tmpfs 977.8M 0 977.8M 0% /media
none 1.4G 752.0K 1.4G 0% /run
none 1.4G 752.0K 1.4G 0% /var/run
devtmpfs 1.9G 0 1.9G 0% /host/dev
shm 64.0M 0 64.0M 0% /host/dev/shm
tmpfs 977.3M 203.2M 774.1M 21% /etc/hostname
shm 64.0M 0 64.0M 0% /dev/shm
devtmpfs 1.9G 0 1.9G 0% /dev
shm 64.0M 0 64.0M 0% /dev/shm
しかし、 /dev ディレクトリ以下にはしっかり vda が存在します。
$ ls /dev | grep *da
vda
初歩的なミスですが、備忘のために記載しておきます・・。
手順や認識に不備等あれば、ご指摘お願いします!