vCSA へ SSH ログインし、キーボード配列を日本語に変更する

vCenter Server Appliance 6.5 (以下、vCSA) では、OS として VMware Photon が採用されました。

そして、OS のデフォルトキー配列は、日本ではなく、英語配列になっています。

キー配列を日本語に変更する理由についてですが。

OS 自体のキー配列が英語になっていても SSH クライアントを使えば普通に日本語が打てるかもしれません。

しかし、SSH 接続が無効になっていたり、SSH が有効になっていたとしても sshd サービスデーモンが起動していなかったり、障害で落ちていたりすると必然的にコンソールを使わざるを得ない状況が発生します。

もし、コンソール画面を使わないと行けなくなった時に、キー配列が英語になってたりすると以下のような問題が発生します。

  • root パスワードに特殊文字が含まれている場合に、ログインが混乱・ログインしにくい
  • ログイン出来たとしても打ち間違えたり、コマンドが入力しづらい
  • 結果的には、作業効率低下

なので、出来れば OS のキー配列は日本語に変更した方が良いと思います。

Step 1. SSH ログイン

vCSA 6.5 インストール時に SSH 接続を有効にした場合には、普通に vCSA の OS へ SSH 接続できるはずです。

もし有効になってない場合には、前回の記事を参考にし、コンソール画面 > Troubleshooting Mode Options にて SSH 接続を有効にしてください。

その後、TeraTerm のような SSH クライアントを使って、vCSA-FQDN or IP Address:22 (22番ポート) へ SSH ログインします。

  • 接続先 : vCSA-FQDN or IP Address (22番ポート)
  • ログイン ID : root
  • ログイン PW : vCSA 6.5 インストール時に設定したパスワード

そうすると以下のようにコマンドプロンプト Command> が表示されます。

vCSA 6.5 へ SSH ログインRaw Code(S)Raw Code(T)
Connected to service

    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Launch BASH: "shell"

Command>
Command>
Command>

Step 2. API リスト出力

特に意味はないですが、せっかくなので、シェルへ切り替える前に help api listhelp pi list を実行してみます。

help api と help pi を実行してみるRaw Code(S)Raw Code(T)
Command> help api list
Supported API calls by this server:
com.vmware.appliance.health.applmgmt.get
com.vmware.appliance.health.databasestorage.get
com.vmware.appliance.health.load.get
com.vmware.appliance.health.mem.get
com.vmware.appliance.health.softwarepackages.get
com.vmware.appliance.health.storage.get
com.vmware.appliance.health.swap.get
com.vmware.appliance.health.system.get
com.vmware.appliance.health.system.lastcheck
com.vmware.appliance.monitoring.get
com.vmware.appliance.monitoring.list
com.vmware.appliance.monitoring.query
・・・

Command> help pi list
Available plugin API calls:
com.vmware.clear
com.vmware.cmsso-util
com.vmware.dcli
com.vmware.nslookup
com.vmware.pgrep
com.vmware.pgtop
com.vmware.ping
com.vmware.ping6
com.vmware.portaccess
com.vmware.ps
com.vmware.rvc
・・・

Step 3. シェル切り替え

シェルへの切り替えは、vCSA 6.0 と同じやり方で > shell を実行するとプロンプトが # に変わります。

シェル切り替えRaw Code(S)Raw Code(T)
Command> shell
Shell access is granted to root
#
#
#

Step 4. Locale、及び Keymap 設定

後は、localectl コマンドを使って、OS (VMware Photon) のロケールとキーマップを日本語環境に合わせて変更します。

# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: n/a

# localectl list-locales
de_DE.utf8
en_US
en_US.iso88591
en_US.utf8
es_ES.utf8
fr_FR.utf8
ja_JP.utf8
ko_KR.utf8
zh_CN.utf8
zh_TW.utf8

# localectl set-locale LANG=ja_JP.utf8
※ 出力結果は、何も表示されない

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: n/a
      X11 Layout: n/a
# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: n/a
      X11 Layout: n/a

# localectl list-keymaps | grep "jp"
jp106

# localectl set-keymap jp106
※ 出力結果は、何も表示されない

# localectl status
   System Locale: LANG=ja_JP.utf8
       VC Keymap: jp106
      X11 Layout: jp
       X11 Model: jp106
     X11 Options: terminate:ctrl_alt_bksp

ここまでやるとコンソール上でも普通に日本語キーボードのまま文字入力できるようになります。

vCSA 6.0 (SUSE Enterprise Linux) の場合には、設定ファイル修正後、設定を反映するために OS を再起動する必要がありましたが、localectl だと即時反映されるので、再起動は不要です。

Step 5. root パスワード変更

ついでに、vCSA 6.5 インストール時に一時的に設定した root パスワードを変更します。

特殊文字を入れても構いませんので、自由に設定してください。

root パスワード変更Raw Code(S)Raw Code(T)
# passwd
New password:
Retype new password:
passwd: password updated successfully

Step 6. コンソール上での文字入力テスト

最後に、vCSA 6.5 のコンソールを開いて、コンソール上で日本語キーボードが打てることと特殊文字がそのまま入力可能であることを確認してください。

日本語キー配列に変更後、コンソール上で文字入力テスト

コンソール上で特殊文字「@@@@@@」を入力してみる

その他、色々コマンドを実行してみる

せっかく vCSA へ SSH ログインしたので、軽く Linux コマンドを実行してみましょう。

uname、free、df 等を実行してみる

先ほど説明したように、OS は photon で動いていることが分かります。

ざっくり色々実行して見るRaw Code(S)Raw Code(T)
# uname -a
Linux vcsa-6-5.hogehoge.com 4.4.8 #1-photon SMP Fri Oct 21 20:13:51 UTC 2016 x86_64 GNU/Linux

# cat /etc/photon-release
VMware Photon Linux 1.0
PHOTON_BUILD_NUMBER=13c08b6

# free -m
              total        used        free      shared  buff/cache   available
Mem:          32167       10331       16451         120        5383       21532
Swap:         52215           0       52215

# df -hT
Filesystem                               Type      Size  Used Avail Use% Mounted on
devtmpfs                                 devtmpfs   16G     0   16G   0% /dev
tmpfs                                    tmpfs      16G   12K   16G   1% /dev/shm
tmpfs                                    tmpfs      16G  700K   16G   1% /run
tmpfs                                    tmpfs      16G     0   16G   0% /sys/fs/cgroup
/dev/sda3                                ext3       11G  4.0G  6.2G  40% /
tmpfs                                    tmpfs      16G   11M   16G   1% /tmp
/dev/sda1                                ext3      120M   28M   87M  24% /boot
/dev/mapper/core_vg-core                 ext3       99G   60M   94G   1% /storage/core
/dev/mapper/log_vg-log                   ext3       25G   82M   24G   1% /storage/log
/dev/mapper/db_vg-db                     ext3       25G  103M   24G   1% /storage/db
/dev/mapper/dblog_vg-dblog               ext3       25G   93M   24G   1% /storage/dblog
/dev/mapper/seat_vg-seat                 ext3      197G   86M  187G   1% /storage/seat
/dev/mapper/netdump_vg-netdump           ext3      9.8G   23M  9.2G   1% /storage/netdump
/dev/mapper/autodeploy_vg-autodeploy     ext3       25G   45M   24G   1% /storage/autodeploy
/dev/mapper/imagebuilder_vg-imagebuilder ext3       25G   45M   24G   1% /storage/imagebuilder
/dev/mapper/updatemgr_vg-updatemgr       ext3       99G   60M   94G   1% /storage/updatemgr

