ブラウザからAlpine Linuxの管理 - Webmin, portainer
May 17, 2023
linux AlpineLinuxはじめに
Alpine Linuxが稼働するPC本体には、ディスプレイもキーボードもマウスも接続せず、ルータの隣に常時稼働させて放置しておき、ァイルサーバ等で使用することを想定しています。
サーバの設定は、Webブラウザから出来るようにと、Webminをインストールします。 Webminではdockerの稼働管理は行えませんので、Webブラウザからdockerの稼働管理を行うPortainerもインストールします。
本記事は、Alpine LinuxにWebmin, Portainerをインストールした際の手順の備忘録です。
Webminのインストール
Alpine LinuxではWebminはapkパッケージには無いので、以下のようにインストールします。
まず、Perlをインストールします。
# apk add perlWebminを取得しインストールします。webmin-1.890をインストールしましたが、これは最新ではありません。
# cd /etc/
# wget https://sourceforge.net/projects/webadmin/files/webmin/1.890/webmin-1.890.tar.gz
# tar xvzf webmin-1.890.tar.gz
# mv webmin-1.890 webmin
# rm webmin-1.890.tar.gzWebminのセットアップ
# cd /etc/webmin
# ./setup.sh
Config file directory [/etc/webmin]:
Log file directory [/var/webmin]:
Full path to perl (default /usr/bin/perl):
Operating system: 45
Version: 8
Web server port (default 10000):
Login name (default admin):
Login password:********
Password again:********
Start Webmin at boot time (y/n): y以上でWebminサーバが起動します。ここで「Operating system:」に対して、「45) Debian Linux」を応答しました。本来はAlpine Linuxを応答すべきなのですが、選択肢の中にAlpine Linuxはない!
そこで、CharGPTに、
  1) Pardus Linux           2) SmartOS                3) Sun Solaris
  4) Lycoris Desktop/LX     5) Caldera OpenLinux eS   6) Caldera OpenLinux
  7) Asianux Server         8) Asianux                9) Whitebox Linux
 10) Tao Linux             11) CentOS Linux          12) Springdale Linux
 13) Virtuozzo Linux       14) Scientific Linux      15) Gralinux
 16) NeoShine Linux        17) Endian Firewall Linu  18) Oracle Enterprise Li
 19) Oracle VM             20) XenServer Linux       21) CloudLinux
 22) MostlyLinux           23) Cloudrouter Linux     24) Sangoma Linux
 25) Redhat Enterprise Li  26) Redhat Linux Desktop  27) AlphaCore Linux
 28) X/OS Linux            29) Haansoft Linux        30) cAos Linux
 31) Wind River Linux      32) Amazon Linux          33) Redhat Linux
 34) Fedora Linux          35) White Dwarf Linux     36) Slamd64 Linux
 37) Slackware Linux       38) Xandros Linux         39) APLINUX
 40) BigBlock              41) Ubuntu Linux          42) Mepis Linux
 43) Devuan Linux          44) Linux Mint            45) Debian Linux
 46) SuSE OpenExchange Li  47) SuSE SLES Linux       48) SuSE Linux
 49) United Linux          50) Corel Linux           51) TurboLinux
 52) Cobalt Linux          53) Mandrake Linux Corpo  54) pclinuxos Linux
 55) Mageia Linux          56) Mandrake Linux        57) Mandriva Linux
 58) Mandriva Linux Enter  59) Conectiva Linux       60) ThizLinux Desktop
 61) ThizServer            62) MSC Linux             63) SCI Linux
 64) LinuxPPC              65) Trustix SE            66) Trustix
 67) Tawie Server Linux    68) TinySofa Linux        69) Cendio LBS Linux
 70) Ute Linux             71) Lanthan Linux         72) Yellow Dog Linux
 73) Corvus Latinux        74) Immunix Linux         75) Gentoo Linux
 76) Secure Linux          77) OpenNA Linux          78) SoL Linux
 79) Coherent Technology   80) Playstation Linux     81) StartCom Linux
 82) Yoper Linux           83) Caixa Magica          84) openmamba Linux
 85) FreeBSD               86) DragonFly BSD         87) OpenBSD
 88) NetBSD                89) BSDI                  90) HP/UX
 91) SGI Irix              92) DEC/Compaq OSF/1      93) IBM AIX
 94) SCO UnixWare          95) SCO OpenServer        96) Mac OS X
 97) Darwin                98) OpenDarwin            99) Cygwin
 100) Sun Java Desktop Sys  101) Synology DSM          102) Generic Linux
 103) Windows
