Cloud-Init Installation FAQ
You are advised to install Cloud-Init on the ECS that will be used to create a private image so that new ECSs created from the private image support custom configurations (for example, changing the ECS login password).
For details about how to install Cloud-Init, see Installing Cloud-Init.
For details about how to configure Cloud-Init, see Configuring Cloud-Init.
The following describes common problems you may encounter when installing Cloud-Init and their solutions.
Ubuntu 16.04/CentOS 7: Failed to Set Cloud-Init Automatic Start
- Symptom
After Cloud-Init is installed, you run the following command to configure Cloud-Init automatic start:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Information similar to the following is displayed:
Figure 1 Failed to enable Cloud-Init to start automatically
- Solution
- Run the following command to roll back the configuration:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Run the following command to configure automatic start again:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Run the following command to check the Cloud-Init status:
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
As shown in the following figures, failed is displayed and all services are in the inactive state.
Figure 2 Checking Cloud-Init status (1)
Figure 3 Checking Cloud-Init status (2)
This is because the address that the system uses to access Cloud-Init is redirected to /usr/bin/, but the actual installation path is /usr/local/bin.
- Run the following command to copy Cloud-Init to the usr/bin directory:
cp /usr/local/cloud-init /usr/bin/
- Run the following command to restart Cloud-Init:
systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Figure 4 Restarting Cloud-Init
- Run the following command to check the Cloud-Init status:
systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Run the following command to roll back the configuration:
Ubuntu 14.04: chkconfig and systemctl Not Installed
- Symptom
- Solution
Run the following commands to install chkconfig:
apt-get update
apt-get install sysv-rc-conf
cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig
Run the following command to query the Cloud-Init version:
cloud-init -v
Information similar to the following is displayed:
-bash:/usr/bin/cloud-init:not found this command
Run the following command to copy Cloud-Init to the usr/bin directory:
cp /usr/local/bin/cloud-init /usr/bin/
Debian 9.5: Failed to Query the Cloud-Init Version and Configure Automatic Start
- Run the following command to query the Cloud-Init version:
Information similar to the following is displayed:
-bash:/usr/bin/cloud-init:not found this command
Run the cp /usr/local/bin/cloud-init /usr/bin/ command to copy Cloud-Init to the usr/bin directory.
- Run the cloud-init init --local command.
Information similar to the following is displayed:
Figure 5 Information returned when Cloud-Init automatic start successfully set
The compilation fails because GCC is not installed.
To solve this issue:
Run the following command to install GCC. Then, install Cloud-Init again.
yum -y install gcc
- After Cloud-Init is installed, run the following command to configure Cloud-Init automatic start:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Information similar to the following is displayed.
Figure 6 Prompt indicating the failure to configure Cloud-Init automatic start
To solve this issue:
- Run the following command to roll back the configuration:
systemctl unmask cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Run the following command to set automatic start again:
systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
- Run the following command to restart Cloud-Init:
systemctl restart cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
Run the systemctl status command to check the Cloud-Init status. Information similar to the following is displayed:
Figure 7 Verifying the service status
- Run the following command to roll back the configuration:
CentOS 7/Fedora 28: Required C Compiler Not Installed
- Symptom
After Cloud-Init is successfully installed, you run the following command:
cloud-init init --local
The following information is displayed:
/usr/lib/python2.5/site-packages/Cheetah/Compiler.py:1532: UserWarning: You don't have the C version of NameMapper installed! I'm disabling Cheetah's useStackFrames option as it is painfully slow with the Python version of NameMapper. You should get a copy of Cheetah with the compiled C version of NameMapper. "\nYou don't have the C version of NameMapper installed!
- Cause analysis
This alarm is generated because C version of NameMapper needs to be compiled when Cloud-Init is installed. However, GCC is not installed in the system, and the compilation cannot be performed. As a result, NameMapper is missing.
- Solution
Run the following command to install GCC:
yum -y install gcc
Reinstall Cloud-Init.
CentOS 7/Fedora: Failed to Use the New Password to Log In to an ECS Created from an Image
- Symptom
You cannot use a new password to log in to an ECS created from an image with Cloud-Init installed. After logging in to the ECS using the old password, you find that NICs of the ECS are not started.
Figure 8 NIC not started
- Solution
Log in to the ECS used to create that image, open the DHCP configuration file /etc/sysconfig/network-scripts/ifcfg-ethX, and comment out HWADDR.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot