webブラウザでリモート操作できるLinuxサーバ管理ツールの
Cockpit(コックピット)
は、GUI(Web UI)でどのような運用操作が出来るのか、検証してみました。
レジュメ
環境・前提条件
残念ながらAmazon Linux2にはcockpitはありませんでしたので、
- RHEL8 (Red Hat Enterprise Linux)
をAWS EC2で用意しました。
(RHELのAWS EC2はWindowsより料金が高いんですね。
そして、ログインユーザーは「ec2-user」なんですね。)
結論!Cockpit Web UI画面でLinuxサーバ管理がほぼ出来る
Cockpit Web UIによるGUI頼りでは出来る事が限られていますが、
CUIのLinuxコマンドがわかるならば、
ブラウザのWeb UIからCUIのLinuxコマンドが実施できますので、コンソール接続と全く同じ操作が出来ます(=なんでも実行・操作出来る)。
上の画像のCockpitメニューを見てもらってわかるように、
Cockpit Web UIによるGUIで実施できる部分は、
- Linuxサーバーの再起動、シャットダウン
- syslogのログ確認
- サーバのリソース利用状況の確認
- ユーザーアカウントの追加、パスワード変更、削除
- サービスの停止、起動、再起動
- ソフトウェアの更新
といったところでした。(カスタマイズなしでは)
ただ十分、Linuxのコックピット(操縦席)感はあります。
RHEL8にCockpitのインストール
Running Cockpit — Cockpit Project
の手順通り、RHEL8にはデフォルトのリポジトリに「cockpit」は存在しました。
yum install cockpit
systemctl enable --now cockpit.socket
で、インストール完了です。
RHEL7に比べて、「cockpit」のインストールが楽ですね。
Cockpitの起動とWeb UIアクセス
systemctl start cockpit
で、「cockpit」を起動させます。
netstatコマンド、9090ポートを確認しますと、tcp6(IPv6)で「cockpit」が起動しているようでしたが、AWS環境なのでそのままIPv4のグローバルIPアドレスでアクセスします。
こちらはchromeでアクセスした画面ですが、証明書エラーがでますので、
「詳細設定」から「アクセスする(安全ではありません)」をクリックし強制アクセスします。
すると、「cockpit」のweb UI画面が表示されました。
「cockpit」で使用するユーザーを用意する必要がありますね。
一般権限のユーザーを作成し、「cockpit」にログオンしてみました。
「制限付きアクセス」(管理者アクセスを取得できません。)となっており、
「cockpit」操作はかなり限定的でした。
- ログが見つかりません
- ログインしているユーザーには、システム変更を表示する権限がありません
- 当然、システムやサービスの再起動も出来ません。
CPUの使用率、メモリの使用率、ネットワーキング(送信量、受信量)、サービスの実行状況などは一般ユーザー権限でも確認できました。
管理者権限で「cockpit」へアクセスしてみる(管理アクセス)
tesuserをrootグループに追加しても、「cockpit」の管理アクセスは出来ませんでしたので、
- testuserをwheelグループに追加し、
- visudoでwheelグループをパスワード無しでsudo出来るように設定
して、「cockpit」の「端末」でsudoを実行すると、「cockpit」も管理アクセスに変わります。
これでRHEL8の「cockpit」をフルアクセスで運転(操作)出来ますね!
試しに、サーバーのシャットダウンをしてみました。面白い。
cockpit packagesの画面カスタマイズ
高度なカスタマイズは難しいですが、
簡単なカスタマイズ画面(設定ファイルやログ出力)ならPingerをベースに出来そうでした。