Installation and configuration of cloud-init on the Linux server

IBM® Cloud Infrastructure Center uses cloud-init as its activation engine. It works well with cloud-init 18.5 for RHEL7.7 RHEL7.8, RHEL8.1 and RHEL8.2.

If you are using a different version of cloud-init, specify the commands below as required for your version of cloud-init.

During cloud-init installation, some dependency packages might be required. You can use yum to easily resolve these dependencies.

Follow these steps to install and configure the cloud-init service:

Installing and configuring cloud-init in RHEL Linux server

  1. Use ssh or virsh console to connect to the Linux® server, then run the following to install cloud-init:

    yum install cloud-init
  2. Install cloud-utils-growpart to allow partitions to resize:

    yum install cloud-utils-growpart
  3. Optionally, the default /etc/cloud/cloud.cfg file supports login by ssh key. If you want to log in by user name and password via ssh, configure the /etc/cloud/cloud.cfg file:

    ssh_pwauth:1
  4. Optionally, to enable root login, you can configure the /etc/cloud/cloud.cfg file:

    disable_root: 0
  5. Enable and start the cloud-init related services by running the following commands:

    systemctl enable cloud-init-local.service
    systemctl start cloud-init-local.service
    systemctl enable cloud-init.service
    systemctl start cloud-init.service
    systemctl enable cloud-config.service
    systemctl start cloud-config.service
    systemctl enable cloud-final.service
    systemctl start cloud-final.service

    If you experience problems the first time you start cloud-config.service and cloud-final.service, try to restart them.

  6. Ensure all cloud-init services have an active status by running the following commands:

    systemctl status cloud-init-local.service
    systemctl status cloud-init.service
    systemctl status cloud-config.service
    systemctl status cloud-final.service
  7. To verify the cloud-init configuration, issue the following command. If no errors occur, cloud-init is installed correctly:

    cloud-init init --local
  8. Remove the /var/lib/cloud directory (if it exists) so that cloud-init does not run after a restart:

    rm -rf /var/lib/cloud