便利なWeb管理コンソール「Cockpit」🛫でコンテナを立ち上げよう

# 自己紹介

ctcでサイバーセキュリティに関する業務をしております m10i です
宜しくお願いいたします

RedHat系OS使いの私は普段SSHでコマンド入力してるのですが、
ちょこっとGUIで操作したい場面に**Cockpit**を利用した所
かなり良いぞ！となったので紹介になります

# What Cockpit?
https://cockpit-project.org/
RedHatが開発しているLinux用 Web管理コンソールです 🛫

# Install
```bash
sudo dnf install cockpit
```

今回はコンテナ(Podman)も操作するので cockpit-podman もインストールします
```bash
sudo dnf install cockpit-podman
```

起動します(永続化も一緒に)
```bash
sudo systemctl enable --now cockpit.service
```

必要に応じてFirewallを開けます
```bash
sudo firewall-cmd --add-service=cockpit --permanent
sudo firewall-cmd --reload
```

> https://<サーバIPアドレス or ホスト名>:9090

でブラウザよりアクセス

![cockpit01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/20def7d5-57a8-b58c-2e2f-5d55892a7907.png)

普段利用しているユーザID/Passwordでログインすると下記のような画面になります
![cockpit02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/998c6a15-7f4a-36ea-e3bb-e480f864d0c6.png)

この時点では制限付きアクセスモード(一般ユーザ権限)になっており、
都度スーパーユーザにも変更可能です

# CockpitからPodmanを使おう

左メニューからPodman コンテナーを選択します
![cockpit03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/2003e898-37b8-0799-eaa2-0bdde4882f21.png)

初回はサービスが停止しているため、起動すると下記のような画面となります
![cockpit04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/73ee83c6-2939-70c8-3c09-ac4c25c6d630.png)

今回Rundeckをシステム権限で起動したいので、スーパーユーザにしました
![cockpit05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/4a97fa7d-b590-2865-ff40-b88da2882190.png)

実際にRundeckのコンテナを立ち上げてみました
![cockpit06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/ec663dde-9825-d29c-90d6-02a9986c6c00.png)
![cockpit07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/d47e91ae-7781-fb84-5ce3-3301d0df99e1.png)
![cockpit08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/5861f4fb-c6aa-b169-b44c-c4a07701487e.png)

ところが、下記エラーが出て停止してしまいました
```bash
initializing source docker://rundeck/rundeck:latest: reading manifest latest in docker.io/rundeck/rundeck: manifest unknown
```

ポイント
- LATESTのイメージが存在しない場合、エラーになる
- LATEST以外のイメージを利用する場合は事前にプルしておく必要がある

新規イメージのダウンロードからtag指定できるので、こちらから取得します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/5ca19699-afc3-5822-6d8e-388885018f5e.png)

![cockpit09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/8021ffc7-83c6-949a-0f2a-b22fc5b68eec.png)

取得できましたので、起動させます
![cockpit10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/b8dcb563-c080-b99f-7ec9-fddde4c9800b.png)

![cockpit11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/8b488235-923f-f77f-90b4-b2971b117356.png)
![cockpit12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/177fccad-4fba-1664-cdf1-a216da3992f4.png)
![cockpit13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/0abad488-952d-a6ef-b70f-e940dfe18e4e.png)

- RUNDECK_GRAILS_URL でアクセスするホスト名、ポート番号を指定する必要あり
- 指定しない場合は http://127.0.0.1:4440 に転送されてしまう
- /opt/rundeck ディレクトリは最初に作っておく必要がある

無事に起動しました
![rundeck01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15104/f4d1c7f9-03cc-e1af-bf69-48504e23f462.png)

# まとめ
もちろん podman コマンドによるコンテナ操作も可能ですが、
UIで手軽にコンテナのログ確認やコンソール操作したいときにCockpitは非常に便利です

ありがとうCockpit!

# お知らせ
こちらの記事はctc Advent Calendar 2024の記事となります
この後もctc(中部テレコミュニケーション株式会社)のメンバーが技術にまつわる知見を投稿していきますのでご期待ください

https://qiita.com/advent-calendar/2024/ctc