仕事で調査検証用にテスト環境を作る必要があり、割と手間だったのと、おそらくまたやるだろうと思ったのでスクリプトにまとめた。
そもそもの動機・目的は、「自己署名証明書で SSL/TLS 有効化した nginx を proxy server として背後に minio server が起動している環境で、プロキシを通して minio と通信できない」という問題の調査のためだった。
余談、当初の仮説は「nginx が特定の HTTP ヘッダを除外・変更して、minio server がリクエストヘッダ等から計算した Signature の値が Authorization ヘッダで送られた Signature の値と一致せず、認証エラーになっているのではないか?」というものだったが、違った。
学び・ハマったところ
mc(minio client) のalias setコマンドは minio server と疎通できないと失敗する- minio の自動起動スクリプトは https://github.com/minio/minio-service で提供されている
- が、システムに
minio-userが作成済みでないと動かないとか、ドキュメントに書かれてない前提条件がある useradd -s /sbin/nologin usernameでログインできないユーザを作れるuseradd -U usernameで username と同名の group を自動作成できる- 自己署名証明書をシステムの
/etc/ssl/certs/辺りにインストールしてupdate-ca-certificatesしてもcurlはエラーになる curl --cacert /path/to/cert.crtオプションをつける必要ありbash *.shとかしても複数のシェルスクリプトを順番に実行してくれるわけではない(最初のだけが実行される)