Using the command-line interface

To manage Virtuozzo Hybrid Infrastructure from console and automate such management tasks, you can use the vinfra command-line tool, which is installed automatically with the product.

To get a list of all the supported commands and their descriptions, run vinfra help. For help on a specific command, either run vinfra help <command> or vinfra <command> --help.

Note that the following operations should not be done from the command line:

  • Setting custom paths for Virtuozzo Hybrid Infrastructure services, in particular:
    • Creating S3 clusters only in /mnt/vstorage/vols/s3
    • Creating iSCSI targets only in /mnt/vstorage/vols/iscsi
  • Mounting clusters or change cluster mount options
  • Configuring firewall with firewall-cmd
  • Renaming network connections
  • Managing metadata and storage services
  • Managing partitions, LVMs, or software RAID
  • Modifying files in /mnt/vstorage/vols and /mnt/vstorage/webcp/backup directories
  • Setting encoding or replication of cluster root

Providing credentials to vinfra

The vinfra tool requires the following information:

  • IP address or hostname of the management node (set to backend-api.svc.vstoragedomain by default)
  • User name (admin by default)
  • Password (created during installation of Virtuozzo Hybrid Infrastructure)
  • Domain name to authenticate with (Default by default)
  • Project ID to authenticate with (admin by default)

This information can be supplied by using the following command-line parameters with each command:

  • --vinfra-portal <portal>
  • --vinfra-username <username>
  • --vinfra-password <password>
  • --vinfra-domain <domain>
  • --vinfra-project <project>

Alternatively, you can supply custom credentials by setting the following environment variables (for example, in your ~/.bash_profile): VINFRA_PORTAL, VINFRA_USERNAME, VINFRA_PASSWORD, VINFRA_DOMAIN, and VINFRA_PROJECT. In this case, you will be able to run the CLI tool without the aforementioned command-line parameters.

As you typically run vinfra from the management node as admin, the only variable you usually need to set is the password. For example:

# export VINFRA_PASSWORD=12345

If you installed vinfra on a remote machine and/or run it as a different system administartor, you will need to set VINFRA_PORTAL and/or VINFRA_USERNAME on that machine in addition to VINFRA_PASSWORD.

In addition, if you want to authenticate within a different project or/and domain, you will need to set two more environment variables: VINFRA_PROJECT and/or VINFRA_DOMAIN.

Managing vinfra tasks

The vinfra tool executes some commands immediately, while for other commands (that may take some time to complete) it creates system tasks that are queued. Examples of actions performed via tasks are creating the storage or compute cluster and adding nodes to it.

To keep track of tasks performed by vinfra, use the vinfra task list and vinfra task show commands. For example:

# vinfra task list
+----------------+---------+-----------------------------------------+
| task_id        | state   | name                                    |
+----------------+---------+-----------------------------------------+
| 8fc27e7a-<...> | success | backend.tasks.cluster.CreateNewCluster  |
| e61377db-<...> | success | backend.tasks.disks.ApplyDiskRoleTask   |
| a005b748-<...> | success | backend.tasks.node.AddNodeInClusterTask |
+----------------+---------+-----------------------------------------+
# vinfra task show 8fc27e7a-ba73-471d-9134-e351e1137cf4
+---------+----------------------------------------+
| Field   | Value                                  |
+---------+----------------------------------------+
| args    | - stor1                                |
|         | - 7ffa9540-5a20-41d1-b203-e3f349d62565 |
|         | - null                                 |
|         | - null                                 |
| kwargs  | {}                                     |
| name    | backend.tasks.cluster.CreateNewCluster |
| result  | cluster_id: 1                          |
| state   | success                                |
| task_id | 8fc27e7a-ba73-471d-9134-e351e1137cf4   |
+---------+----------------------------------------+