Adding a HA controller node to a deployed topology

After deploying your High Availability (HA) controller +n compute topology, you can add a HA controller node system to your deployment. This applies to the HA controller +n compute topology only.

Before you begin

  • Before you begin, ensure that you completed the Deploying prerequisites steps for a controller node.
  • Ensure that all existing HA controller nodes in your deployed topology are online. Run knife os manage services status –-topology-file your-topology-name.json to verify that all HA controller nodes are online.
    • If an HA controller node is offline permanently due to an unrecoverable failure, use the following procedure, to update your-topology-name.json file to ignore updating the permanently offline HA controller.
      1. Log in to the deployment system as the root user. The deployment system is where IBM Cloud Manager with OpenStack was installed.
      2. Locate the directory that contains the files for the topology that you deployed. Change your-deployment-name to the name for your deployment.
        $ cd your-deployment-name
      3. Edit the topology file your-topology-name.json used for deployment and add "allow_update": false, to the node description for the permanently offline HA controller. For example:
        "nodes": [ 
            { 
              "name": "ha_controller", 
              "description": "Cloud HA controller node", 
              "fqdn": "node.domain.name”, 
              "password": "*****", 
              "quit_on_error": true, 
              "allow_update": false, 
              "run_order_number": 4, 
              "runlist": [ 
                "role[ibm-os-ha-controller-node]" 
              ] 
            }, 
Note: The added HA controller node does not include IBM DB2®.

About this task

Use the following procedure to add a HA controller node to your deployment.

Procedure

  1. Log in to the deployment system as the root user.
    This is the system where IBM Cloud Manager with OpenStack was installed.
  2. Create a node-specific attribute file. This step is only required when the new HA controller node requires different attributes from those defined in the environment for the topology. For more information on node-specific attribute files, see the applicable Deploying a test or production cloud section.
  3. Deploy the new HA controller node. Change the following parameters in the command below.
    • node-fqdn: Set to the fully qualified domain name of the node system. You can also set to the public IP address, private IP address, or host name.
    • node-run-list: Set the node run list to be the same as the run list for an existing HA controller node in the topology. You can look in the topology JSON file to see the run list for an existing HA controller node. For example, if the run list is "runlist": ["role[ibm-os-ha-controller-node]"], then set node-run-list to 'role[ibm-os-ha-controller-node]'.
    • node-ssh-password: SSH root user password for the node. To use an SSH identity file instead of a password, use the -i node-ssh-identity option, where node-ssh-identity is the SSH identity file for the node.
    • node-attribute-file: Set to the node-specific attribute file created in step 2. Remove this option if not required.
    • topology-file: Set to the fully qualified path and file name of the topology JSON file that is used to deploy the other nodes in the topology. The command updates the topology file with the added HA controller node information. This option is required.
    knife os manage deploy node node-fqdn 'node-run-list' -P node-ssh-password --attribute-file node-attribute-file --topology-file topology-file

    For example, knife os manage deploy node hostname.my.company.com 'role[ibm-os-ha-controller-node]' -P passw0rd --attribute-file /root/clouds/hostname_attributes.json --topology-file /root/clouds/my_topology.json

    Note: For more information on the knife os manage deploy node command and the topology file, see Commands.
  4. After the new HA controller node is deployed, the knife os manage deploy node command that is issued above will automatically update the entire topology to finish the process of adding the new HA controller node to the topology. Each node in the topology, including the new HA controller node, is updated.
    If any HA controller nodes in the topology are offline or are currently powered off, the update process fails unless it is instructed to not update those nodes. To instruct the update process to not update a node, you can set the following key in the topology JSON file for that particular node to specify whether to update it.
    Node Keys: allow_update
    A Boolean value, which indicates whether to update the node. Set to true to update the node. Set to false if you do not want to update the node. The default is true.
    Note: If the topology file must be modified to not update particular nodes in the topology, that change must be completed before attempting to add the new HA controller node.
    For more information about the topology update process, see Updating a deployed topology. For more information about the topology JSON file format, see Topology JSON file.
  5. After the HA controller node deployment and topology update completes, you can check the status of the IBM Cloud Manager with OpenStack services, see Checking status of OpenStack services.

Results

You are ready to start using IBM Cloud Manager with OpenStack services on the new HA controller node system.