You can automate the process of platform installation with Ansible configuration management system. Ansible uses scripts (playbooks) – yaml-files describing a set of actions to be executed. Read more about Ansible in the official documentation.

Using Ansible scripts allows you to perform the following automatically:

  • install the platform;
  • create the first cluster;
  • create a physical network and pool of IP addresses for virtual machines (VMs);
  • connect an SSL certificate;
  • configure platform backups.

If VMmanager was installed on the server, the Ansible script will delete the platform before installing it.

Preparation


  1. Check the platform server for compliance with system requirements. Read more in Server requirements.
  2. Install Ansible on the PC from which the platform installation will run. Refer to the official documentation for the installation procedure.

    Installation playbooks have been tested with Ansible versions 2.9 and 2.12.

  3. On the PC with Ansible:
    1. Download the installation playbooks:

      wget https://download.ispsystem.com/extras/ansible/vmmanager6_common.tar.gz
      CODE
    2. Create an SSH key and copy it to the platform server. Read more in SSH protocol.

Platform installation


On the PC with Ansible:

  1. Create a directory for installation playbooks:

    mkdir vm6_ansible
    CODE
  2. Unpack the archive with the playbooks into the directory:

    tar xzf vmmanager6_common.tar.gz -C vm6_ansible/
    CODE
  3. Enter the directory you created:

    cd vm6_ansible
    CODE
  4. Specify the installation parameters in the vars section of the vmmanager6.yml file:

    Example of settings

      vars:
        vmi_first_username: "admin@example.com"
        vmi_first_password: "secret"
        vmmanager6_license_token: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        vmi_stage: "beta"
        vmi_domain: "{{ ansible_ssh_host }}"
        vmi_network: "192.168.0.0/24"
        vmi_network_gateway: "192.168.0.1"
        vmi_network_note: "Network for my VMs"
        vmi_pool_name: "Pool 1"
        vmi_pool_note: "Pool for my VMs"
        vmi_cluster_name: "Cluster 1"
        vmi_cluster_note: "Cluster for my VMs"
        vmi_time_zone: "UTC" 
        vmi_domain_template: ".example.com"
        vmi_node_check_ip: "1.1.1.1"
        vmi_certificate: "-----BEGIN CERTIFICATE-----\nMIIDkTC..............AlS\nldgeq7s=\n-----END CERTIFICATE-----\n"
        vmi_certificate_key: "-----BEGIN PRIVATE KEY-----\nMIIEvg...............XO6HBlXDeTd\n-----END PRIVATE KEY-----\n"
        vmi_certificate_ca: ""
        vmi_backup_ip: "10.3.0.4"
        vmi_backup_user: "root"
        vmi_backup_password: "secret123"
        vmi_backup_path: "/backup"
    
    CODE
    • installation data:
      • vmi_first_username — email of the first platform's administrator;
      • vmi_first_password — password of the first platform's administrator;
      • vmmanager6_license_token — VMmanager license token;
      • vmi_stage — platform version. Use the beta value;
    • cluster configuration:
      • vmi_domain — IP address or domain name of the platform server.. You can use the ansible_ssh_host variable;
      • vmi_network — physical network for the VM in the network address/prefix format;
      • vmi_network_gateway — physical network gateway;
      • vmi_network_note — note to the physical network;
      • vmi_pool_name — name of IP pool for VMs;
      • vmi_pool_note — note to the pool;
      • vmi_cluster_name — cluster name;
      • vmi_cluster_note — note to the cluster;
      • vmi_time_zone — default time zone for cluster nodes and VMs;
      • vmi_domain_template — domain name template for VMs. For example, if you specify ".example.com", the VMs will be created with domain names in the format of <VM_name>.example.com;
      • vmi_node_check_ip — IP address for network configuration check. If the connection to this address is lost after changing the settings, VMmanager will return the previous settings;
    • settings of the SSL certificate:
      • vmi_certificate — open key of the SSL certificate;
      • vmi_certificate_key — private key of the SSL certificate;
      • vmi_certificate_ca — root SSL certificate;
    • platform backup settings:
      • vmi_backup_ip — IP address of the external storage for platform backup;
      • vmi_backup_user — username for connection to the external storage;
      • vmi_backup_password — user password for connection to the external storage;
      • vmi_backup_path — path to backups on the external storage. Specify an existing directory for which the user has write permissions.
  5. If you do not plan to connect an SSL certificate, delete or comment the line in vmmanager6.yml file:

        - include_tasks: cert.yml
    CODE
  6. If you do not plan to set up platform backups, delete or comment the line in the vmmanager6.yml file:

        - include_tasks: backup.yml
    CODE
  7. Run the installation:

    ansible-playbook -i <IP>, -u root vmmanager6.yml
    CODE

    <IP> — IP address of the platform server. A comma after the address is mandatory.

  8. Wait until the installation is complete.

After installation, VMmanager will be accessible by IP address or domain name of your server.