BANNER_MESSAGE テーブル¶
概要¶
SSH / コンソールログイン時の login バナー、MOTD、logout バナーを設定するテーブル1。
hostcfgd が CONFIG_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 構造¶
シングルトン (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.sh が login / 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:enabled、login/motd/logoutに短い文字列を設定。
よくある誤設定¶
- 改行を含めるときに JSON エスケープを忘れて適用が失敗する。