
# 安装Cloud-Init（EulerOS/OpenEuler）
#### 操作背景
Cloud-Init是为云环境中虚拟机或iMetal服务器的初始化而开发的工具，作用是在使用镜像创建虚拟机或iMetal服务器时，可自定义服务器的网络配置、hostname、hosts文件，以及用户名密码等。使用镜像创建的虚拟机如需由系统生成随机密码，也需要使用此工具实现。
由于Cloud-Init安装文件需要适配不同厂商的Linux版本，当前仅支持从网络安装，因此制作Linux镜像时，需要可接入Internet。
#### 操作说明
- 以下安装Cloud-Init只是安装示例，建议从操作系统提供商的官网上下载此软件。Cloud-Init版本会随官网实时更新，在安装时，使用官网的最新版本即可。
- 在修改配置文件"/etc/cloud/cloud.cfg"时，请注意配置文件的格式（如对齐、空格）要与示例保持一致（此文件遵循yaml语法结构）。
 
#### 操作步骤
1. 以EulerOS 2.2为例，首先进行EulerOS 2.2的yum源配置，编辑"/etc/yum.repos.d/EulerOS-base.repo"文件，参考[如何使用自动化工具配置华为云镜像源(x86_64和鲲鹏)？](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0118948562.html)添加yum源。以下为配置示例：
   ```
   [EulerOS-base]
   name=EulerOS-base
   baseurl=https://repo.huaweicloud.com/euler/2.2/os/x86_64/
   enabled=1
   gpgcheck=1
   gpgkey=https://repo.huaweicloud.com/euler/2.2/os/RPM-GPG-KEY-EulerOS
   ```
   编辑后保存该文件。
   
2. yum源配置完成后，执行命令进行刷新： **yum repolist**
   然后进行cloud-init-0.7.6的安装：
   **yum install cloud-init**
   安装的过程会自动将Cloud-Init所需依赖一起安装。
   ```
   Installed:
     cloud-init.x86_64 0:0.7.6-2
   Dependency Installed:
     PyYAML.x86_64 0:3.10-11                                       audit-libs-python.x86_64 0:2.4.1-5
     checkpolicy.x86_64 0:2.1.12-6                                 libsemanage-python.x86_64 0:2.1.10-18
     libyaml.x86_64 0:0.1.4-11                                     policycoreutils-python.x86_64 0:2.2.5-15.h1
     python-IPy.noarch 0:0.75-6                                    python-backports.x86_64 0:1.0-8
     python-backports-ssl_match_hostname.noarch 0:3.4.0.2-4        python-jsonpatch.noarch 0:1.2-2
     python-jsonpointer.noarch 0:1.9-2                             python-prettytable.noarch 0:0.7.2-1
     python-requests.noarch 0:2.6.0-1                              python-six.noarch 0:1.9.0-2
     python-urllib3.noarch 0:1.10.2-2                              setools-libs.x86_64 0:3.3.7-46
   Complete!
   ```
   
3. 如果要注入root密码，需要升级selinux-policy，通过下面命令，从h1升级至h2。 **yum install selinux-policy**
   
4. 执行**cloud-init -v**命令，回显信息中包含cloud-init版本号，则表示安装完成。
 
