Phase 1: Prepare Infrastructure

Manual Installation Process

  1. Identify the install mode (manual or appliance). See Component Modes and Roles and Installation Approach for additional context.
  2. Review the Hardware Requirements for each CloudCenter component (see the relevant section in this page) and the OS compatibility for each installer.
  3. Launch each element (VMs, LBs, and so forth) required for your deployment using a compatible base OS image – refer to your respective cloud documentation to launch an element in that cloud. For example, a Non-HA deployment requires the following components at a minimum:
    1. 1 CCM
    2. 1 CCO
    3. 1 AMQP
    4. 1 Monitor
  4. Review the nuances for each cloud (see each cloud nuance later in this section).

Hardware Requirements

The CloudCenter platform has specific hardware requirements based on the number of VM instances that you manage for your enterprise.

  •  CCM, CCO, and AMQP

    CCM, CCO, and AMQP Hardware Requirements

    Total VM CountSingle Component Hardware Requirements

    < 500

    2 CPU, 4GB memory, 50GB storage

    501 to 2000

    2 CPU, 8GB memory, 100GB storage

    2001 to 10000

    4 CPU, 16GB memory, 200GB storage

    > 10000

    4 CPU, 32GB memory, 500GB storage

  •  Other Images

    Other Images' Hardware Requirements

    The hardware specifications for the additional components (if required).

    Additional ComponentsHardware Requirement (may vary for each cloud)

     Cloud Health Monitor (optional)

    2 CPU, 4GB memory, 50GB storage

     Bundle Store (optional)

    2 CPU, 4GB memory, 50GB storage

    Package Store (optional)

    2 CPU, 4GB memory, 100GB storage

Increase Disk Size

To increase the size of the partition in the VM, refer to the documentation for the corresponding cloud.

Typically, the root disk is controlled by the cloud image and is never resized by CloudCenter. Most clouds do not have an automated resize option. The root disk of the application VM is always the same size as the image that is used for deployment. See Manage Instance Types for additional context.

Launch Infrastructure

It is now time to launch the infrastructure for each identified mode for each component!

Launch and identify infrastructure elements that are to be used for various components based on  . Take the following cloud nuances into consideration when setting up infrastructure.

For AWS or OpenStack cloud environments, you can skip setting up security groups as you typically perform this task in the next phase (Phase 2: Configure Network Rules).

Instances used to launch CloudCenter component VMs should minimally be 2 CPU, 4GB RAM, 50GB storage depending on the number of VMs to be managed. See the Hardware Requirements section (below) for additional details.

During the CloudCenter installation process there are various configuration settings that require a server name or IP address. Use the DNS name to identify the servers to ensure that you can better manage IP addresses.

High Availability Nuances

The HA setup is not supported with CentOS6 and RHEL6 images for all CloudCenter releases.

See HA Best Practices for additional context.

Alibaba Nuances

  •  What Instance Types are available for each Alibaba region??

    The instances supported for each region differs from region to region. The Alibaba SDK and the Alibaba Web Interface differs in the instances listed for each zone. You can add new instances using the CCM UI – see Manage Instance Types for additional context. 

  •  What Storage Types are Supported?

    The CloudCenter platform supports two storage types for Alibaba clouds:

    • SSD Cloud Disks
    • Ultra Cloud Disks
  •  Can I SSH into Alibaba Cloud Environments?

    As SSH key access is not allowed into Alibaba cloud environments, you must provide the instance password as follows:

    • Linux: Provide the root password.
    • Windows: Provide the administrative password.

    See Deployment Environment Defaults Alibaba - Cloud and Network Settings for additional context.

Amazon Nuances

  • For CCO, CCO_PRIMARY, CCO_SECONDARY, and CCO_TERTIARY, launch the CCO VMs using IAM Roles if you intend to use IAM role-based accounts for your provisioning.
  • Launch VMs for the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE (see Component Modes and Roles) using a specific IAM Role to enable Virtual IP (VIP) or Elastic IP (EIP) for the Master-Slave setup.

    •  Choose Virtual IP or Elastic IP

      Guidelines to use VIP or EIP for the IAM Role:

      • Use VIP:
        • If you launch both the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE from the same VPC.
        • If using VIP, choose an unused IP from one of the subnets within the VPC
      • Use EIP:
        • If you launch both the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE from different VPCs.
        • If using EIP, allocate a new IP from the AWS cloud console with scope as VPC.
        • See VPC peering for additional context.
    •  Create an IAM Role Specific to a VIP or EIP Policy
      PolicyIAM Role
      VIP
      {    
          "Version": "2012-10-17",
              "Statement": [{        
              "Action": [            
                  "ec2:AssignPrivateIpAddresses",             
                  "ec2:UnassignPrivateIpAddresses",             
                  "ec2:DescribeInstances",             
                  "ec2:DescribeNetworkInterfaces"
              ],
                      "Effect": "Allow",
                      "Resource": "*"    
          }]
      }
      EIP
      {    
          "Version": "2012-10-17",
              "Statement": [        {            
              "Action": [                
                  "ec2:DescribeInstances",                 
                  "ec2:DescribeNetworkInterfaces",                 
                  "ec2:AssociateAddress",                 
                  "ec2:DisassociateAddress",                 
                  "ec2:DescribeAddresses" 
              ],
                          "Effect": "Allow",
                          "Resource": "*"        
          }    ]
      }
  •  PostgreSQL as an RDS Service

    To setup PostgreSQL as an RDS service in the SA or HA modes, see Configuring HA for PostgreSQL Database on AWS.

