コンテンツにスキップ

BANNER_MESSAGE テーブル

概要

SSH / コンソールログイン時の login バナー、MOTD、logout バナーを設定するテーブル1hostcfgdCONFIG_DB を購読し、/etc/issue / /etc/motd / /etc/issue.net を書き換える。

データフロー (自動生成)

flowchart LR
  CDB[("CONFIG_DB<br/>BANNER_MESSAGE")]
  DM["hostcfgd"]
  CDB --> DM

凡例

CONFIG_DB から SAI までの典型経路を docs/reference/config-db-orch-map.md から機械生成したミニ図。詳細・例外は本ページ本文と対応表を参照。

key 構造

BANNER_MESSAGE|global

シングルトン (global の 1 行のみ)。

フィールド

フィールド 既定 説明
state admin_mode (enabled/disabled) disabled バナー機能の有効化フラグ
login string Debian GNU/Linux 11 ログインプロンプト前に表示
motd string SONiC アスキーアート + 警告文 ログイン直後に表示
logout string "" ログアウト時に表示

購読者

  • hostcfgd (host-services パッケージ)。ConfigDBConnector で BANNER_MESSAGE/global を listen し、/etc/issue, /etc/motd, /etc/issue.net をテンプレ展開して書き換える

関連 CONFIG_DB / YANG / CLI

  • 関連 CLI: config banner state / config banner login / config banner motd / config banner logout
  • 関連 YANG: sonic-banner

例外条件・特殊挙動

条件 挙動
data が dict 型以外 silent return(ログなし)
キャッシュと同一の値 banner-config 再起動をスキップ
systemctl restart banner-config 失敗 syslog ERR のみ、キャッシュ更新なし(次回変更時に再試行)
CONFIG_DB が空 / エントリなし 全 key を空 dict として処理、再起動不要なら no-op
state/login/motd/logout 以外のフィールド load() では読まれない(get() に固定 key しか渡さない)

値依存挙動マトリクス

state (enum enabled/disabled)

効果 evidence
enabled banner-config.shlogin / motd / logout を読み取り /etc/issue.net, /etc/issue, /etc/motd, /etc/logout_message を書き換える sonic-buildimage/files/image_config/bannerconfig/banner-config.sh:8
disabled banner-config.sh がファイルを一切書き換えない banner-config.sh:8

フリーフォームフィールド

  • login / motd / logout — freeform string。state=enabled の場合のみ評価される

複合条件

  • state=enabled のときのみ login/motd/logout フィールドが評価される。state=disabled では他フィールドの値に関わらずファイル更新なし
  • hostcfgd はキャッシュと値が変化した場合のみ systemctl restart banner-config を発行 (重複再起動抑制) (hostcfgd:2074)

関連リファレンス

引用元

関連ページ

運用ヒント

典型値

  • key 形式: BANNER_MESSAGE|global
  • state: enabledlogin / motd / logout に短い文字列を設定。

よくある誤設定

  • 改行を含めるときに JSON エスケープを忘れて適用が失敗する。

確認コマンド

sonic-db-cli CONFIG_DB hgetall 'BANNER_MESSAGE|global'
show banner