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 コマンドプロンプトRaw Code(S)Raw Code(T)
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 リスト確認Raw Code(S)Raw Code(T)
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> プロンプトから # プロンプトに切替わります。

シェル有効化、及び切替えRaw Code(S)Raw Code(T)
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.

localhost:~ #

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

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

Command> shell

Shell is disabled.

終わりに

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

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

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