UbuntuにCockpitの最新バージョンをインストール

# 目的
サーバにログインするためのユーザ／パスワードをすべて同じにするのはセキュリティリスクがある。Cockpitでサーバ管理する場合でサーバ毎にユーザ／パスワードが異なるとCockpitに再ログインすると再びすべてのサーバに再ログインする必要がある。Cockpitバージョン228からユーザ名／パスワードをsshキーに保存することができるようになりました。
本ページはCockpitの最新バージョンのインストール手順を説明します。

# Cockpitサーバのインストールとセットアップ
## インストール手順
1. 最新バージョンを確認する<pre>sudo apt-cache policy cockpit</pre>
1. 最新バージョンをインストール<pre>sudo apt install -t focal-backports cockpit</pre>

## セットアップ
新Cockpitではダッシュボードからサーバの追加、編集、削除はできません。まだアイコンはありますが、アイコンを選択すると権限不足で操作ができないと表示されます。
## サーバを追加する
1. 監視するサーバを追加するには左上の△アイコンを選択して表示される「Add new host」ボタンを押下します。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/dc3711ba-e063-3c7f-f33a-9b7d66fb49b7.png)
1. 監視するサーバのFQDN又はIPアドレスを入力します。IPアドレスを入力するとダッシュボードにIPアドレスで表示されるのでできるだけFQDNを入力することを推奨します。<br/>サーバにログインするユーザがCockpitにログインしたユーザと異なる場合はユーザ名も入力します。同じ場合は入力は不要です。<br/>入力した後に「Add」ボタンを押下します<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/5a27a926-d186-c45f-6e08-0db52e0c9d48.png)
1. ホストキーの確認が表示されます。正しい場合は「Accept key and connect」ボタンを押下します。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/20787676-556d-65f3-824d-63e1aeb2a6d3.png)
1. パスワード入力ダイアログが表示されます。パスワードを入力して「Automatic login」をチェックすると再ログインした場合に自動的にログインされます。設定した後に「Log in」ボタンを押下します。これでサーバは登録されて左側サーバ一覧に追加されます。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/290b11c3-0b30-9a9e-3313-19d439f3bb16.png)
1. 最後にファイアウォールを開けます。<pre>sudo ufw allow 9090/tcp</pre>

## サーバ設定を編集する及びサーバを削除する
1. 監視しているサーバの設定を編集する場合及びサーバを削除する場合は左上の△アイコンを選択して表示される「Edit hosts」ボタンを押下します。登録されているサーバ一覧が表示されます。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/e20d908d-b3e1-e88a-ee00-50a18ed2ebb5.png)
1. サーバ設定を編集する場合は編集するサーバ名の右のペンアイコンを選択します。サーバを削除する場合は赤い「－」アイコンを選択します。<br/>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698027/0e9e4a13-0873-227e-ea92-340f1c265f8d.png)

# 管理されるサーバのセットアップ
## Cockpitのインストール
1. <pre>sudo apt update</pre>
1. cockpitと関連パッケージをインストール。<pre>sudo apt -y install cockpit</pre>
1. <pre>sudo mkdir -p /usr/lib/x86_64-linux-gnu/udisks2/modules</pre>
1. Cockpitを起動する。<pre>sudo systemctl start cockpit.socket</pre>
1. 確認する。<pre>sudo systemctl status cockpit.socket</pre>
1. OSを再起動した場合でも起動するようにする。<pre>sudo systemctl enable cockpit.socket</pre>

## Cockpitが利用するポートの変更
1. 利用されているポート一覧を表示<pre>sudo lsof -i -P -n | grep LISTEN</pre>特定ポートが利用されているか確認<pre>sudo lsof -i:9090</pre>
1. ポート9090が利用されている場合は別のポートを利用するように設定する（方法１）
    1. Cockpitソケット設定用のディレクトリを作成。<pre>sudo mkdir /etc/systemd/system/cockpit.socket.d/</pre>
    1. ディレクトリに移動。<pre>cd /etc/systemd/system/cockpit.socket.d/</pre>
    1. 設定ファイルを作成。<pre>sudo vi listen.conf</pre>
    1. 次のように内容を追加。ポートを変更する場合は最初に「ListenStream=」が必要です。<br/>[Socket]<br/>ListenStream=<br/>ListenStream=<利用するポート番号>
    1. デーモンを再ロード<pre>sudo systemctl daemon-reload</pre>
    1. Cockpitを再起動<pre>sudo systemctl restart cockpit.socket</pre>
1. ポート9090が利用されている場合は別のポートを利用するように設定する（方法２）
    1. 「/etc/systemd/system/cockpit.socket.d/override.conf」ファイルを編集<pre>sudo systemctl edit cockpit.socket</pre>
    1. 次のように内容を追加。ポートを変更する場合は最初に「ListenStream=」が必要です。<br/>[Socket]<br/>ListenStream=<br/>ListenStream=<利用するポート番号>
    1. デーモンを再ロード<pre>sudo systemctl daemon-reload</pre>
    1. Cockpitを再起動<pre>sudo systemctl restart cockpit.socket</pre>
1. ファイルウォールで指定したポートを開放<pre>sudo ufw allow ポート番号/tcp</pre>

以上