# lsblk
NAME                           MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                              8:0    0   12G  0 disk
tqsda1                           8:1    0  128M  0 part /boot
tqsda2                           8:2    0    1G  0 part [SWAP]
tqsda3                           8:3    0 10.9G  0 part /
mqsda4                           8:4    0    3M  0 part
sdb                              8:16   0  1.8G  0 disk
sdc                              8:32   0   50G  0 disk
mqswap_vg-swap1                254:0    0   50G  0 lvm  [SWAP]
sdd                              8:48   0  100G  0 disk
mqcore_vg-core                 254:1    0  100G  0 lvm  /storage/core
sde                              8:64   0   25G  0 disk
mqlog_vg-log                   254:2    0   25G  0 lvm  /storage/log
sdf                              8:80   0   25G  0 disk
mqdb_vg-db                     254:3    0   25G  0 lvm  /storage/db
sdg                              8:96   0   25G  0 disk
mqdblog_vg-dblog               254:4    0   25G  0 lvm  /storage/dblog
sdh                              8:112  0  200G  0 disk
mqseat_vg-seat                 254:5    0  200G  0 lvm  /storage/seat
sdi                              8:128  0   10G  0 disk
mqnetdump_vg-netdump           254:6    0   10G  0 lvm  /storage/netdump
sdj                              8:144  0   25G  0 disk
mqautodeploy_vg-autodeploy     254:7    0   25G  0 lvm  /storage/autodeploy
sdk                              8:160  0   25G  0 disk
mqimagebuilder_vg-imagebuilder 254:8    0   25G  0 lvm  /storage/imagebuilder
sdl                              8:176  0  100G  0 disk
mqupdatemgr_vg-updatemgr       254:9    0  100G  0 lvm  /storage/updatemgr
sr0                             11:0    1 1024M  0 rom

VMware RPM パッケージリスト確認

VMware Photon とは言え、普通に rpm コマンドも使えるので、思いつきで実行してみたらいっぱい入ってました。

以下は、RPM パッケージを確認したときの出力結果ですが、vSphere Update Manager もパッケージとして導入されていました。

VMware RPM リストRaw Code(S)Raw Code(T)
# rpm -qa | grep -i "vmware"
vmware-dns-server-1.0.0-4542680.x86_64
VMware-rhttpproxy-6.5.0-4602587.x86_64
VMware-cis-license-6.5.0-4528602.x86_64
vmware-psc-health-6.5.0.83-4594646.x86_64
VMware-applmon-cloudvm-6.5.0-4602587.x86_64
VMware-Postgres-osslibs-9.4.9.1-4536683.x86_64
VMware-Postgres-libs-9.4.9.1-4536683.x86_64
VMware-Postgres-server-9.4.9.1-4536683.x86_64
VMware-Postgres-extras-9.4.9.1-4536683.x86_64
VMware-Postgres-pg_top-9.4.9.1-4536683.x86_64
VMware-Postgres-contrib-9.4.9.1-4536683.x86_64
VMware-vpxd-svcs-6.5.0-4602587.x86_64
VMware-vpxd-6.5.0-4602587.x86_64
VMware-vpxd-vctop-6.5.0-4602587.x86_64
VMware-cloudvm-vimtop-6.5.0-4602587.x86_64
VMware-content-library-6.5.0-4602587.x86_64
vmware-imagebuilder-6.5.0-4602587.x86_64
vmware-autodeploy-6.5.0-0.0.4602587.noarch
VMware-UpdateManager-6.5.0-4540462.x86_64
vmware-cam-6.5.0.83-4513363.x86_64
VMware-vsanmgmt-6.5.0-0.1.4602587.x86_64
vmware-studio-appliance-config-3.0.0.2-161021181327.noarch
VMware-visl-integration-6.5.0-4602587.x86_64
VMware-jmemtool-6.5.0-4602587.x86_64
vmware-pyvmomi-6.5.0-0.0.4602587.noarch
vmware-lwis-6.2.0-4446131.x86_64
vmware-directory-client-6.5.0.977-4542678.x86_64
vmware-ic-deploy-6.5.0.750-4594645.x86_64
vmware-certificate-server-6.5.0.1306-4580178.x86_64
vmware-dns-client-1.0.0-4542680.x86_64
VMware-vmon-6.5.0-4602587.x86_64
vmware-cm-6.5.0-4602587.x86_64
vmware-sca-6.5.0.116-4479838.noarch
vmware-esx-netdumper-6.5.0-0.0.4602587.i386
VMware-vapi-6.5.0-4602587.x86_64
VMware-Postgres-osslibs-server-9.4.9.1-4536683.x86_64
VMware-Postgres-9.4.9.1-4536683.x86_64
VMware-Postgres-pg_rewind-9.4.9.1-4536683.x86_64
VMware-Postgres-cis-visl-scripts-9.4.9.1-4536683.x86_64
VMware-Postgres-odbc-9.4.9.1-4536683.x86_64
VMware-Postgres-client-jdbc-9.4.9.1-4536683.noarch
VMware-mbcs-6.5.0-4602587.x86_64
VMware-vpxd-agents-eesx-6.5.0-4602587.x86_64
vmware-virgo-6.5.0-4602587.x86_64
vmware-vmrc-6.5.0-4602587.x86_64
vmware-eam-6.5.0-4602587.x86_64
VMware-sps-6.5.0-4602587.x86_64
VMware-vcha-6.5.0-4602587.x86_64
VMware-vsan-health-6.5.0-4602587.x86_64
vmware-vsm-6.5.0-4602587.x86_64
VMware-perfcharts-6.5.0-4602587.x86_64
vmware-jre-1.8.0_101-fcs.x86_64
vmware-studio-init-3.0.0.2-161021181327.noarch
vmware-studio-vami-tools-3.0.0.2-4446656.x86_64
vmware-studio-vami-lighttpd-3.0.0.2-4446656.x86_64
VMware-vc-support-6.5.0-4602587.x86_64
VMware-commonjars-6.5.0-4602587.x86_64
vmware-snmp-1.1.0-1.x86_64
VMware-unixODBC-2.3.2.vmw.2-6.5.0.x86_64
vmware-afd-6.5.0.1227-4580174.x86_64
vmware-directory-6.5.0.977-4542678.x86_64
vmware-certificate-client-6.5.0.1306-4580178.x86_64
vmware-identity-sts-6.5.0.1351-4594647.noarch

