Juan Manuel Rey bio photo

Juan Manuel Rey

Unix Geek. Sysadmin by heart turned cloud architect. Working for Microsoft.

Twitter Google+ LinkedIn Github Stackoverflow

VIO 2.0 comes with several command line utilities, in a previous post I showed the usage of viopatch to perform patching of an existing VIO installation. In this post I will discuss viocli which is the main command line utility that allow, via several subcommands, to perform many maintenance and administration operations from VIO Manager. We will cover the most commonly used and useful viocli subcommands.

viocli must always be run using sudo. The available subcommands can be retrieved with a simple viocli -h

viouser@vio-manager:~$ viocli -h
usage: viocli [-h]
              {backup,recover,restore,show,upgrade,rollback,deployment,services,hyperic,dbverify,ds-migrate-prep}
              ...

CLI for VIO

positional arguments:
  {backup,recover,restore,show,upgrade,rollback,deployment,services,hyperic,dbverify,ds-migrate-prep}
                        sub-command help
    backup              backup OpenStack database or management server data
    recover             recover broken/missing VIO deployment nodes
    restore             restore OpenStack database or management server data
    show                show information about the deployment
    upgrade             upgrade the deployment to a new version
    rollback            rollback the upgrade to the original deployment
    deployment          run deployment related actions
    services            start or stop VIO services
    hyperic             manage hyperic agents in VIO deployment
    dbverify            verifies the openstack database for known issues
    ds-migrate-prep     prepare a datastore for maintenance

optional arguments:
  -h, --help            show this help message and exit

To get the help for any of the subcommands run viocli <command> -h. The configuration for viocli can be found in /opt/vmware/vio/etc/viocli.conf

viouser@vio-manager:/opt/vmware/vio/etc$ cat viocli.conf
[DEFAULT]
deployment=VIO

[OMS_CONNECTION]
protocol=https
#hostname=localhost.localdom
cert_path=/opt/vmware/vio/etc/oms.crt
port=8443
viouser@vio-manager:/opt/vmware/vio/etc$

viocli deployment

viocli deployment can be used to manage an existing VIO deployment. It allows to start, stop, pause, resume or configure a deployment. Can also be used to create a certificate signing request, update the certificate or get the logs for the deployment.

Usage

viouser@vio-manager:~$ sudo viocli deployment -h
usage: viocli deployment [-h] [-v] [-d [NAME]] [-p]
                         {start,stop,pause,resume,configure,cert-req-create,cert-update,getlogs,default}
                         ...

positional arguments:
  {start,stop,pause,resume,configure,cert-req-create,cert-update,getlogs,default}
    start               start the deployment
    stop                stop the deployment
    pause               pause the deployment
    resume              resume the deployment
    configure           reconfigure the entire deployment
    cert-req-create     create a certificate signing request for signing by a
                        CA
    cert-update         updates VIO with provided certificate.
    getlogs             get logs for the deployment
    default             get/set the default deployment

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose mode
  -d [NAME], --deployment [NAME]
                        deployment to use (default: VIO)
  -p, --progress        show progress of current operation
viouser@vio-manager:~$

Start a deployment

viouser@vio-manager:~$ sudo viocli deployment start -d VIO-20

Stop a deployment

viouser@vio-manager:~$ sudo viocli deployment stop -d VIO-20

Get the logs

viouser@vio-manager:~$ sudo viocli deployment getlogs -d VIO-20

viocli show

Used to retrieve the list of nodes of a VIO deployment and get information about the deployment’s inventory file.

viouser@vio-manager:~$ sudo viocli show -d VIO-20
hostname         role           vm name                ip
---------------  -------------  ---------------------  ---------------
compute01        ComputeDriver  VIO-20-ComputeDriver-0  192.168.110.179
controller01     Controller     VIO-20-Controller-0     192.168.110.173
database01       DB             VIO-20-DB-0             192.168.110.174
loadbalancer01   LoadBalancer   VIO-20-LoadBalancer-0   192.168.110.177
memorycache01    Memcache       VIO-20-Memcache-0       192.168.110.176
messagequeue01   RabbitMQ       VIO-20-RabbitMQ-0       192.168.110.178
mongodb01        MongoDB        VIO-20-MongoDB-0        192.168.110.180
objectstorage01  ObjectStorage  VIO-20-ObjectStorage-0  192.168.110.175
viouser@vio-manager:~$

viocli services

viocli services can be used to start and stop the services within a VIO deployment. The main differerence with viocli deployment is that services will only start/stop the services running on the virtual machines and deployment subcommand will start/stop the whole OpenStack cluster, including the virtual machines.

viouser@vio-manager:~$ sudo viocli services start

