プライム・ストラテジー「KUSANAGI」開発チームの石川です。
KUSANAGI 9を直接インターネットにつなげられない環境に構築し、インターネットへのアクセスがプロキシサーバ経由のみに限定されるケースがあります。
KUSANAGI 9はRPMの更新を始めとしてインターネットにつながることを前提としているので、そのままでは動作しません。
ここではプロキシサーバの設定を行い、KUSANAGI 9のセットアップやプロビジョン、モジュールの更新を行えるようにする方法を解説します。
KUSANAGI 9のコマンド実行の仕組み
KUSANAGI 9はコマンドを実行しているように見えて、実のところはサービスとして動作している kusanagi.service
が処理を実行しています。
- kusanagiコマンド: サービスに対して指示を出し、その結果を受け取って画面に表示する
- kusanagiサービス (
kusanagi.service
) : コマンドを受け取って、実際の処理を行う
このような仕組みであるため、環境変数に行ったプロキシサーバの設定はkusanagiコマンドのみに適用されて、 kusanagiサービスには適用されません 。
kusanagiサービスにプロキシサーバの設定を行うためには、systemdのサービスに対して設定をします。
systemdのサービスに環境変数を設定する
systemdに登録されているサービスに対して環境変数を追加する際は systemctl edit
コマンドを利用します。
systemctl edit kusanagi.service
エディタ (vi) が起動するので、以下のように入力します。プロキシサーバのURLは適宜変更してください。
[Service]
Environment="http_proxy=http://example.com:8080"
Environment="https_proxy=http://example.com:8080"
Environment="ftp_proxy=http://example.com:8080"
その後にサービスを再起動します。この際に systemctl daemon-reload
は不要です。
systemctl restart kusanagi.service
systemctl edit
コマンドを用いると kusanagi.service
に限らず、systemdに登録されているサービスの設定を個々にカスタマイズできます。様々な使い道がありますので、覚えておくとよいでしょう。
なお、systemdに登録されている kusanagi.service
のファイル 1 は直接変更しないでください。
KUSANAGIのアップデートによってそのファイルの変更内容が上書きされてしまうためです。
systemdのサービスから環境変数を削除する
もしも環境変数の設定が不要になった場合は systemctl revert
コマンドで設定を削除することができます。
systemctl revert kusanagi.service
その後にサービスを再起動します。
systemctl restart kusanagi.service
KUSANAGI 9の更新の仕組み
KUSANAGI 9では最新モジュールへ更新する仕組みとして、OSの dnf (yum) を利用しています。
dnfコマンドにプロキシを設定する
dnfコマンドでプロキシサーバの設定を行うには /etc/yum.conf
を変更します。
[main]
セクションの末尾に以下を追加します。プロキシサーバのURLは適宜変更してください。
proxy=http://example.com:8080
この状態で dnf check-upgrade
コマンド等を使用し、KUSANAGIのリポジトリに接続できるかどうかを確認してください。
dnfコマンドのプロキシを削除する
プロキシサーバの設定が不要になった場合には、上記で追加した行を削除します。
最後に
KUSANAGI 9では、KUSANAGIの機能追加や不具合の修正だけでなく、ミドルウェアのバージョンアップを定期的に行っています。KUSANAGIの環境のセキュリティを維持するためにも、定期的な更新をお願いします。
また、リリースの詳細は kusanagi.tokyoの更新情報 で公開していますのでご確認ください。
/usr/lib/systemd/system/kusanagi.service
にあります。 ↩︎