【ESXi】configstore

7.0 U2 以降では、サービス構成は特殊な構成保存データベースに保存されます。

データベースの設定にアクセスするには、 /bin/configstorecli ツールを使用します。

・Config Storeによって管理されているファイルのリストを表示

[root@esxi:~] configstorecli files get
{
   "cached": [
      "/etc/slp.reg",
      "/etc/vmware/schemastore/schema-store-1",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationfilter",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationfilter.idx",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationhandlercimxml",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationhandlercimxml.idx",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationsubscription",
      "/var/lib/sfcb/registration/repository/root/interop/cim_indicationsubscription.idx",
      "/var/lib/sfcb/registration/repository/root/interop/cim_listenerdestinationcimxml",
      "/var/lib/sfcb/registration/repository/root/interop/cim_listenerdestinationcimxml.idx",
      "/var/lib/sfcb/registration/repository/sfcb-0-0/root/interop/qualifiers",
      "/var/lib/sfcb/registration/repository/sfcb-0-0/root/interop/qualifiers.idx"
   ],
   "config": [
      "/etc/dhclient-vmk0.conf",
      "/etc/dhclient6-vmk0.conf",
      "/etc/host.conf",
      "/etc/issue",
      "/etc/motd",
      "/etc/nscd.conf",
      "/etc/ntp.keys",

・各構成値にアクセスするための、スキーマ情報取得

[root@esxi:~] configstorecli schema list
{
   "esx": { ← Component
      "assignhw": [ ← Group
         "overrides" ←Key
      ],
      "attestation": [
         "tpm2_settings",
         "tpm2_endorsement_keys",
         "tpm2_ca_certificates",
         "esx_base_images",
         "certificate"
      ],
      "authentication": [
         "user_accounts",
         "trust_security_token_issuers",
         "esx_token_config",

スキーマは3層構成になっており、それぞれComponent / Group / Keyをと呼ばれ、それらを指定することで各構成値を指定する。

・構成値を取得

[root@esxi:~] configstorecli  config default get  -c esx -g services -k vpxa
{
   "alarm": {
      "check_frequency": 20,
      "power_on_silence": 60
   },
   "core": {
      "debug_options": {
         "disconnect_hostd": false,
         "ignore_snapshot_config_cache": false,
         "simulate_invalid_snapshot_mo": true,
         "simulate_invalid_snapshot_mo_once": false
      },
      "host_sync": {
         "get_changes": {
            "asyncvmxblob": true,
            "delay": 0,
            "envbrowser_refresh_rate": 300,
            "timeout": 0
         },
         "guestdisk_use_percentage_diff_check": false,
         "heartbeat": {
            "interval": 10,
            "stress_delayed_heartbeat": 300,
            "stress_duration": 180000000,
            "stress_enabled": false,
            "stress_missed_heartbeat": 500
         },
         "host_health_system_throttle_interval": 0,
         "max_event_reporting_delay_seconds": 60,

コマンドにおける、defaultはそのほかにもcurrentとdesireがある。

また、getの代わりにset / update を利用すると設定ができるが、その際はcurrentを指定する必要がある。

・設定変更時の挙動確認

①configstorecliにて直接変更する場合

1.設定値を記載したjsonファイルを作成

[root@esxi:/tmp] cat /tmp/wel.json
{
   "message": "test"
}

2.設定をアップデート

[root@esxi:/tmp] configstorecli  config current update -c esx -g system -k welcome_message -infile /tmp/wel.json
Update: completed successfully.

3.変更を確認

[root@esxi:/tmp] configstorecli  config current get  -c esx -g system -k welcome_message
{
   "message": "test"
}

②esxcliにて変更する場合

1.現在値を確認

[root@esxi:~] configstorecli  config default get  -c esx -g system -k welcome_message
{
   "message": ""
}
[root@esxi:~]
[root@esxi:~] configstorecli  config current get  -c esx -g system -k welcome_message
{}
[root@esxi:~]
[root@esxi:~] esxcli system welcomemsg get
[root@esxi:~]

2.設定をアップデート

[root@esxi:~] esxcli system welcomemsg set -m="welcome"
[root@esxi:~]

3.変更を確認

[root@esxi:~] esxcli system welcomemsg get
welcome
[root@esxi:~]
[root@esxi:~]
[root@esxi:~] configstorecli  config current get  -c esx -g system -k welcome_message
{
   "message": "welcome"
}
[root@esxi:~]

esxcliにてconfig storeが変更されていることが確認できる。

※参考

https://kb.vmware.com/s/article/82227?lang=ja

https://kb.vmware.com/s/article/2046347

Introduction to the new ESXi Configuration Store CLI (configstorecli)