vCSA のシェル環境について

vCenter Server Appliance 6.0 (以下、vCSA) は、デフォルトでシェルが無効状態になっています。

vCSA の OS 上でシェルが使えるようにするためには、アプライアンスへ SSH 接続した後、シェルを有効化する必要があります。

主に、以下の作業を実施します。

  • アプライアンスへ SSH ログイン
  • シェル切替え有効化
  • シェル切替え

Step 1. アプライアンスへ SSH ログイン

Tera Term のような SSH クライアントを使ってアプライアンスへログインします。

以下の例では、SSH クライアントツールとして Tera Term を使っています。

一般的に root ユーザの SSH ログインは、セキュリティ的に良くないため禁止されていますが、vCSA の場合には、最初から root ユーザの SSH ログインが許可されている状態になっています。

恐らく、前回の記事 vCenter Server Appliance 6.0 インストールStep 11. ネットワーク設定SSH の有効化 にチェックを入れると root ユーザのログインを許可するように自動的に設定が入るのではないかと思っています。

vCSA インストール中には OS のログインユーザを作成するような項目・画面は出てこなかったので、ログインユーザ作成、root ユーザの SSH ログイン無効化等の設定は、必要に応じて行う必要があります。

ログインユーザの ID・パスワードを入力し、プレインテキストを使う を選んで、OK をクリックします。

vCSA へ SSH ログイン

そうすると以下のようにアプライアンス専用の Command> プロンプトが表示されます。

vCSA コマンドプロンプト
01
02
03
04
05
06
07
08
09
10
Last login: Tue Apr 28 05:28:38 UTC 2015 from 10.100.100.50 on pts/0
Last login: Tue Apr 28 06:45:24 2015 from 10.100.100.50
Connected to service
 
    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Enable BASH access: "shell.set --enabled True"
    * Launch BASH: "shell"
 
Command>

せっかくなので、シェルを有効化する前に、API リストPlugin リスト を確認して見ます。

API リストと Plugin リスト確認
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
Command> help api list
Supported API calls by this server:
com.vmware.appliance.version1.access.consolecli.get
com.vmware.appliance.version1.access.consolecli.set
com.vmware.appliance.version1.access.dcui.get
com.vmware.appliance.version1.access.dcui.set
com.vmware.appliance.version1.access.shell.get
com.vmware.appliance.version1.access.shell.set
com.vmware.appliance.version1.access.ssh.get
com.vmware.appliance.version1.access.ssh.set
com.vmware.appliance.version1.localaccounts.user.add
com.vmware.appliance.version1.localaccounts.user.delete
com.vmware.appliance.version1.localaccounts.user.get
com.vmware.appliance.version1.localaccounts.user.list
com.vmware.appliance.version1.localaccounts.user.password.update
com.vmware.appliance.version1.localaccounts.user.set
com.vmware.appliance.version1.monitoring.snmp.disable
com.vmware.appliance.version1.monitoring.snmp.enable
com.vmware.appliance.version1.monitoring.snmp.get
com.vmware.appliance.version1.monitoring.snmp.hash
com.vmware.appliance.version1.monitoring.snmp.limits
com.vmware.appliance.version1.monitoring.snmp.reset
com.vmware.appliance.version1.monitoring.snmp.set
com.vmware.appliance.version1.monitoring.snmp.stats
com.vmware.appliance.version1.monitoring.snmp.test
com.vmware.appliance.version1.networking.dns.domains.add
com.vmware.appliance.version1.networking.dns.domains.list
com.vmware.appliance.version1.networking.dns.domains.set
com.vmware.appliance.version1.networking.dns.hostname.get
com.vmware.appliance.version1.networking.dns.hostname.set
com.vmware.appliance.version1.networking.dns.servers.add
com.vmware.appliance.version1.networking.dns.servers.get
com.vmware.appliance.version1.networking.dns.servers.set
com.vmware.appliance.version1.networking.firewall.addr.inbound.add
com.vmware.appliance.version1.networking.firewall.addr.inbound.delete
com.vmware.appliance.version1.networking.firewall.addr.inbound.list
com.vmware.appliance.version1.networking.interfaces.get
com.vmware.appliance.version1.networking.interfaces.list
com.vmware.appliance.version1.networking.ipv4.get
com.vmware.appliance.version1.networking.ipv4.list
com.vmware.appliance.version1.networking.ipv4.renew
com.vmware.appliance.version1.networking.ipv4.set
com.vmware.appliance.version1.networking.ipv6.get
com.vmware.appliance.version1.networking.ipv6.list
com.vmware.appliance.version1.networking.ipv6.set
com.vmware.appliance.version1.networking.proxy.delete
com.vmware.appliance.version1.networking.proxy.get
com.vmware.appliance.version1.networking.proxy.set
com.vmware.appliance.version1.networking.routes.add
com.vmware.appliance.version1.networking.routes.delete
com.vmware.appliance.version1.networking.routes.list
com.vmware.appliance.version1.ntp.get
com.vmware.appliance.version1.ntp.server.add
com.vmware.appliance.version1.ntp.server.delete
com.vmware.appliance.version1.ntp.server.set
com.vmware.appliance.version1.resources.cpu.stats.get
com.vmware.appliance.version1.resources.load.health.get
com.vmware.appliance.version1.resources.load.stats.get
com.vmware.appliance.version1.resources.mem.health.get
com.vmware.appliance.version1.resources.mem.stats.get
com.vmware.appliance.version1.resources.net.stats.get
com.vmware.appliance.version1.resources.net.stats.list
com.vmware.appliance.version1.resources.processes.stats.list
com.vmware.appliance.version1.resources.storage.health.get
com.vmware.appliance.version1.resources.storage.stats.list
com.vmware.appliance.version1.resources.swap.health.get
com.vmware.appliance.version1.resources.swap.stats.get
com.vmware.appliance.version1.resources.system.health.get
com.vmware.appliance.version1.resources.system.stats.get
com.vmware.appliance.version1.resources.system.time.get
com.vmware.appliance.version1.services.list
com.vmware.appliance.version1.services.restart
com.vmware.appliance.version1.services.status.get
com.vmware.appliance.version1.services.stop
com.vmware.appliance.version1.system.version.get
com.vmware.appliance.version1.timesync.get
com.vmware.appliance.version1.timesync.set
 