有効化されたサービスリスト確認

以下は、有効化状態 (enabled) のサービス一覧です。

systemctl 有効化されたサービス・リストRaw Code(S)Raw Code(T)
# systemctl list-unit-files | grep "enabled"
appliance-shutdown.service             enabled
auditd.service                         enabled
autovt@.service                        enabled
cloud-config.service                   enabled
cloud-final.service                    enabled
cloud-init-local.service               enabled
cloud-init.service                     enabled
cron.service                           enabled
crond.service                          enabled
dbus-org.freedesktop.network1.service  enabled
dbus-org.freedesktop.resolve1.service  enabled
dm-event.service                       enabled
getty@.service                         enabled
haveged.service                        enabled
irqbalance.service                     enabled
lvm2-activate.service                  enabled
lvm2-lvmetad.service                   enabled
lvm2-monitor.service                   enabled
ntpd.service                           enabled
rpcbind.service                        enabled
rsyslog.service                        enabled
saslauthd.service                      enabled
sendmail.service                       enabled
sshd-keygen.service                    enabled
sshd.service                           enabled
syslog.service                         enabled
sysstat.service                        enabled
systemd-networkd-wait-online.service   enabled
systemd-networkd.service               enabled
systemd-resolved.service               enabled
systemd-timesyncd.service              enabled
vgauthd.service                        enabled
vmtoolsd.service                       enabled
vmware-firewall.service                enabled
vmware-vmon.service                    enabled
xinetd.service                         enabled
atftpd.socket                          enabled
dm-event.socket                        enabled
rpcbind.socket                         enabled
systemd-networkd.socket                enabled
remote-fs.target                       enabled

終わりに

VMware Photon をテスト用に別途構築して色々試して見たのですが、基本的な操作コマンドは普通に Linux コマンドで、ネットワーク設定に関しては若干くせがあリました。

サービス管理も systemctl なので、Ubuntu とか CentOS とか普通に触ってる方なら無理なく使えるかなと思います。

以上、vCenter Server Appliance 6.5 キー配列日本語化、及び root パスワード変更 でした。