KUSANAGIでプロキシサーバの設定を行う

石川英典

プロキシ環境下でのKUSANAGI 9のセットアップ方法を解説。systemdにプロキシ設定を追加し、dnf経由で最新モジュールの更新が可能に。セキュリティ維持のため定期的な更新が推奨されている。

プライム・ストラテジー「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の更新情報 で公開していますのでご確認ください。

  1. /usr/lib/systemd/system/kusanagi.service にあります。 ↩︎
<< KUSANAGI にインストールされている保守向けコマンド(top編)KUSANAGI にインストールされている保守向けコマンド(df, du編) >>

関連記事

Webサイト運用の課題解決事例100選 プレゼント

Webサイト運用の課題を弊社プロダクトで解決したお客様にインタビュー取材を行い、100の事例を108ページに及ぶ事例集としてまとめました。

・100事例のWebサイト運用の課題と解決手法、解決後の直接、間接的効果がわかる

・情報通信、 IT、金融、メディア、官公庁、学校などの業種ごとに事例を確認できる

・特集では1社の事例を3ページに渡り背景からシステム構成まで詳解