Command> help pi list
Available plugin API calls:
com.vmware.clear
com.vmware.dcli
com.vmware.nslookup
com.vmware.ntpq
com.vmware.pgrep
com.vmware.pgtop
com.vmware.ping
com.vmware.ping6
com.vmware.portaccess
com.vmware.ps
com.vmware.rvc
com.vmware.service-control
com.vmware.shell
com.vmware.showlog
com.vmware.shutdown
com.vmware.software-packages
com.vmware.support-bundle
com.vmware.top
com.vmware.tracepath
com.vmware.tracepath6
com.vmware.vimtop

Step 2. シェル切替え有効化、及びシェル切替え

本題に戻り、シェルを有効化します。

シェル有効化方法はとても簡単で、shell.set --enabled True を実行するだけです。

シェルを有効化してから shell コマンドを実行すると Command> プロンプトから # プロンプトに切替わります。

シェル有効化、及び切替え
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
Command> shell.set --enabled True
 
Command> shell
    ---------- !!!! WARNING WARNING WARNING !!!! ----------
 
Your use of "pi shell" has been logged!
 
The "pi shell" is intended for advanced troubleshooting operations and while
supported in this release, is a deprecated interface, and may be removed in a
future version of the product.  For alternative commands, exit the "pi shell"
and run the "help" command.
 
The "pi shell" command launches a root bash shell.  Commands within the shell
are not audited, and improper use of this command can severely harm the
system.
 
Help us improve the product!  If your scenario requires "pi shell," please
submit a Service Request, or post your scenario to the
communities.vmware.com/community/vmtn/server/vcenter/cloudvm forum.
 
#

有効化せずに切替えた場合

ちなみに、シェル切替えを有効化せずにシェルに切替えた場合は、以下のようなエラーで失敗します。

Command> shell

Shell is disabled.

終わりに

後は、ls でディレクトリ構造を確認してみたり、dfcatmore などのコマンドを使ってパーティション構成を確認してみたりファイルを中身をのぞいてみたりしてみてください。

ちなみに、vCSA 6.5 では shell.set --enabled True のように有効化するコマンドを実行しなくてもよくなりましたので、ご参考までに。

以上、vCenter Server Appliance 6.0 シェル切替え有効化 でした。