viocli upgrade

The recommended to perform a major version upgrade in VIO is still the vSphere Web Client, as I shown in VIO upgrade post, however using viocli upgrade the upgrade can also be performed from VIO Manager shell.

Usage

viouser@vio-manager:~$ sudo viocli upgrade -h
usage: viocli upgrade [-h] [-v] [-d [NAME]] [-p] [-n [NEW_DEPLOYMENT_NAME]]
                      [--public-vip [PUBLIC_VIP]]
                      [--internal-vip [INTERNAL_VIP]] [-f]

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose mode
  -d [NAME], --deployment [NAME]
                        deployment to use (default: VIO)
  -p, --progress        show progress of current operation
  -n [NEW_DEPLOYMENT_NAME], --new-deployment [NEW_DEPLOYMENT_NAME]
                        new deployment name
  --public-vip [PUBLIC_VIP]
                        temporary public VIP address to be used in a new
                        deployment
  --internal-vip [INTERNAL_VIP]
                        temporary private VIP address to be used in a new
                        deployment
  -f, --force           do not ask for confirmation (default: false)
viouser@vio-manager:~$

Perform an upgrade

viouser@vio-manager:~$ sudo viocli upgrade -d VIO-10 -p -n VIO-20 --public-vip 192.168.130.120 --internal-vip 172.16.20.120

viocli rollback

This viocli subcommand will allow to rollback a VIO upgrade in case of any failure during the upgrade operation.

viouser@vio-manager:~$ sudo viocli rollback --deployment VIO-10 --progress --force

viocli backup

This command allows to perform a backup of the VIO Manager server of the OpenStack database. Requires an NFS volume available, there is no need to be mounted on the manager since viocli will take care of that.

Management Server backup

viouser@vio-manager:~$ sudo viocli backup mgmt_server 192.168.1.99:/vio_backup

OpenStack database backup

viouser@vio-manager:~$ sudo viocli backup openstack_db -d VIO 192.168.1.99:/vio_backup

viocli restore

viocli restore can be used to restore a backup of the VIO management server or the OpenStack database.

Management Server restore

viouser@vio-manager:~$ sudo viocli restore mgmt_server -d VIO vio_os_db_20160202205408 192.168.1.99:/vio_backup

OpenStack database restore

viouser@vio-manager:~$ sudo viocli restore openstack_db -d VIO vio_os_db_20160202205408 192.168.1.99:/vio_backup

viocli recover

The recover subcommand can be used to recover a node or a group of nodes after a critical failure. Since most of the nodes are stateless there is no need of a database backup to recover them, for database nodes you must provide the NFS path and the name of the backup file. When you recover a VIO node, it returns to the state of a newly deployed node.

Recovery operations can be executed by node with -n or by role with -r. Get the list of nodes from a deployment with viocli show. Recovery by role will perform a recover of all the nodes of that role while recovery by role allows to specify a single node to be recover.

Recover by node

The following example shows the recovery operation for the controller01 node.

viouser@vio-manager:~$ viocli recover -n controller01

Recover by role

The following example show the recover of the OpenStack DB role, that will perform the recovery of all DB nodes. As it can be seen the name of the backup and the NFS path must be provided.

viouser@vio-manager:~$ viocli recover -r DB -dn vio_os_db_20160202205408 -nfs 192.168.1.99:/vio_backup

viocli dbverify

The dbverify command allows and administrator to verify an OpenStack database before doing an upgrade. It can find knows issued like duplicated or missing keys, that may casue problems during the upgrade operation.

viouser@vio-manager:~$ sudo viocli dbverify -d VIO-20
Running data validation against deployment: VIO-20 ...
Data validation completed, results are as follows:
==============================================
* Checking for duplicate default security groups
No duplicates found

viouser@vio-manager:~$

viocli hyperic

viocli hyperic can be used to manage the Hyperic agent. Tasks like installation, configuration, and start/stop can be performed.

viouser@vio-manager:~$ sudo viocli hyperic -h
usage: viocli hyperic [-h] [-v] [-d [NAME]]
                      {install,config,uninstall,stop,start} ...

positional arguments:
  {install,config,uninstall,stop,start}
    install             install Hyperic agent
    config              config Hyperic agent
    uninstall           uninstall Hyperic agent
    stop                stop Hyperic agent
    start               start Hyperic agent

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose mode
  -d [NAME], --deployment [NAME]
                        deployment to use (default: VIO)
viouser@vio-manager:~$

To install the agent use the following syntax.

viouser@vio-manager:~$ sudo viocli hyperic install -d VIO-20

And we are done. Comments are welcome.

– Juanma