Skip to content

Instantly share code, notes, and snippets.

@takekawa
Forked from takekawa/gist:3794566
Created October 11, 2012 00:13
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takekawa/3869340 to your computer and use it in GitHub Desktop.
Save takekawa/3869340 to your computer and use it in GitHub Desktop.
Openstack noVNCのコンソールで日本語キーボードを使用するための方法
二つの手順を実施する必要があります。
1. nova.confの設定変更 (要VM再起動)
以下の文字列をnova.confに追加します。
vnc_keymap=ja
openstackを再起動後(nova-computeだけ?)、新規のコンピュートはUS配列で文字列が入力可能になります。
2. VM上のOSパラメータ変更
VM上のOSにログイン後(ubuntuならば)以下のコマンドを実行します。
sudo loadkeys jp
参考:
https://access.redhat.com/knowledge/docs/ja-JP/Red_Hat_Enterprise_Linux/6/html/Virtualization_Administration_Guide/sect-Virtualization-Troubleshooting-Missing_Characters_Guest_Console_Japanese_Keyboard.html
@takekawa
Copy link
Author

[nova][kvm]特定のcomputeのキーマップをjaに変更する方法

  1. computeを探す
    nova list コマンドで該当するコンピュートのUUIDを見つける。
    novaのデータベースにログインして、UUIDをキーにIDを探す
    psql -h localhost nova nova
    Password for user nova:
    nova=> select id from instances where uuid = '6b213f30-854d-4ba4-a760-d97b600b881e'
    ;
    id

    93
    (1 row)

この93の16進数がkvmのインスタンスIDになっている93の場合は5d

virsh list | grep 5d

43 instance-0000005d running

2 キーマップを変更

virsh edit instance-0000005d

<graphics type='vnc' port='-1' autoport='yes' listen='172.16.0.102' keymap='ja'>

3 インスタンスを再起動
再起動しないとキーマップが反映されない。
virsh shutdown instance-0000005d
<しばらくまって>
virsh start instance-0000005d

4 OS上のキーマップを変更
ubuntuの場合、コンソールログイン後、以下のコマンドを実行
sudo loadkeys jp

これで日本語キーマップでコンソールが利用可能です。

@takekawa
Copy link
Author

vnc_keymapというフラグがnova.confに存在するとのこと

./nova/virt/libvirt/driver.py

1800             graphics = config.LibvirtConfigGuestGraphics()
1801             graphics.type = "vnc"
1802             graphics.keymap = FLAGS.vnc_keymap
1803             graphics.listen = FLAGS.vncserver_listen
1804             guest.add_device(graphics)

@takekawa
Copy link
Author

jpじゃなくてjaだった....

@takekawa
Copy link
Author

devstack.shにはこんな感じで追加してみた

1782 VNCSERVER_LISTEN=${VNCSERVER_LISTEN=127.0.0.1}
1783 add_nova_opt "vncserver_listen=$VNCSERVER_LISTEN"
1784 add_nova_opt "vncserver_proxyclient_address=$VNCSERVER_PROXYCLIENT_ADDRESS"
1785 add_nova_opt "ec2_dmz_host=$EC2_DMZ_HOST"
1786 add_nova_opt "vnc_keymap=ja"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment