Ubuntu Weekly Recipe

第480回 ウェブブラウザーから操作できる軽量管理ツール「Cockpit」

この記事を読むのに必要な時間:およそ 4 分

Cockpitはかんたんに使えて,軽量で,マルチサーバーにも対応したウェブベースのLinuxシステム管理ツールです。シェル端末機能もついているため,ウェブブラウザーから直接システムを管理することも可能です。今回はこのCockpitをUbuntuにインストールする方法を紹介します。

Linuxサーバーの「UI」となるCockpit

Cockpitをインストールすると次のような処理を,ウエブブラウザーから行えるようになります。

  • ユーザーアカウント管理
  • システムの再起動やシャットダウン
  • systemdを使用したサービスの起動・停止・有効化・無効化などの設定
  • systemdのjournalctlを利用したシステムログの閲覧
  • udisks2もしくはstoragedを利用したストレージ関連のモニタリング
  • NetworkManagerを利用したネットワーク管理
  • Performance Co-Pilotで取得した各種メトリクスの表示
  • PackageKit経由のパッケージ管理
  • Web UIが動いているマシンから他の管理マシンへのSSHログイン
  • Dockerコンテナの管理
  • 管理対象システム上のシェル操作

見も蓋もない言い方をすれば「Webminのようなもの」です。とは言えCockpitはCockpitなりのポリシーをもって開発を行っています。端的に言うと,なるべく独自のデータ構造を持たないようにし,システムのあるがままの設定を変更します。これによりソースコードをシンプルな形に保ち,余計な依存関係を排除し,ほぼ最小構成のサーバー上でも動くようになっています。またCockpitそのものの設定もシンプルで,たいていのシステム上ではインストールしたら特別な設定なくそのまま動きます。また余計なリソース消費がないように注意して作られており,管理ツールのWeb UIのためのツールが常駐することを避け,ユーザーがログインしようとして初めてUIサービスが立ち上がる仕組みになっているのです。

その開発には主にRedHatの開発者たちが関わっているようです。そのためSOS Reportの取得やサブスクリプションの管理なども行えます。ちなみに昨年末,Ubuntuの主要な開発者としてUbuntuの草創期から支えてきたMartin PittがCanonicalを離れRed Hatに移籍しました。そのMartin Pittも,移籍後にこのCockpitの開発に積極的に関わっています。

そして今年の3月にはDebian DeveloperとしてのMartin Pittが自分自身でCockpitをDebianパッケージ化し,リポジトリに取り込んでいます。つまりUbuntuの公式リポジトリからもCockpitをインストールできるようになっている,というわけです。パッケージを作った時期が今年の3月であるため,Debian 9には取り込まれていません。Ubuntuだと17.04以降であればパッケージが存在します。

さらに今年の5月には,最新のCockpitパッケージがUbuntu 16.04 LTSにバックポートされました。よってUbuntu 16.04 LTS以降であれば,Cockpitをaptコマンドからかんたんにインストールできるようになったのです。

Cockpitのインストール

Ubuntu 16.04 LTSの場合,Cockpitは次のようにバックポートリポジトリを指定してインストールします。17.04以降であれば-t xenial-backportsを省いてください。もしくは-t リリース名-backportsと指定すれば,個々のリリースごとのより新しいバージョンがインストールされます。

$ sudo apt -t xenial-backports install --no-install-recommends cockpit
(中略)
The following NEW packages will be installed:
  cockpit cockpit-bridge cockpit-dashboard cockpit-system cockpit-ws dconf-gsettings-backend dconf-service glib-networking
  glib-networking-common glib-networking-services gsettings-desktop-schemas libcrack2 libdconf1 libjson-glib-1.0-0 libjson-glib-1.0-common
  libproxy1v5 libpwquality-common libpwquality-tools libpwquality1 libssh-4
0 upgraded, 20 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,999 kB of archives.
After this operation, 4,907 kB of additional disk space will be used.
(後略)

--no-install-recommendsオプションつけずにインストールすると,NetworkManager経由でデスクトップ関連のパッケージも一緒にインストールしてしまいます。サーバー用途のマシンであれば,cockpit-storagedパッケージやcockpit-networkmanagerパッケージは,必要に応じて別途--no-install-recommendsオプションをつけて)インストールしたほうが良いでしょう。

基本的にインストールしただけでセットアップ完了です。Ubuntuの場合はsystemdのSocket Unitが自動的に有効化されています。

$ systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/lib/systemd/system/cockpit.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Sun 2017-07-16 09:08:43 UTC; 19min ago
     Docs: man:cockpit-ws(8)
   Listen: [::]:9090 (Stream)

これにより9090番ポートにアクセスしてはじめてCockpitのサービスを立ち上げることになります。つまりサービスを常駐させる必要がないため,⁠Cockpitを使用していない時は余計なリソースを使わない」ことが実現できているのです。

$ systemctl status cockpit.service
● cockpit.service - Cockpit Web Service
   Loaded: loaded (/lib/systemd/system/cockpit.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:cockpit-ws(8)

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入