Azure Nuances

  •  Azure Classic
    1. Launch a CentOS VM in Azure Classic mode.
    2. Add the required endpoints to configure your CCO. See Phase 2: Configure Network Rules for additional context.
    3. Use the core installer package to setup CCO. See Phase 4: Install Components > CCO (Required) for additional context.
    4. Register the CCO with the metadata server.

      curl-XPOST-d"info={\"userData\":\"Azure,<CCM_IP>\",\"image\":\"ccm\",\"machineType\":\"large\",\"osName\":\"Linux\",\"tenant\":\"admin\"}"-k
       https://mds.cliqrtech.com/0.1/meta-data/Azure/<CCO_HOST_NAME>
    5. Verify the registration by issuing the following command – it should return the data from the step above:

      curl http://mds.cliqrtech.com/0.1/meta-data/Azure/>
    6. See Configure Cloud(s) > Configure an Azure Classic Cloud for additional context.
  •  Azure Pack
    1. Launch a CentOS VM in Azure Pack mode.
    2. Add the required endpoints to configure your CCO. See Phase 2: Configure Network Rules for additional context.
    3. Use the core installer package to setup CCO. See Phase 4: Install Components > CCO (Required) for additional context.
    4. Register the CCO with the metadata server.

      curl-XPOST-d"info={\"userData\":\"AzurePack,<CCM_IP>\",\"image\":\"ccm\",\"machineType\":\"large\",\"osName\":\"Linux\",\"tenant\":\"admin\"}"-k
       https://mds.cliqrtech.com/0.1/meta-data/AzurePack/<CCO_HOST_NAME>
    5. Verify the registration by issuing the following command – it should return the data from the step above:

      curl http://mds.cliqrtech.com/0.1/meta-data/AzurePack/>
    6. See Configure Cloud(s) > Configure an Azure Pack Cloud for additional context.
  •  Azure RM
    1. Launch a CentOS VM in Azure RM mode.
    2. Add the required endpoints to configure your CCO. See Phase 2: Configure Network Rules for additional context.
    3. See Configure Cloud(s) > Configure an Azure Resource Manager Cloud for additional context.

Cisco UCSD Nuances

  •  Cisco UCSD Release Compatibility

    CloudCenter 4.6 supports the following UCSD releases:

    • Cisco UCS Director, Release 5.1

    • Cisco UCS Director, Release 5.2

    • Cisco UCS Director, Release 5.3

  •  Configuration Requirements
    • If you intend to integrate UCSD in your enterprise, the CloudCenter platform requires access to the UCSD environment to provide end-to-end deployment.
    • One CloudCenter platform supports one UCSD instance.
    • Each CloudCenter UCSD implementation requires an associated physical image entry in the CloudCenter platform (this is a dummy placeholder – even if a logical Image is not used).
    • See Configure Cloud(s) > Configure a Cisco UCSD Cloud for additional context.

Google Nuances

  •  Before you launch the CCO Instance...
    1. Download and store the GCE .p12 file in a keys folder.

      1. Navigate to the /usr/local/osmosix/ folder.

      2. Create a folder called /gce

      3. In the /usr/local/osmosix/gce folder, create a folder calls keys.

      4. Download the .p12 file to the /usr/local/osmosix/gce/keys folder.
    2. Add the following metadata key-value pair before you run the Appliance Installation (or the installer – see Phase 4: Install Components > CCO (Required) section):
      1. Access the Google Cloud Platform console for the CloudCenter VM instance.
      2. Click Management, disk, networking, SSH keys (below the Firewall section).
      3. In the Management tab, scroll to the Metadata section and add the following key-value pair in this section:
        • key = sourceImageKey

        • value = The OS name of the VM where the CCO is installed — the value does not matter, but it cannot be empty

    The User Network that was entered when adding the cloud in the CCM UI is the only network that is used when you Configure Cloud(s).

    Even if you create another network or subnetwork during the cloud configuration stage, this new network will not be available to launch VMs.

    See Configure Cloud(s) > Configure a Google Cloud for additional context.

