Cockpitをインストールする

Linux

この記事では、UbuntuAlmaLinuxCockpitをインストールします。

はじめに

近年、サーバー管理はますます複雑化しており、管理者にとって大きな負担となっています。そこで今回は、Webブラウザからサーバーを簡単に管理できるツール「Cockpit」をインストールする方法をご紹介します。

コマンドの違いしかありませんが、UbuntuAlmaLinuxで解説します。

環境

  • AlmaLinux 9.5 + Cockpit version 323
  • Ubuntu 24.04 + Cockpit version 314
  • mkcert 1.4.4
  • Mac mini M4 Pro (クライアントPC) + Chrome 134

AlmaLinuxとは?

AlmaLinuxは、Red Hat Enterprise Linux (RHEL) をベースとしたコミュニティベースのオープンソースオペレーティングシステムです。Linuxディストリビューションの一つです。CentOS の開発方針の変更に伴い、2021年に誕生したAlmaLinuxは、RHELと互換性を保ちながら、コミュニティ主導で開発・サポートされています。

2024年11月18日に、コードネーム「Teal Seval」と呼ばれるAlmaLinux 9.5の一般提供を開始しました。

この記事では、このAlmaLinux 9.5を使用します。

Ubuntuとは?

Ubuntu(ウブントゥ)は、Linuxディストリビューションの一つで、Debianをベースに開発されています。初心者にも扱いやすい設計で、デスクトップPCやサーバー向けに広く利用されています。

2024年4月25日に、コードネーム「Noble Numbat」と呼ばれるUbuntu 24.04がリリースされました。

この記事では、このUbuntu 24.04を使用します。

Cockpit

Cockpit は、サーバー管理をするためのオープンソースのWeb UIです。LinuxシステムをWebブラウザから管理できます。Webブラウザさえあれば、どこからでもサーバーにアクセスして、システム情報を確認したり、設定を変更したり、アプリケーションを管理したりすることができます。

主な機能

  • システム情報の概要表示
  • ログの閲覧・検索
  • プロセスの管理
  • ネットワーク設定
  • ストレージの管理
  • ソフトウェアのインストール・アンインストール
  • ユーザーアカウントの管理
  • ファイアウォールの設定
  • シャットダウン・再起動

インストール

Cockpitのインストール

それでは、Cockpitをインストールしましょう。

apt installコマンドを実行します。

Bash
$ sudo apt install cockpit

Cockpitの起動

次に、cockpit.socketを開始します。システム起動時に開始するようにsystemctl enableコマンドを実行します。オプション--nowをつけて起動も同時に行います。

Bash
$ sudo systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket  /usr/lib/systemd/system/cockpit.socket.

起動の確認をするためには、systemctl statusコマンドを実行します。

Bash
$ systemctl status cockpit.socket

Active:」がactive (listening)になっていれば起動しています。「Loaded:」がenabledになっていればシステム起動時に開始するように設定されています。

インストール直後はcockpit.socketdisabledの状態になっています。

Bash
$ systemctl status cockpit.socket
 cockpit.socket - Cockpit Web Service Socket
     Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; disabled; preset: disabled)
     Active: inactive (dead)
   Triggers:  cockpit.service
       Docs: man:cockpit-ws(8)
     Listen: [::]:9090 (Stream)

動作確認

cockpitに接続

それでは、Cockpitにアクセスしてみましょう。https://<IPアドレス>:9090にアクセスしてみましょう。

この段階ではサーバー証明書を用意していないため、保護されていない通信になります。今はこのままでアクセスします。のちの章でサーバー証明書を用意します。

この記事では、同じネットワーク上のMac miniから接続しています。「詳細設定」をクリックして、<アドレス>にアクセスする(安全ではありません)をクリックします。

ログイン

すると、ログイン画面が表示されると思います。ユーザ名とパスワードを入力してログインしましょう。

ログインできたらこのような画面が表示されると思います。

https通信

Cockpitには無事ログインできましたが、今のままだと通信が保護されていません。ローカルネットワークなどの安全が確保されている場合は問題ないのですが、見栄えが悪いので対応したいと思います。

もちろんhttps化しなくてもCockpitとしての動作はします。

自己認証局を立てて、その認証局に署名をもらうサーバー証明書を作成します。いわゆるオレオレ証明書です。

