【Cockpit】CentOS上でWebUIからコンテナと仮想マシン両方の管理を行う(Docker Container/KVM)
こんにちは、yamori(yamori-tech)です。
我が家では今までVMwareのesxiで仮想サーバを作ってその上でDNSサーバやアプリケーションを動作させていました。
仮想マシンだとサーバを作り直すときに時間がかかることがあり、管理コストの低いContainer環境を使いたいと思い始め、このたび環境整備を行いました。
Dockerコンテナの管理がWebUIから行えることも利点ですが、VMwareからの移行も見据え、KVMの仮想マシンの管理にも利用できそうなCockpitを導入することにしています。
環境情報
OS: CentOS7.9 (VMware esxi上の仮想マシン)
4vCPU / 4096MB Memory / 128GB Disk
Cockpitとは
Cockpitとは、Web UIを利用してサーバの設定変更、サーバ上で稼働しているコンテナや仮想マシンを起動・停止・リソース状況のチェックなどを行えるソフトです。
RHEL8のドキュメントでもWebコンソールからのシステム管理にはCockpitを利用したドキュメントが整備されています。
Cockpitのインストールと起動
今回はDockerとKVM両方管理できる環境を試したかったため、以下のセットアップとなります。
# Cockpitのインストール $ sudo yum install cockpit -y # Cockpit-Dockerのインストール $ sudo yum install cockpit-docker -y # Cockpit-Machinesのインストール $ sudo yum install cockpit-machines virt-install -y # KVMで仮想マシンを作成するために必要なパッケージ群のインストール $ sudo yum install libguestfs libvirt libvirt-client python-virtinst qemu-kvm virt-manager virt-top virt-viewer virt-who virt-install bridge-utils -y # 起動と自動起動の設定 $ sudo systemctl enable --now docker $ sudo systemctl enable --now libvirtd $ sudo systemctl enable --now cockpit.socket
CockpitとDocker,KVMの動作確認
WebUIへのログイン
https://<インストールしたホストのIPまたは解決可能なDNS名>:9090 にアクセスすると、ログイン画面が確認できます。
OSのログインパスワードでログインできます。
例: User name: root, Password: <rootユーザのパスワード>
ログインすると、Cockpitをインストールしたマシンの情報が表示されます。
我が家ではVMwareでCentOS7での稼働なのでそのような表示になっています。
DockerとMachinesをインストールした為、左のバーにはContainersとVirtual Machinesのメニューが存在します。
それぞれからContainerの管理と仮想マシンの管理が可能です。
Containerの起動とステータスの確認
試しにContainerを起動させてWebUI上で確認できるか見てみます。
# Docker Imageの取得 (CentOS 7) $ sudo docker image pull centos:7 # Imageの確認 $ sudo docker images # Containerの起動 $ sudo docker run -itd centos:7 /bin/sh # Containerの稼働を確認 $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 48ddc3a6f37c centos:7 "/bin/sh" 13 seconds ago Up 12 seconds cranky_tesla
WebUIから見てみると、先程起動したコンテナが表示されていることがわかります。
(DNSサーバとmydnsのIPアドレスを送信するCronのためのコンテナもうごいてます、これはまた別の記事で紹介します)
コンテナ名をクリックすると、対象のコンテナの詳細情報と起動時にしたプロセスの標準出力が確認できます。
今回は標準出力を確認できるようにするため、echoをループするコンテナを起動しています。
WebUIからイメージをダウンロードしたり、起動したりすることもできます。
KVM仮想マシンの起動とステータスの確認
まずはCentOS7のイメージを準備し、Cockpitをインストールしたサーバ内に配置します。
今回は自分で自動インストールの処理を入れたisoファイルを用意しているので、それを配置します。
# qemu用Directoryの作成 $ sudo mkdir /var/qemu $ sudo chown qemu:qemu /var/qemu # 用意しておいたCentOS7のメディアを配置 $ sudo mv /root/CentOS-7-x86_64-Minimal-2009_Auto.iso /var/qemu $ sudo chown qemu:qemu /var/qemu/CentOS-7-x86_64-Minimal-2009_Auto.iso # こんな感じになっていればOK $ ls -lah /var/qemu 合計 1.1G drwxr-xr-x 2 qemu qemu 51 9月 23 14:33 . drwxr-xr-x. 21 root root 4.0K 9月 23 14:33 .. -rwx------ 1 qemu qemu 1.1G 9月 23 14:24 CentOS-7-x86_64-Minimal-2009_Auto.iso
Virtual Machinesタブを開き、右上のCreate VMボタンからVMを作成します。
メディアはLocal Install Mediaを選択し、先程配置したCentOS7のメディアファイルを選択します。
VNC経由でOSのセットアップを行います。
セットアップ後、VNCとSSHでのログインを確認できました。
KVMはネットワークやオプションや設定の管理が面倒で挫折し、VMwareを使っているという過去があるため、今後継続して利用するかはわかりませんが、うまく動作することはわかりました。
ただ、仮想マシンに付けたCentOS7のインストールディスクをWebUIから外すことができず、実際使うとなるとWebUIからできない操作は多くて難儀しそうだと思いました。
まとめ
Cockpitで期待したとおりDockerとKVMの管理が行えることがわかりました。
今後は仮想マシンはVMware、コンテナはCockpitサーバ上でDockerで管理しようかと考えています。
DNSサーバや単純なcronを動かしているサーバなどが存在するので、これからぼちぼちとContainer環境に移行していこうかと思います。