OpenStack Nuances

Launch VMs for the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE (see Component Modes and Roles) with a Virtual IP (VIP) for the Master-Slave setup.

  •  Access to Openstack Neutron client installed on VM with access to OpenStack server
    1. Install the OpenStack Command Line Client.
    2. Launch the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE VMs
  •  Update Ports
    1. Identify an unused IP for the VIP master-slave setup.
    2. Create a new port with this IP using the following command;

      `neutron port-create --fixed-ip ip_address=<VIP> <network-name>`
    3. Get the Port IDs of the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE VMs:

      `neutron port-list`
    4. Note the id from the list corresponding to the MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE IP in fixed_ips.
    5. Update ports associated to MGMTPOSTGRES_MASTER and MGMTPOSTGRES_SLAVE with the VIP by running the following command for each Port ID that you noted in the previous step.

      `neutron port-update <port-id> --allowed-address-pairs type=dict list=true ip_address=<VIP>`
  •  Setup Hostname

    For all launched VMs, update the hostname to the desired hostname. Select a hostname that matches the role. For example, CCM_SA_PRIMARY.mydomain.com.

    The hostname cannot contain underscore for the database servers as it causes the PCS authentication to fail.

    Changing the hostnames after you install and configure the VMs may cause unknown issues.

  •  Setup hostname resolution

    Once you update the hostname,  ensure that the VM hostname is resolvable by running the following command:

    hostname -i

    If the VM name is not resolvable, edit the file /etc/hosts and add your VM’s hostname. For example: <hostname> 127.0.0.1

  •  Network routing loopback

    Network Routing Loopback refers to CCM(s) that are are behind the NAT for a given deployment and have a restriction that servers from an internal network cannot use External IPs to access the CCM.

    In this scenario, you must add a line to the registered CCO and AMQP server's /etc/hosts file to provide the internal private IP of the CCM.

    For example:

    If the CCM DNS name is ccm.example.com and it’s behind a NAT, and the internal private IP address is 12.16.0.5 and its external public IP address is 54.1.2.5, then enter the following line in the local /etc/hosts file

    12.16.0.5 ccm.example.com

    The hostname used above (ccm.example.com) must match what is configured as Public DNS while configuring CCM in Phase 4.

SoftLayer Nuances

  •  Before You Launch the CCO Instance...

    You MUST launch the CCO in the same cloud region as the SoftLayer device – you cannot select different regions for the CCO and this device.

    See Configure Cloud(s) > Configure a SoftLayer Cloud for additional context.

VMware Nuances

  •  vCenter

    If vCenter users do not have full administrator rights, verify that each user (using CloudCenter) has the following permissions at a minimum:

    vCenter ObjectRequired PermissionReason
    DatacenterNetwork protocol profile configurationFor NSX security profile configuration
    NetworkAssign NetworkIf the default network in a template/snapshot must be changed
    Datastore

    Allocate space

    For persistent disk operation


    Browse datastore
    Low level file operations
    Remove file
    FolderCreate folderFor user folder creation
    Resource

    Apply recommendation

    For datastore cluster support
    Assign VM to resource poolFor resource pool selection
    Tasks

    Create task

    For VM operation

    Update task
    Virtual MachineAll permissions

    See Configure Cloud(s) > Configure a VMware Cloud for additional context.

CloudCenter Descriptor JSON File

After you set up the infrastructure for all the CloudCenter Architecture, create a CloudCenter Descriptor JSON file that lists all the CloudCenter components with their Component Modes and the IP address that correspond to the infrastructure elements for each mode and role. This descriptor file is used in Phase 3: Perform Network Compliance Check. This section provides sample descriptor files based on common combination of component modes.

Save the JSON file locally.

The overall file structure depends on the following factors:

  • Modes for each component
  • Number of cloud regions
  • Use of conditional/optional components, repos, and so forth.
  • The unique region names used in this file. Be aware that these names do not need to match up with any cloud or datacenter names. These strings are only used to perform network compliance checks and report results

If you have set up a local Bundle Store, Package Store, or Dedicated Docker Registery, replace the repo values with your server values (along with any other changes specific to your setup).