この中でAlpine Linuxに最も近いのはどれと聞いてみたところ、
Alpine Linuxに最も近いディストリビューションはSlackware Linuxです。とのことだった。同じ質問をGoogle Bardにも聞いてみると、
The Linux distribution that is closest to Alpine Linux is Debian. とのことだった。こちらの答えのほうがましなように思えたので「Operating system:」の応答は「45) Debian Linux」にしました。
サーバ起動時にWebminを起動するための設定はsetup.shではうまくいかず、initスクリプトを登録する必要があった。
/etc/init.d/webminファイルを作成し、
#!/sbin/openrc-run
start() { /etc/webmin/start; }
stop() { /etc/webmin/stop; }実行権限を付与
# chmod +x /etc/init.d/webmin起動設定
# rc-update add webmin default次に、Webブラウザで、
http://ホスト名:10000/
にアクセスすると、ログイン画面が出ます。
Username=root, password=ルートのパスワード, を入れてログインします。
Webmin >> Change Language and Theme
Language Japanese(JA_JP,UTF-8) にすると、日本語でWebminダッシュボードが表示されます。
Webでのシステム管理例として、Sambaの管理をやってみます。
Webmin >> サーバー >> Samba Windows ファイル共有
あとは直感的に操作できると思います。必要にして十分な設定機能なのですが、ぶっちゃけconfigファイルを直接さわるほうが手っ取り早い。
もしメニューに、
Webmin >> サーバー >> Samba Windows ファイル共有
が無かったら
Webmin >> 未使用のモジュール >> Samba Windows ファイル共有
にあるかもしれません。この場合は、ここでSambaのパスを正しく設定すれば、メニューの位置が「未使用のモジュール」から「サーバー」に 移動してくれます。
もう1つシステム管理例として、ファイアーウォールの管理をやってみます。
Webmin >> ネットワーク >> Linux ファイアーウォール
これは
# iptables -n -Lをやっているだけなんだけど、GUIで個別にポートを開放したり閉じたりできるので地味に便利。
他にもシステム管理がWebからできちゃうので、セキュリティを心配しなくていい環境ならば便利といえば便利なんですが、ぶっちゃけconfigファイルを直接さわるほうが手っ取り早い。
Portainerのインストール
Portainerをdocker composeでインストールします。
version: '2'
services:
  portainer:
    image: portainer/portainer
    ports:
      - 9000:9000
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
	  - ./data:/data
    restart: alwaysPortainerの起動
docker compose up -d参考
https://www.portainer.io/installation/ 公式ドキュメント
https://qiita.com/ao_log/items/d8ef847c826746f9e84b 自宅での技術検証がより楽しくなる? portainer で Docker コンテナ管理version: ‘2’
https://obel.hatenablog.jp/entry/20180816/1534391250 Docker を管理する Webアプリ Portainer を Docker Compose で起動する
nginxリバースプロキシの設定変更
本記事に従いインストールしたWebminとPortainerをアクセスするには、
- Webminにアクセスするには、 http://サーバ名:10000/
- Portainerにアクセスするには、 http://サーバ名:9000/
ですが、
- Webmin http://サーバ名:10000/webmin/
- Portainer http://サーバ名:9000/portainer
でアクセスできるようにnginxの設定を行います。
server {
    listen 80;
    server_name larkbox;
    client_max_body_size 128m;
    index index.html index.htm index.php;
    location /webmin/ {
        proxy_pass http://localhost:10000;
        rewrite /webmin/(.*)$ /$1 break;
        access_log off;
    }
    location /portainer/ {
        proxy_pass http://localhost:9000;
        rewrite /portainer/(.*)$ /$1 break;
        access_log off;
    }
    location / {
        proxy_pass http://localhost:8080/;
        access_log off;
    }
}default.confを修正したら、nginxを再起動。
# rc-service nginx restart




 
   
   
   
   
  