Shells en VMware VCSA

Con la versión 6 de vSphere, el appliance virtual del servidor vCenter (VCSA) tiene 2 shell diferentes:

  • Appliance Shell
  • BASH Shell

Para acceder a la línea de comandos de VCSA tenemos varias opciones:

  • Pulsar Alt + F1 desde la consola DCUI
  • Acceder por SSH

Cuando nos conectamos por primera vez, la shell por defecto es Appliance Shell

VMware vCenter Server Appliance 6.0.0

Type: vCenter Server with an embedded Platform Services Controller

root@10.0.3.101's password:
Last login: Sat Oct 24 13:05:06 2015 from 10.0.1.1
Connected to service

    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Enable BASH access: "shell.set --enabled True"
    * Launch BASH: "shell"

Command>

Esta shell nos permite ejecutar comandos a través del API. Con help api list podemos obtener el listado de todos las opciones disponibles.

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
...

Por ejemplo, para obtener la configuración NTP del servidor vCenter podemos ejecutar el comando:

Command> com.vmware.appliance.version1.ntp.get
Config:
   Status: Up
   Servers: es.pool.ntp.org

También podemos eliminar la parte inicial del espacio de nombres y ejecutar:

Command> ntp.get
Config:
   Status: Up
   Servers: es.pool.ntp.org

Si queremos obtener ayuda para saber como ejecutar, utilizamos help api comando, por ejemplo

Command> help api ntp.server.add

Usage:
         ntp.server.add [--help/-h] --servers STR
Description:
         Add NTP servers. This command adds NTP servers to the
         configuration. If the time synchronization is NTP-based,
         then NTP daemon is restarted to reload the new NTP servers.
         Otherwise, this command just adds servers to the NTP
         configuration.
Input Arguments:
 --servers STR
         List of host names or IP addresses of NTP servers.

Y para añadir un servidor NTP ejecutamos:

Command> ntp.server.add --servers 1.europe.pool.ntp.org

Comprobamos de nuevo la configuración del servicio NTP

Command> ntp.get
Config:
   Status: Up
   Servers: es.pool.ntp.org 1.europe.pool.ntp.org

Además, permite con plugins, extender el interfaz, y acceder, por ejemplo, a comandos básicos de Linux. Para obtener el listado de comandos disponibles, ejecutamos help pi list

Command> help pi list
Available plugin API calls:
com.vmware.clear
com.vmware.cmsso-util
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.psc-restore
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

Como vemos tenemos comandos útiles cuando estamos intentando resolver algún problema como pueden ser: ping, ps, top…

El problema lo tenemos cuando queremos acceder a un directorio o editar un archivo del servidor. Con Appliance Shell no podemos realizar estas tareas. Para ello tenemos que activar y acceder al BASH shell.

Para habilitar BASH shell tenemos dos opciones:

  • Desde al Appliance Shell
  • Desde el DCUI del servidor vCenter
  • Desde el interfaz VAMI (nuevo en vSphere 6 U1)

Desde el Appliance Shell, unicamente tenemos que realizar los pasos que nos indica al iniciar la sesión:

Connected to service

    * List APIs: "help api list"
    * List Plugins: "help pi list"
    * Enable BASH access: "shell.set --enabled True"
    * Launch BASH: "shell"

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
https://communities.vmware.com/community/vmtn/vcenter/vc forum and add
"appliance" tag.

vcenter01:~ #

Desde la consola DCUI, tenemos que acceder a Throubleshooting Mode Options y habilitar Enable BASH Shell

shells-en-vmware-vcsa-01

Y una vez habilitado desde el Appliance Shell, ejecutamos shell o pi shell

Una vez en la BASH Shell, podemos acceder a todos los comandos típicos de Linux, en este caso SUSE.

A partir de la versión 6 U1, podemos habilitar también la shell desde la web de configuración del nuevo interfaz VAMI a la que se acceder por el puerto 5480.

shells-en-vmware-vcsa-03

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.