Installing Red Hat CloudForms on Microsoft Azure
How to install and configure Red Hat CloudForms on a Microsoft Azure cloud environment
Abstract
1. Installing Red Hat CloudForms
Installing Red Hat CloudForms consists of the following steps:
- Downloading the appliance for your environment as a virtual machine image template.
- Setting up a virtual machine based on the appliance.
- Configuring the CloudForms appliance.
After you have completed all the procedures in this guide, you will have a working environment on which additional customizations and configurations can be performed.
1.1. Obtaining the Red Hat CloudForms Virtual Appliance
- Go to access.redhat.com and log in to the Red Hat Customer Portal using your customer account details.
- Click Downloads in the menu bar.
- Click A-Z to sort the product downloads alphabetically.
- Click Red Hat CloudForms to access the product download page.
- Select the version of the product you want to download from the Version list.
- From the list of installers and images, click the Download Now link for CFME Azure Virtual Appliance.
1.2. Uploading and Provisioning the Red Hat CloudForms Virtual Appliance in Microsoft Azure
You can upload and provision the appliance in an Azure environment using the following two methods:
- Using the Azure PowerShell script
- Using the Azure Command-Line Interface (Azure CLI)
To upload the Red Hat CloudForms appliance file in Microsoft Azure, ensure the following requirements are met:
- Approximately 2 GB of space for each VHD image; 44+ GB of space, 12 GB RAM, and 4 VCPUs for the Red Hat CloudForms appliance.
- Microsoft Azure Account.
- Administrator access to the Azure portal.
- Depending on your infrastructure, allow time for the upload.
Azure requires that the uploaded Virtual Hard Disk (VHD) files are in a fixed format. The Azure PowerShell script and Azure CLI do not automatically convert a dynamic .vhd file to fixed during upload. For CloudForms 4.2.4 and newer, the virtual appliance image files (cfme-azure-5.7.4.2-1.x86_64.vhd and newer) are available for download in a fixed format and therefore can be uploaded and provisioned in an Azure environment without requiring any additional manipulations with the image.
1.2.1. Using the Azure PowerShell Script
Make sure Azure Resource Manager cmdlets are available; see Azure Resource Manager Cmdlets for the latest installation information.
Log in to Azure Resource Manager using the cmdlet:
## Customize for Your Environment $SubscriptionName = "my subscription" Login-AzureRmAccount Select-AzureRmSubscription -SubscriptionName $SubscriptionName
When prompted, enter your user name and password for the Azure Portal.
Upload the .vhd file to a storage account. As shown in the example script below, you will first create a Resource Group through the Portal UI or PowerShell. Additionally, create the storage container defined in "BlobDestinationContainer" in advance.
Example Script: ## Customize for Your Environment $SubscriptionName = "my subscription" $ResourceGroupName = "test" $StorageAccountName = "test" $BlobNameSource = "cfme-test.vhd" $BlobSourceContainer = "templates" $LocalImagePath = "C:\tmp\$BlobNameSource" ## # Upload VHD to a "templates" directory. You can pass a few arguments, such as `NumberOfUploaderThreads 8`. The default number of uploader threads is `8`. See https://msdn.microsoft.com/en-us/library/mt603554.aspx Add-AzureRmVhd -ResourceGroupName $ResourceGroupName -Destination https://$StorageAccountName.blob.core.windows.net/$BlobSourceContainer/$BlobNameSource -LocalFilePath $LocalImagePath -NumberOfUploaderThreads 8
Create a virtual machine. Then, define your VM and VHD name, your system/deployment name and size. Next, you will set the appropriate Storage, Network and Configuration options for your environment.
Example Script: ## Customize for Your Environment $BlobNameDest = "cfme-test.vhd" $BlobDestinationContainer = "vhds" $VMName = "cfme-test" $DeploySize= "Standard_A3" $vmUserName = "user1" $InterfaceName = "test-nic" $VNetName = "test-vnet" $PublicIPName = "test-public-ip" $SSHKey = <your ssh public key> ## $StorageAccount = Get-AzureRmStorageAccount -ResourceGroup $ResourceGroupName -Name $StorageAccountName $SourceImageUri = "https://$StorageAccountName.blob.core.windows.net/templates/$BlobNameSource" $Location = $StorageAccount.Location $OSDiskName = $VMName # Network $Subnet1Name = "default" $VNetAddressPrefix = "10.1.0.0/16" $VNetSubnetAddressPrefix = "10.1.0.0/24" $PIp = New-AzureRmPublicIpAddress -Name $PublicIPName -ResourceGroupName $ResourceGroupName -Location $Location -AllocationMethod Dynamic -Force $SubnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name $Subnet1Name -AddressPrefix $VNetSubnetAddressPrefix $VNet = New-AzureRmVirtualNetwork -Name $VNetName -ResourceGroupName $ResourceGroupName -Location $Location -AddressPrefix $VNetAddressPrefix -Subnet $SubnetConfig -Force $Interface = New-AzureRmNetworkInterface -Name $InterfaceName -ResourceGroupName $ResourceGroupName -Location $Location -SubnetId $VNet.Subnets[0].Id -PublicIpAddressId $PIp.Id -Force # Specify the VM Name and Size $VirtualMachine = New-AzureRmVMConfig -VMName $VMName -VMSize $DeploySize # Add User $cred = Get-Credential -UserName $VMUserName -Message "Setting user credential - use blank password" $VirtualMachine = Set-AzureRmVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $VMName -Credential $cred # Add NIC $VirtualMachine = Add-AzureRmVMNetworkInterface -VM $VirtualMachine -Id $Interface.Id # Add Disk $OSDiskUri = $StorageAccount.PrimaryEndpoints.Blob.ToString() + $BlobDestinationContainer + "/" + $BlobNameDest $VirtualMachine = Set-AzureRmVMOSDisk -VM $VirtualMachine -Name $OSDiskName -VhdUri $OSDiskUri -CreateOption fromImage -SourceImageUri $SourceImageUri -Linux # Set SSH key Add-AzureRmVMSshPublicKey -VM $VirtualMachine -Path “/home/$VMUserName/.ssh/authorized_keys” -KeyData $SSHKey # Create the VM New-AzureRmVM -ResourceGroupName $ResourceGroupName -Location $Location -VM $VirtualMachine
NoteThese are the procedural steps as of the time of writing. For more information, see the following Azure documentation.
The steps covered in the following article are for a Windows machine, however, most of the items are common between Windows and Linux.
1.2.2. Using the Azure Command-Line Interface
Complete the following steps to upload and provision the CloudForms virtual appliance using the Azure CLI.
1.2.2.1. Installing the Azure Command-Line Interface
For a complete Azure CLI 2.0 command reference, see Azure CLI 2.0: Command reference - az.
Import the Microsoft repository key.
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
Create a local Azure CLI repository entry.
$ sudo sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
Update the yum package index.
$ yum check-update
Install the Azure CLI.
$ sudo yum install azure-cli
Log in to Azure.
$ az login Example: To sign in, use a web browser to open the page https://aka.ms/devicelogin and enter the code GJP8Y33XY to authenticate. [ { "cloudName": "AzureCloud", "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "isDefault": true, "name": "Demo Azure account", "state": "Enabled", "tenantId": "xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "user": { "name": "clouduser", "type": "user" } } ]
1.2.2.2. Creating Resources for the Appliance in Microsoft Azure Using the Azure Command-Line Interface
Complete the following steps to create resources in Microsoft Azure using the Azure CLI.
- If you already have resources you can use, you can skip this section and go directly to Section 1.2.2.3, “Uploading and Provisioning the CloudForms Virtual Appliance Using the Azure Command-Line Interface”.
- For a complete Azure CLI 2.0 command reference, see Azure CLI 2.0: Command reference - az.
Create a resource group in an Azure region.
$ az group create --name <resource-group> --location <azure-region> Example: [clouduser@localhost]$ az group create --name azrhelclirsgrp --location southcentralus { "id": "/subscriptions//resourceGroups/azrhelclirsgrp", "location": "southcentralus", "managedBy": null, "name": "azrhelclirsgrp", "properties": { "provisioningState": "Succeeded" }, "tags": null }Create a storage account; see SKU type descriptions.
$ az storage account create -l <azure-region> -n <storage-account-name> -g <resource-group --sku <sku_type> Example: [clouduser@localhost]$ az storage account create -l southcentralus -n azrhelclistact -g azrhelclirsgrp --sku Standard_LRS { "accessTier": null, "creationTime": "2017-04-05T19:10:29.855470+00:00", "customDomain": null, "encryption": null, "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Storage/storageAccounts/azrhelclistact", "kind": "Storage", "lastGeoFailoverTime": null, "location": "southcentralus", "name": "azrhelclistact", "primaryEndpoints": { "blob": "https://azrhelclistact.blob.core.windows.net/", "file": "https://azrhelclistact.file.core.windows.net/", "queue": "https://azrhelclistact.queue.core.windows.net/", "table": "https://azrhelclistact.table.core.windows.net/" }, "primaryLocation": "southcentralus", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "secondaryEndpoints": null, "secondaryLocation": null, "sku": { "name": "Standard_LRS", "tier": "Standard" }, "statusOfPrimary": "available", "statusOfSecondary": null, "tags": {}, "type": "Microsoft.Storage/storageAccounts" }Get the storage account connection string.
$ az storage account show-connection-string -n <storage-account-name> -g <resource-group> Example: [clouduser@localhost]$ az storage account show-connection-string -n azrhelclistact -g azrhelclirsgrp { "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...==" }Export the connection string. Copy the connection string and paste it into the following command. This connects your system to the storage account.
$ export AZURE_STORAGE_CONNECTION_STRING="<storage-connection-string>" Example: [clouduser@localhost]$ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...=="
Create the storage container.
$ az storage container create -n <container-name> Example: [clouduser@localhost]$ az storage container create -n azrhelclistcont { "created": true }Create a virtual network.
$ az network vnet create -g <resource group> --name <vnet-name> --subnet-name <subnet-name> Example: [clouduser@localhost]$ az network vnet create --resource-group azrhelclirsgrp --name azrhelclivnet1 --subnet-name azrhelclisubnet1 { "newVNet": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "dhcpOptions": { "dnsServers": [] }, "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1", "location": "southcentralus", "name": "azrhelclivnet1", "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceGuid": "0f25efee-e2a6-4abe-a4e9-817061ee1e79", "subnets": [ { "addressPrefix": "10.0.0.0/24", "etag": "W/\"\"", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Network/virtualNetworks/azrhelclivnet1/subnets/azrhelclisubnet1", "ipConfigurations": null, "name": "azrhelclisubnet1", "networkSecurityGroup": null, "provisioningState": "Succeeded", "resourceGroup": "azrhelclirsgrp", "resourceNavigationLinks": null, "routeTable": null } ], "tags": {}, "type": "Microsoft.Network/virtualNetworks", "virtualNetworkPeerings": null } }
1.2.2.3. Uploading and Provisioning the CloudForms Virtual Appliance Using the Azure Command-Line Interface
You can now upload and provision the appliance in an Azure environment using the Azure Command-Line Interface (Azure CLI).
Upload the image to the storage container. It may take several minutes. Note: Enter
az storage container listto get the list of storage containers.$ az storage blob upload --account-name <storage-account-name> --container-name <container-name> --type page --file <path-to-vhd> --name <image-name>.vhd Example: $ az storage blob upload --account-name azrhelclistact --container-name azrhelclistcont --type page --file cfme-azure-5.7.4.2-1.x86_64.vhd --name cfme-azure-5.7.4.2-1.x86_64.vhd Finished[#############################################################] 100.0000%
Get the URL for the uploaded .vhd file using the following command. You will need to use this URL in the next step.
$ az storage blob url -c <container-name> -n <image-name>.vhd Example: $ az storage blob url -c azrhelclistcont -n cfme-azure-5.7.4.2-1.x86_64.vhd "https://azrhelclistact.blob.core.windows.net/azrhelclistcont/cfme-azure-5.7.4.2-1.x86_64.vhd"
Create a reusable image from a blob and then use a managed disk.
Example: $ az image create -n <image-name> -g <cfme-appliance-group> --os-type <linux> --source <https://cfmestorageaccount.blob.core.windows.net/cfmestoragecontainer/cfme-azure-5.7.4.2-1.x86_64.vhd>
Create the virtual machine. Note that the following command uses
--generate-ssh-keys. In this example, the private/public key pair/home/clouduser/.ssh/id_rsaand/home/clouduser/.ssh/id_rsa.pubare created.$ az vm create --resource-group <resource-group> --location <azure-region> --use-unmanaged-disk --name <vm-name> --storage-account <storage-account-name> --os-type linux --admin-username <administrator-name> --generate-ssh-keys --image <URL> Example: az vm create --resource-group azrhelclirsgrp --location southcentralus --use-unmanaged-disk --name cfme-appliance-1 --storage-account azrhelclistact --os-type linux --admin-username clouduser --generate-ssh-keys --image https://azrhelclistact.blob.core.windows.net/azrhelclistcont/cfme-azure-5.7.4.2-1.x86_64.vhd { "fqdns": "", "id": "/subscriptions//resourceGroups/azrhelclirsgrp/providers/Microsoft.Compute/virtualMachines/cfme-appliance-1", "location": "southcentralus", "macAddress": "00-0X-XX-XX-XX-XX", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "12.84.121.147", "resourceGroup": "azrhelclirsgrp" }Make a note of the public IP address. You will need this to log in to the virtual machine in the next step.
Start an SSH session and log in to the appliance.
$ ssh -i <path-to-ssh-key> <admin-username@public-IP-address> Example: $ ssh -i /home/clouduser/.ssh/id_rsa clouduser@12.84.121.147 The authenticity of host '12.84.121.147' can't be established. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '12.84.121.147' (ECDSA) to the list of known hosts. Welcome to the Appliance Console For a menu, please type: appliance_console
-
Enter
sudo appliance_consoleat the prompt. The summary screen appears.
You have successfully provisioned a CloudForms virtual appliance in Microsoft Azure.
The exported storage connection string does not persist after a system reboot. If any of the commands in the above steps fail, export the storage connection string again using the following commands:
Get the storage account connection string.
$ az storage account show-connection-string -n <storage-account-name> -g <resource-group> Example: $ az storage account show-connection-string -n azrhelclistact -g azrhelclirsgrp { "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...==" }Export the connection string. Copy the connection string and paste it into the following command. This connects your system to the storage account.
$ export AZURE_STORAGE_CONNECTION_STRING="<storage-connection-string>" Example: $ export AZURE_STORAGE_CONNECTION_STRING="DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=azrhelclistact;AccountKey=NreGk...=="
Possible Next Steps:
- You will need to create a data disk for the database; see https://docs.microsoft.com/en-us/azure/virtual-machines/linux/add-disk for information about how to add a persistent disk to store your data.
- See Database Requirements for some general guidelines for your database requirements.
- For information about Azure ports used by CloudForms, see https://access.redhat.com/documentation/en-us/red_hat_cloudforms/4.2/html-single/appliance_hardening_guide/#chap_red_hat_cloudforms_security_guide_firewall.
After uploading the Red Hat CloudForms appliance, you must configure the database for CloudForms; see Configuring a Database for Red Hat CloudForms.
2. Enabling CloudForms User Interface Access
To access the Red Hat CloudForms virtual appliance user interface, you need to enable access over ports 80 and 443 to the virtual machine. You can do this using the CLI or from within the Azure portal.
-
To enable a port using the CLI, enter
az vm open-port --port <port-number> --resource-group <resource-group> --name <vm-name>. - To enable a port using the Microsoft Azure portal, open the properties for the resource group where the appliance is located, click on Network Security Group, and add HTTP and HTTPS access.
3. Configuring Red Hat CloudForms
Although the Red Hat CloudForms appliance comes configured to be integrated immediately into your environment, you can make some changes to its configuration.
The Red Hat CloudForms appliance is intended to have minimal configuration options.
3.1. Changing Configuration Settings
The following procedure describes how to make changes to the configuration settings on the Red Hat CloudForms appliance.
- Start the appliance and open a terminal console.
- Log in to the appliance using the SSH key.
-
Enter the
appliance_consolecommand. The Red Hat CloudForms appliance summary screen displays. -
Press
Enterto manually configure settings. -
Press the number for the item you want to change, and press
Enter. The options for your selection are displayed. - Follow the prompts to make the changes.
-
Press
Enterto accept a setting where applicable.
The Red Hat CloudForms appliance console automatically logs out after five minutes of inactivity.
3.2. Advanced Configuration Settings
After logging in, you can use the following menu items for advanced configuration of the appliance:
- Use Set DHCP Network Configuration to use DHCP to obtain the IP address and network configuration for your Red Hat CloudForms appliance. The appliance is initially configured as a DHCP client with bridged networking.
- Use Set Static Network Configuration if you have a specific IP address and network settings you need to use for the Red Hat CloudForms appliance.
- Use Test Network Configuration to check that name resolution is working correctly.
Use Set Hostname to specify a hostname for the Red Hat CloudForms appliance.
ImportantA valid fully qualified hostname for the Red Hat CloudForms appliance is required for SmartState analysis to work correctly,
- Use Set Timezone to configure the time zone for the Red Hat CloudForms appliance.
- Use Set Date and Time to configure the date and time for the Red Hat CloudForms appliance.
- Use Restore Database from Backup to restore the Virtual Management Database (VMDB) from a previous backup.
- Use Setup Database Region to create regions for VMDB replication.
- Use Configure Database to configure the VMDB. Use this option to configure the database for the appliance after installing and running it for the first time.
- Use Configure Database Replication to configure a primary or standby server for VMDB replication.
- Use Configure Database Maintenance to configure the VMDB maintenance schedule.
- Use Configure Application Database Failover Monitor to start or stop VMDB failover monitoring.
-
Use Extend Temporary Storage to add temporary storage to the appliance. The appliance formats an unpartitioned disk attached to the appliance host and mounts it at
/var/www/miq_tmp. The appliance uses this temporary storage directory to perform certain image download functions. - Use Configure External Authentication (httpd) to configure authentication through an IPA server.
- Use Generate Custom Encryption Key to regenerate the encryption key used to encode plain text password.
-
Use Harden Appliance Using SCAP Configuration to apply Security Content Automation Protocol (SCAP) standards to the appliance. You can view these SCAP rules in the
/var/www/miq/lib/appliance_console/config/scap_rules.ymlfile. - Use Stop EVM Server Processes to stop all server processes. You may need to do this to perform maintenance.
- Use Start EVM Server Processes to start the server. You may need to do this after performing maintenance.
- Use Restart Appliance to restart the Red Hat CloudForms appliance. You can either restart the appliance and clear the logs or just restart the appliance.
- Use Shut Down Appliance to power down the appliance and exit all processes.
- Use Summary Information to go back to the network summary screen for the Red Hat CloudForms appliance.
- Use Quit to leave the Red Hat CloudForms appliance console.
3.3. Configuring a Database for Red Hat CloudForms
Before using Red Hat CloudForms, configure the database options for it. Red Hat CloudForms provides two options for database configuration:
- Install an internal PostgreSQL database to the appliance
- Configure the appliance to use an external PostgreSQL database
3.3.1. Configuring an Internal Database
Before installing an internal database, add a disk to the infrastructure hosting your appliance. See the documentation specific to your infrastructure for instructions for adding a disk. As a storage disk usually cannot be added while a virtual machine is running, Red Hat recommends adding the disk before starting the appliance. Red Hat CloudForms only supports installing of an internal VMDB on blank disks; installation will fail if the disks are not blank.
- Start the appliance and open a terminal console.
- Log in to the appliance using the SSH key.
-
Enter the
appliance_consolecommand. The Red Hat CloudForms appliance summary screen displays. - Press Enter to manually configure settings.
- Select 8) Configure Database from the menu.
You are prompted to create or fetch an encryption key.
- If this is the first Red Hat CloudForms appliance, choose 1) Create key.
- If this is not the first Red Hat CloudForms appliance, choose 2) Fetch key from remote machine to fetch the key from the first Red Hat CloudForms appliance. All Red Hat CloudForms appliances in a multi-region deployment must use the same key.
- Choose 1) Internal for the database location.
Choose a disk for the database. This can be either a disk you attached previously, or a partition on the current disk.
ImportantRed Hat recommends using a separate disk for the database.
If there is an unpartitioned disk attached to the virtual machine, the dialog will show options similar to the following:
1) /dev/vdb: 20480 2) Don't partition the disk
-
Enter 1 to choose
/dev/vdbfor the database location. This option creates a logical volume using this device and mounts the volume to the appliance in a location appropriate for storing the database. The default location is/var/opt/rh/rh-postgresql95/lib/pgsql, which can be found in the environment variable$APPLIANCE_PG_MOUNT_POINT. - Enter 2 to continue without partitioning the disk. A second prompt will confirm this choice. Selecting this option results in using the root filesystem for the data directory (not advised in most cases).
-
Enter 1 to choose
Enter Y or N for Configure this server as a dedicated database instance?
- Select Y to configure the appliance only as a database. As a result, the appliance is configured as a basic PostgreSQL server, without a user interface.
- Select N to configure the appliance with the full administrative user interface.
When prompted, enter a unique number to create a new region.
ImportantCreating a new region destroys any existing data on the chosen database.
- Create and confirm a password for the database.
Red Hat CloudForms then configures the internal database.
3.3.2. Configuring an External Database
Based on your setup, you will choose to configure the appliance to use an external PostgreSQL database. For example, we can only have one database in a single region. However, a region can be segmented into multiple zones, such as database zone, user interface zone, and reporting zone, where each zone provides a specific function. The appliances in these zones must be configured to use an external database.
The postgresql.conf file used with Red Hat CloudForms databases requires specific settings for correct operation. For example, it must correctly reclaim table space, control session timeouts, and format the PostgreSQL server log for improved system support. Due to these requirements, Red Hat recommends that external Red Hat CloudForms databases use a postgresql.conf file based on the standard file used by the Red Hat CloudForms appliance.
Ensure you configure the settings in the postgresql.conf to suit your system. For example, customize the shared_buffers setting according to the amount of real storage available in the external system hosting the PostgreSQL instance. In addition, depending on the aggregate number of appliances expected to connect to the PostgreSQL instance, it may be necessary to alter the max_connections setting.
- Red Hat CloudForms 4.x requires PostgreSQL version 9.4.
-
Because the
postgresql.conffile controls the operation of all databases managed by a single instance of PostgreSQL, do not mix Red Hat CloudForms databases with other types of databases in a single PostgreSQL instance.
- Start the appliance and open a terminal console.
- Log in to the appliance using the SSH key.
-
Enter the
appliance_consolecommand. The Red Hat CloudForms appliance summary screen displays. - Press Enter to manually configure settings.
- Select 8) Configure Database from the menu.
You are prompted to create or fetch a security key.
- If this is the first Red Hat CloudForms appliance, select the option to create a key.
- If this is not the first Red Hat CloudForms appliance, select the option to fetch the key from the first Red Hat CloudForms appliance. All Red Hat CloudForms appliances in a multi-region deployment must use the same key.
- Choose 2) External for the database location.
- Enter the database hostname or IP address when prompted.
-
Enter the database name or leave blank for the default (
vmdb_production). -
Enter the database username or leave blank for the default (
root). - Enter the chosen database user’s password.
- Confirm the configuration if prompted.
Red Hat CloudForms will then configure the external database.
3.4. Configuring a Worker Appliance
You can use multiple appliances to facilitate horizontal scaling, as well as for dividing up work by roles. Accordingly, configure an appliance to handle work for one or many roles, with workers within the appliance carrying out the duties for which they are configured. You can configure a worker appliance through the terminal. The following steps demonstrate how to join a worker appliance to an appliance that already has a region configured with a database.
- Start the appliance and open a terminal console.
- Log in to the appliance using the SSH key.
-
Enter the
appliance_consolecommand. The Red Hat CloudForms appliance summary screen displays. - Press Enter to manually configure settings.
- Select 8) Configure Database from the menu.
- You are prompted to create or fetch a security key. Select the option to fetch the key from the first Red Hat CloudForms appliance. All Red Hat CloudForms appliances in a multi-region deployment must use the same key.
- Choose 2) External for the database location.
- Enter the database hostname or IP address when prompted.
-
Enter the database name or leave blank for the default (
vmdb_production). -
Enter the database username or leave blank for the default (
root). - Enter the chosen database user’s password.
- Confirm the configuration if prompted.
4. Logging In After Installing Red Hat CloudForms
Once Red Hat CloudForms is installed, you can log in and perform administration tasks.
Log in to Red Hat CloudForms for the first time after installing by:
- Navigate to the URL for the login screen. (https://xx.xx.xx.xx on the virtual machine instance)
- Enter the default credentials (Username: admin | Password: smartvm) for the initial login.
- Click Login.
4.1. Changing the Default Login Password
Change your password to ensure more private and secure access to Red Hat CloudForms.
- Navigate to the URL for the login screen. (https://xx.xx.xx.xx on the virtual machine instance)
- Click Update Password beneath the Username and Password text fields.
- Enter your current Username and Password in the text fields.
- Input a new password in the New Password field.
- Repeat your new password in the Verify Password field.
- Click Login.
A. Appendix
A.1. Appliance Console Command-Line Interface (CLI)
Currently, the appliance_console_cli feature is a subset of the full functionality of the appliance_console itself, and covers functions most likely to be scripted using the command-line interface (CLI).
-
After starting the Red Hat CloudForms appliance, log in with a user name of
rootand the default password ofsmartvm. This displays the Bash prompt for the root user. -
Enter the
appliance_console_cliorappliance_console_cli --helpcommand to see a list of options available with the command, or simply enterappliance_console_cli --option <argument>directly to use a specific option.
Table A.1. Database Configuration Options
| Option | Description |
|---|---|
| --region (-r) | region number (create a new region in the database - requires database credentials passed) |
| --internal (-i) | internal database (create a database on the current appliance) |
| --dbdisk | database disk device path (for configuring an internal database) |
| --hostname (-h) | database hostname |
| --port |
database port (defaults to |
| --username (-U) |
database username (defaults to |
| --password (-p) | database password |
| --dbname (-d) |
database name (defaults to |
Table A.2. v2_key Options
| Option | Description |
|---|---|
| --key (-k) | create a new v2_key |
| --fetch-key (-K) | fetch the v2_key from the given host |
| --force_key (-f) | create or fetch the key even if one exists |
| --sshlogin |
ssh username for fetching the v2_key (defaults to |
| --sshpassword | ssh password for fetching the v2_key |
Table A.3. IPA Server Options
| Option | Description |
|---|---|
| --host (-H) | set the appliance hostname to the given name |
| --ipaserver (-e) | IPA server FQDN |
| --ipaprincipal (-n) |
IPA server principal (default: |
| --ipapassword (-w) | IPA server password |
| --ipadomain (-o) | IPA server domain (optional). Will be based on the appliance domain name if not specified. |
| --iparealm (-l) | IPA server realm (optional). Will be based on the domain name of the ipaserver if not specified. |
-
In order to configure authentication through an IPA server, in addition to using Configure External Authentication (httpd) in the
appliance_console, external authentication can be optionally configured via theappliance_console_cli(command-line interface). -
Specifying --host will update the hostname of the appliance. If this step was already performed via the
appliance_consoleand the necessary updates made to/etc/hostsif DNS is not properly configured, the --host option can be omitted.
Table A.4. Certificate Options
| Option | Description |
|---|---|
| --ca (-c) |
CA name used for certmonger (default: |
| --internal (-i) | create a database on the current appliance |
| --postgres-client-cert (-g) | install certs for postgres client |
| --postgres-server-cert | install certs for postgres server |
| --http-cert | install certs for http server (to create certs/httpd* values for a unique key) |
| --extauth-opts (-x) | external authentication options |
The certificate options augment the functionality of the certmonger tool and enable creating a certificate signing request (CSR), and specifying certmonger the directories to store the keys.
Table A.5. Other Options
| Option | Description |
|---|---|
| --tmpdisk |
initialize the given device for temp storage (volume mounted at |
| --verbose (-v) | print more debugging info |
Example Usage
$ ssh root@appliance.test.company.com
To create a new database locally on the server using /dev/sdb:
# appliance_console_cli --internal --dbdisk /dev/sdb --region 0 --password smartvm
To copy the v2_key from a host some.example.com to local machine:
# appliance_console_cli --fetch-key some.example.com --sshlogin root --sshpassword smartvm
You could combine the two to join a region where db.example.com is the appliance hosting the database:
# appliance_console_cli --fetch-key db.example.com --sshlogin root --sshpassword smartvm --hostname db.example.com --password mydatabasepassword
To configure external authentication:
# appliance_console_cli --host appliance.test.company.com
--ipaserver ipaserver.test.company.com
--ipadomain test.company.com
--iparealm TEST.COMPANY.COM
--ipaprincipal admin
--ipapassword smartvm1To uninstall external authentication:
# appliance_console_cli --uninstall-ipa
A.2. Storage SKU Types
Table A.6. Storage SKU types
| SKU Type | Description |
|---|---|
| Standard_LRS | Locally Redundant Storage: Synchronous copies of data are created within a single data center. |
| Standard_GRS | Geographically Redundant Storage: Same as Standard_LRS with additional asynchronous copies stored in a secondary data center in a separate geographical location. |
| Standard_RAGRS | Read-Access Geographically Redundant Storage: Same as Standard_GRS with additional read access to the secondary data center. |
| Standard_ZRS | Zone Redundant Storage: For block blobs only. Stores three copies of data across multiple data centers within the region or across regions. |
| Premium_LRS | Premium Locally Redundant Storage: Same as Standard_LRS, but uses Premium Storage disks. |
