Cockpit とは
Webブラウザベースのサーバー管理ツールです。要は Webmin みたいなものです。
CPU等のリソース確認やログの閲覧、サービスの起動/停止、サーバーの再起動等がWebから行えるようになります。
プラグインを導入することで Docker コンテナの管理やパッケージの管理なども可能になります。
また、マルチサーバーにも対応しています。
Amazon Linux 2 と Cockpit について
RedHat 系のディストリビューション(RHEL、CentOS 等)では Core リポジトリに登録されているので、何も設定せずに Yum からインストールできます。
しかし、Amazon Linux 2 ではパッケージがありません。恐らく AWS コンソールを使え、ということなのでしょう。
他のディストリビューションでは Core に登録されているが故に、epel や remi といった有名どころのサードパーティのリポジトリにも存在しないので導入は大変です。
Cockpit のプレビュー版
前述のとおり、Cockpit は epel や remi のリポジトリにはありません。が、Fedora Copr にプレビュー版が登録されています。
@cockpit/cockpit-preview Copr
今回はこちらを使用します。
導入
まずはリポジトリを登録します。
# amazon-linux-extras install epel
# cat << 'EOS' > /etc/yum.repos.d/cockpit-preview.repo
> [group_cockpit-cockpit-preview]
> name=Copr repo for cockpit-preview owned by @cockpit
> baseurl=https://copr-be.cloud.fedoraproject.org/results/@cockpit/cockpit-preview/epel-7-$basearch/
> type=rpm-md
> skip_if_unavailable=True
> gpgcheck=1
> gpgkey=https://copr-be.cloud.fedoraproject.org/results/@cockpit/cockpit-preview/pubkey.gpg
> repo_gpgcheck=0
> enabled=1
> enabled_metadata=1
> EOS
ここでパッケージを確認
# yum list | grep cockpit
cockpit.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-bridge.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-dashboard.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-debuginfo.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-doc.x86_64 160-1.el7.centos group_cockpit-cockpit-preview
cockpit-doc.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-docker.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-integration-tests.x86_64 161-1.el7.centos group_cockpit-cockpit-preview
cockpit-kdump.noarch 177-1.el7 group_cockpit-cockpit-preview
cockpit-kubernetes.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-machines.x86_64 160-1.el7.centos group_cockpit-cockpit-preview
cockpit-machines.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-machines-ovirt.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-networkmanager.noarch 177-1.el7 group_cockpit-cockpit-preview
cockpit-ostree.x86_64 162-1.el7.centos group_cockpit-cockpit-preview
cockpit-ostree.noarch 176-1.el7 group_cockpit-cockpit-preview
cockpit-ovirt.x86_64 160-1.el7.centos group_cockpit-cockpit-preview
cockpit-packagekit.x86_64 160-1.el7.centos group_cockpit-cockpit-preview
cockpit-packagekit.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-pcp.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-selinux.noarch 0.113-1.el7.centos group_cockpit-cockpit-preview
cockpit-selinux-policy.noarch 0.83-1.el7.centos group_cockpit-cockpit-preview
cockpit-shell.noarch 126-1.el7.centos group_cockpit-cockpit-preview
cockpit-sosreport.noarch 177-1.el7 group_cockpit-cockpit-preview
cockpit-storaged.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-subscriptions.noarch 161-1.el7.centos group_cockpit-cockpit-preview
cockpit-system.noarch 188-1.el7 group_cockpit-cockpit-preview
cockpit-tests.x86_64 188-1.el7 group_cockpit-cockpit-preview
cockpit-ws.x86_64 188-1.el7 group_cockpit-cockpit-preview
Cockpit関連のパッケージが表示されました。cockpit.x86_64
が本体で、 cocpit-XXX
はプラグインになります。
CentOS 用のリポジトリを無理やり使用しているため、一部 Amazon Linux 2 では利用できないパッケージがあるのでご注意ください。インストールしようとするとパッケージ名が異なるのか依存関係の解決に失敗します。
今回は下記のものをインストールします。
# yum install cockpit cockpit-docker cockpit-packagekit cockpit-shell
次にユーザーを追加します。
Cockpit へは Unix ユーザーでログインするのですが、ec2-user にはパスワードがないのでそのままではログインできません。なのでパスワード付きのユーザーを作成するか、ec2-user にパスワードを設定する必要があります。
# useradd yosuke
# passwd yosuke
ユーザー yosuke のパスワードを変更。
新しいパスワード: // ←パスワード入力
新しいパスワードを再入力してください: // ←パスワード再入力
passwd: すべての認証トークンが正しく更新できました。
# usermod -aG wheel yosuke
最後に Cockpit を起動します。
# systemctl start cockpit
起動できたらブラウザから https://<サーバーのIP>:9090
にアクセスしてください。
Cockpit のログイン画面が表示されるはずです。
上で作成したユーザーのユーザー名とパスワードでログインできます。
Cockpit のスクリーンショット集
Cockpitがどんなものなのかを画像で軽くご紹介