If you have configured DNS names, use the DNS names instead of IP addresses.

  •  Descriptor File: Sample 1
    {
        "CloudCenterComponents": {
            "CCM": {
                "CCM_IP": "CCM.Company1.com",
                "mode": "NON-HA "
            },
            "CloudRegions": [{
                "components": {
                    "AMQP": {
                        "AMQP_IP": "AMQP.Company1.com",
                        "mode": "NON-HA"
                    },
                    "CCO": {
                        "CCO_IP": "CCO.Company1.com",
                        "mode": "NON-HA"
                    }
                },
                "name": "AWSEast"
            }],
            "REPOS": {
                "BUNDLE_STORE": "http://cdn.cliqr.com",
                "DOCKER_REGISTRY": "http://repo.cliqrtech.com:5000",
                "PACKAGE_STORE": "http://repo.cliqrtech.com"
            }
        }
    }
  •  Descriptor File: Sample 2
    {
        "CloudCenterComponents": {
            "CCM": {
                "CCM_SA_IP": "CCM.Company2.com",
                "MGMTPOSTGRES_IP": "MGMTPOSTGRES_SA.Company2.com",
                "mode": "STANDALONE"
            },
            "CloudRegions": [{
                "components": {
                    "AMQP": {
                        "AMQP_IP": "AMQP.Company2.com",
                        "mode": "NON-HA"
                    },
                    "CCO": {
                        "CCO_IP": "CCO.Company2.com",
                        "mode": "NON-HA"
                    }
                },
                "name": "AWSEast"
            }],
            "REPOS": {
                "BUNDLE_STORE": "http://cdn.cliqr.com",
                "DOCKER_REGISTRY": "http://repo.cliqrtech.com:5000",
                "PACKAGE_STORE": "http://repo.cliqrtech.com"
            }
        }
    }
  •  Descriptor File: Sample 3
    {
        "CloudCenterComponents": {
            "CCM": {
                "CCM_LB_IP": "169.0.1.1",
                "CCM_SA_PRIMARY_IP": "169.0.1.2",
                "CCM_SA_SECONDARY_IP": "169.0.1.3",
                "MGMTPOSTGRES_MASTER_IP": "169.0.1.4",
                "MGMTPOSTGRES_SLAVE_IP": "169.0.1.5",
                "MGMTPOSTGRES_VIP": "169.0.1.6",
                "mode": "HA"
            },
            "CloudRegions": [{
                "components": {
                    "AMQP": {
                        "AMQP_LB_IP": "169.0.1.7",
                        "AMQP_PRIMARY_IP": "169.0.1.8",
                        "AMQP_SECONDARY_IP": "169.0.1.9",
                        "mode": "HA"
                    },
                    "CCO": {
                        "CCO_LB_IP": "169.0.1.10",
                        "CCO_PRIMARY_IP": "169.0.1.11",
                        "CCO_SECONDARY_IP": "169.0.1.12",
                        "mode": "HA"
                    },
                    "Dedicated_External_Script_Executor": {
                        "EXT_SCRIPT_EXECUTOR_IP": "169.0.1.13",
                        "mode": "NON-HA"
                    },
                    "Dedicated_Guacamole_Server": {
                        "GUAC_IP": "169.0.1.14",
                        "mode": "NON-HA"
                    }
                },
                "name": "AWSEast"
            }, {
                "components": {
                    "AMQP": {
                        "AMQP_LB_IP": "169.0.1.15",
                        "AMQP_PRIMARY_IP": "169.0.1.16",
                        "AMQP_SECONDARY_IP": "169.0.1.17",
                        "mode": "HA"
                    },
                    "CCO": {
                        "CCO_LB_IP": "169.0.1.18",
                        "CCO_PRIMARY_IP": "169.0.1.19",
                        "CCO_SECONDARY_IP": "2.2.2.2",
                        "mode": "HA"
                    },
                    "Dedicated_External_Script_Executor": {
                        "EXT_SCRIPT_EXECUTOR_IP": "169.0.1.20",
                        "mode": "NON-HA"
                    },
                    "Dedicated_Guacamole_Server": {
                        "GUAC_IP": "169.0.1.21",
                        "mode": "NON-HA"
                    }
                },
                "name": "MyOpenStack"
            }],
            "MON": {
                "MON_LB": "169.0.1.22",
                "MON_PRIMARY": "169.0.1.23",
                "MON_SECONDARY": "169.0.1.24",
                "mode": "HA"
            },
            "REPOS": {
                "BUNDLE_STORE": "http://cdn.cliqr.com",
                "DOCKER_REGISTRY": "http://repo.cliqrtech.com:5000",
                "PACKAGE_STORE": "http://repo.cliqrtech.com"
            }
        }
    }