認証局

自己認証局の証明書秘密鍵の作成を行います。

まず、mkcertをインストールしてきます。

apt installコマンドを実行します。

Bash
$ sudo apt install mkcert
$ mkcert --version
1.4.4

執筆時点のmkcertのバージョンは1.4.4なのでこれを使用します。

自己認証局の証明書秘密鍵の作成を行います。そのために、mkcer --installコマンドを実行します。

Bash
$ mkcert --install
Created a new local CA 💥
The local CA is now installed in the system trust store! ⚡️

mkcert -CAROOTコマンドを実行すると証明書秘密鍵が作成されたパスを表示します。

Bash
$ mkcert -CAROOT
/home/higma/.local/share/mkcert

表示された場所を確認すると、確かに作成されています。rootCA-key.pem (秘密鍵)、rootCA.pem (証明書)。

Bash
$ ls /home/higma/.local/share/mkcert
rootCA-key.pem  rootCA.pem

サーバー証明書

サーバーの証明書秘密鍵を作成します。この作業も、Cockpitが起動しているマシンで行います。

mkcert <サーバードメインorサーバーIPアドレス>でサーバー証明書が作成できます。この記事ではCockpitが起動しているマシン (192.168.11.6)の証明書を作成します。なので、mkcert 192.168.11.6を実行します。

Bash
$ mkcert 192.168.11.6

Created a new certificate valid for the following names 📜
 - "192.168.11.6"

The certificate is at "./192.168.11.6.pem" and the key at "./192.168.11.6-key.pem" 

It will expire on 19 June 2027 🗓

192.168.11.6-key.pem (秘密鍵)と、192.168.11.6.pem (証明書)が作成されました。

Bash
$ ls
192.168.11.6-key.pem  192.168.11.6.pem

Cockpitでサーバー証明書を使う

Cockpitでサーバー認証をするためには、先ほど作成したサーバー証明書秘密鍵/etc/cockpit/ws-certs.d/ディレクトリに置く必要があります。その時に、秘密鍵の拡張子を.key、証明書の拡張子を.crtにしてください。

Bash
$ sudo mv 192.168.11.6-key.pem /etc/cockpit/ws-certs.d/192.168.11.6.key
$ sudo mv 192.168.11.6.pem /etc/cockpit/ws-certs.d/192.168.11.6.crt

ブラウザの設定

この設定はMacの場合の説明です。WindowsやLinux、別のブラウザだと少し違うかもしれませんが、本質的には変わりません。

ここでは、Chromeの設定で認証局の証明書をインストールします。まず、アドレスバー左側の「保護されていない通信」をクリックします。出てきたメニューの「サイトの設定」をクリックします。

次に、「プライバシーとセキュリティ」をクリックして、「セキュリティ」をクリックします。

表示されたページで、「証明書の管理」をクリックします。

証明書マネージャのページが開きます。「ローカル証明書」→「MacOSからインポートした証明書を管理する」をクリックします。

Macの場合は次のような「キーキェーンアクセス」のウィンドウが表示されます。そして、「システム」→「証明書」→「四角に鉛筆のマーク」の順にクリックします。認証局の章で作成したrootCA.pemを選択します。

すると、新しい証明書が表示されるのでクリックします。

すると、下のようなウィンドウが表示されます。「信頼」を表示すると「この証明書を使用するとき」の項目が「システムデフォルトを使用」になっています。

これを「常に信頼」に変更します。

すると、青色のプラスのマークに変わっています。これで認証局の設定は完了です。

動作確認

無事、通信が保護されるようになって、赤文字の警告がなくなりました。

おわりに

この記事では、UbuntuとAlmaLinuxCockpitをインストールしました。また、サーバー証明書をブラウザに登録しました。その後、ネットワーク上の別PCからアクセスできることを確認しました。

Cockpitの導入でサーバー管理が楽になったと思います。関連記事にCockpitを使って仮想マシンを作成する方法を解説してます。参考にしてください。

今話題のUbuntuとAlmaLinuxを使いこなしてつよつよエンジニアを目指しましょう!

関連記事

  • Cockpitを使って仮想マシン(AlmaLinux 9.4)を作成する
  • Cockpitを使って仮想マシン(Ubuntu 24.04)を作成する

人気の記事

コメント