安装Cloud-Init工具

2023-05-16

操作场景
为了保证使用私有镜像创建的新云服务器可以自定义配置(例如修改云服务器密码),请在创建私有镜像前安装Cloud-Init工具。
• Linux操作系统安装Cloud-Init工具时需要从官网下载并安装,因此,需要提前给云服务器配置弹性IP。
• 不安装Cloud-Init工具,将无法对云服务器进行自定义配置,只能使用镜像原有密码登录云服务器。
• 使用公共镜像创建的云服务器,默认已经安装Cloud-Init,不需要执行安装及配置操作。
• 用户导入镜像创建的云服务器,请按照指导安装及配置Cloud-Init。配置Cloud-Init操作请参考配置Cloud-Init工具章节。
前提条件
• 已为Linux云服务器绑定弹性IP。
• 已登录Linux云服务器。
• Linux云服务器的网卡属性为DHCP方式。
安装方式

  1. 请先检查是否已安装Cloud-Init工具。
    具体操作请参考检查是否已经安装Cloud-Init工具。

  2. 安装Cloud-Init工具。
    Cloud-Init安装方式分为:采用官方提供的包源安装Cloud-Init工具(优先推荐)、采用官方提供的cloud-init源码包通过pip方式安装Cloud-Init工具和采用源码编译安装方法。
    检查是否已经安装Cloud-Init工具
    请先执行如下步骤检查是否已安装Cloud-Init工具。
    在不同的操作系统下,查看是否已经安装Cloud-Init工具的方法不同,以CentOS 6 系列为例,执行以下命令查看是否安装Cloud-Init工具。
    rpm -qa |grep cloud-init
    • 回显类似如下,表示已经Cloud-Init工具,无需进行安装Cloud-Init工具的操作。
    cloud-init-0.7.5-10.el6.centos.2.x86_64
    o 请确认当前云服务器操作系统中的证书是否继续使用,如果不再使用该证书,请删除证书。
     root用户对应目录下的文件(如“/ p a t h / path/ path/to/KaTeX parse error: Unexpected character: '' at position 69: …uthorized_keys ̲ 非root用户对应目录下的证…path/ t o / to/ to/none-root/.ssh/authorized_keys”),执行以下命令。
    cd /home/centos/.ssh
    rm authorized_keys
    o 执行以下命令,确保Linux镜像创建的云服务器可以使用创建云服务器证书方式登录。
    sudo rm -rf /var/lib/cloud/*
    说明:
    设置完成后请勿重启云服务器,否则,需重新设置。
    采用官方提供的包源安装Cloud-Init工具(优先推荐)
    在不同操作系统的云服务器上安装Cloud-Init工具的方法不同,请在root用户下执行相关安装操作。
    以下将介绍SUSE、CentOS、Red Hat、Fedora、Debian和Ubuntu操作系统安装Cloud-Init工具的具体方法。其他操作系统类型,请安装并配置对应的类型的Cloud-Init工具,例如,使用CoreOS操作系统时需安装并配置coreos-cloudinit。
    • SUSE操作系统
    SUSE操作系统的Cloud-Init网络安装地址:
    http://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/
    http://download.opensuse.org/repositories/Cloud:/Tools/
    说明:
    在上述提供的网络安装地址下选择相应的操作系统版本的repo安装包进行安装。
    以SUSE Enterprise Linux Server 11 SP4为例,Cloud-Init工具的安装步骤如下。

  3. 登录到创建Linux私有镜像所使用的云服务器。

  4. 执行以下命令,安装SUSE 11 SP4的网络安装源。
    zypper ar http://ftp5.gwdg.de/pub/opensuse/repositories/Cloud:/Tools/SLE_11_SP4/Cloud:Tools.repo

  5. 执行以下命令,更新网络安装源。
    zypper refresh

  6. 执行以下命令,安装Cloud-Init。
    zypper install cloud-init

  7. 执行以下命令,设置Cloud-Init为开机自启动服务。
     SUSE 11 :
    chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on
    service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status
     SUSE 12 以及OpenSUSE 12/13/42:
    systemctl enable cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
    systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service
    注意:
    对于SUSE和OpenSUSE操作系统,请执行以下步骤禁止动态修改云服务器名称。

  8. 执行以下命令,使用vi编辑器打开“dhcp”文件。
    vi etc/sysconfig/network/dhcp

  9. 将“dhcp”文件中的“DHCLIENT_SET_HOSTNAME”的值修改为“no”。
    • CentOS和Red Hat系列操作系统
    CentOS和Red Hat系列操作系统的Cloud-Init网络安装地址如表1所示。请在提供的网络安装地址下选择相应的epel-release安装包进行安装。
    表1 Cloud-Init网络安装地址
    版本 网络安装地址
    6系列32位

    6系列64位

6以上系列此处以CentOS 6.5 64位为例,执行以下命令安装Cloud-Init。
yum install https://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-xx-xx.noarch.rpm
yum install cloud-init
说明:
xx-xx表示当前操作系统对应的epel版本号。
• Fedora操作系统
安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/yum.repo.d/fedora.repo”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考相关Fedora官网信息配置软件包安装源。
执行以下命令,安装Cloud-Init。
yum install cloud-init
• Debian和Ubuntu操作系统
安装Cloud-Init前,请确认操作系统已经配置好对应的网络安装源地址,请查看“/etc/apt/sources.list”文件中是否已配置相关软件包安装源地址,如果没有配置相关地址源,请参考Debian或者Ubuntu官网信息配置软件包安装源。
执行以下命令,安装Cloud-Init。
apt-get update
apt-get install cloud-init
采用官方提供的cloud-init源码包通过pip方式安装Cloud-Init工具
以cloud-init-0.7.9版本为例,Cloud-Init工具的安装步骤如下。

  1. 下载cloud-init-0.7.9.tar.gz源码包(推荐优先选用0.7.9版本),上传到云服务器指定目录/home/下。
    cloud-init-0.7.9.tar.gz源码包下载地址:
    https://launchpad.net/cloud-init/trunk/0.7.9/+download/cloud-init-0.7.9.tar.gz
  2. 在~/.pip/目录下新建pip.conf文件,编辑内容如下。
    说明:
    ~/.pip/若不存在,可使用命令mkdir ~/.pip命令新建。
    [global]
    index-url = https://< m i r r o r &gt; / s i m p l e / t r u s t e d − h o s t = &lt; mirror&gt;/simple/ trusted-host = &lt; mirror>/simple/trustedhost=<mirror>
    说明:
    编辑内容中<$mirror>部分可以选择公网PyPI源或教育网PyPI源进行替换。
    o 公网PyPI源:https://pypi.python.org/
    o 教育网PyPI源:https://pypi.tuna.tsinghua.edu.cn/
    https://pypi.mirrors.ustc.edu.cn/
  3. 执行以下命令,安装本地下载的cloud-init源码包,安装过程中根据需要选择–upgrade参数。

pip install [–upgrade] /home/cloud-init-0.7.9.tar.gz

  1. 执行命令cloud-init -v,如回显信息如下表示安装Cloud-Init成功。
    cloud-init 0.7.9
  2. 设置Cloud-Init相关服务为开机自启动。
    o 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。

chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final

chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on

service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status

o 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。

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

systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

注意:
采用官方提供的Cloud-Init源码包通过pip方式进行安装时要注意以下两点。

  1. Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户直接添加syslog用户到adm组。不存在syslog用户(如Red Hat、CentOS和SUSE),执行下列命令创建syslog用户,添加到adm组:
    useradd syslog
    groupadd adm
  2. 在/etc/cloud/cloud.cfg中system_info部分的distro要根据具体操作系统发行版本做相应修改(如根据具体操作系统发行版相应修改为:distro: ubuntu,distro: rhel,distro: sles,distro: debian, distro: fedora)。
    采用源码编译安装方法
    由于Cloud-Init配置的相关内容已在源码包编译完成,执行以下操作步骤安装Cloud-Init成功即可,无需执行Cloud-Init配置操作。
    源码编译安装方法的Cloud-Init工具Github开源地址:
  3. 执行以下命令,下载cloud-init压缩包,并将其复制至新建的/ tmp / CLOUD-INIT文件夹。
    说明:
    0.7.6版本安装包下载
    0.7.9版本安装包下载地址:
    wget https://github.com/huaweicloud/huaweicloud-cloud-init/archive/cloud-init-0.7.6.zip
    mkdir /tmp/CLOUD-INIT
    cp cloud-init-0.7.6.zip /tmp/CLOUD-INIT
    cd /tmp/CLOUD-INIT
  4. 执行如下命令,解压cloud-init压缩包。
    unzip cloud-init-0.7.6.zip
  5. 执行如下命令进入cloud-init-0.7.6文件夹。
    cd huaweicloud-cloud-init-cloud-init-0.7.6
  6. 按照操作系统类型,执行响应的命令安装cloud-init安装包。
    o CentOS6.x/SUSE11.x:
    python setup.py build
    python setup.py install --init-system sysvinit
    o CentOS7.x/SUSE12.x:
    python setup.py build
    python setup.py install --init-system systemd
  7. 注意:
  8. Cloud-Init安装时需要添加syslog用户到adm组。存在syslog用户直接添加syslog用户到adm组。不存在syslog用户(如Red Hat、CentOS和SUSE),执行下列命令创建syslog用户,添加到adm组:
  9. useradd syslog
  10. groupadd adm
  11. 设置Cloud-Init相关服务为开机自启动。
    o 若操作系统是sysvinit自启动管理服务,则执行以下命令进行设置。

chkconfig --add cloud-init-local; chkconfig --add cloud-init; chkconfig --add cloud-config; chkconfig --add cloud-final

chkconfig cloud-init-local on; chkconfig cloud-init on; chkconfig cloud-config on; chkconfig cloud-final on

service cloud-init-local status; service cloud-init status; service cloud-config status; service cloud-final status

o 若操作系统是systemd自启动管理服务,则执行以下命令进行设置。

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

systemctl status cloud-init-local.service cloud-init.service cloud-config.service cloud-final.service

  1. 执行如下命令检查Cloud-Init是否安装成功。
    cloud-init -v
    cloud-init init --local
    回显信息如下所示表示安装Cloud-Init成功
    cloud-init 0.7.6
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装Cloud-Init工具 的相关文章

  • GoogleCloudMessaging - InstanceID.getInstance(),从客户端注册

    我对 Java 编程和一般编程还很陌生 现在我决定制作自己的应用程序 该应用程序应该利用 Google Cloud Messaging 不知怎的 我成功了 但后来我意识到我使用了方法 String regid gcm register PR
  • 将 TF.exe 与 Team Foundation Service 结合使用?

    我们正在将构建从 Team Build Team Foundation Service 转移到使用 Jenkins CI 进行构建的本地构建机器 但是 我们仍然希望使用云进行源代码控制 所以现在我们需要访问云TFS来获取最新版本 Jenki
  • LXC 与 VM 的典型用例是什么?

    我正在尝试确定 LXC 容器何时是比使用完整虚拟机更好的选择 您是否有任何精确的用例可以以某种方式带来一些争论 LXC 是否更面向 PaaS 无需硬件控制即可运行应用程序 我们是否总是需要从 IaaS 角度使用虚拟机来控制基础设施 Rega
  • 在 Amazon EC2 Windows 实例中自动挂载 EBS 卷

    有谁知道如何自动挂载弹性块存储 http aws amazon com ebs 在 Amazon 中启动 Windows 2003 实例时的 EBS 卷弹性计算云 http aws amazon com ec2 EC2 Setup 确保 E
  • 更新 AWS S3 对象密钥(密钥名称)

    我需要重命名 AWS S3 存储桶中存储的大量文件 每个文件 对象将单独重命名 基于特定标准 没有通用的 前缀 后缀 我想出了 current filename 和 new filename 的列表 它们可以作为 bat 文件 队列在 CL
  • 混合 http/https 站点

    到目前为止 我的 https 部署通常涉及使用 https 对整个站点进行简单锁定 并在 Web 服务器上提供 http 到 https 的重定向 我现在计划拥有一个 ASP NET MVC 站点 在云上 其中包含 http 和 https
  • 直接调用__init__的目的是什么?

    我很难弄清楚我遇到的一些代码的用途 代码有一个类Foo 其中有一个 init 带有多个参数的方法 根据我迄今为止对 Python 的了解 通过调用Foo bar 它将将此字符串作为参数传递给 init 我认为这应该相当于构造函数 但我遇到的
  • Terraform - 我应该使用 user_data 还是 Provisioner 来引导资源?

    看来我可以使用user data使用模板文件或 远程执行 provisioner使用内联命令进行引导 那么哪一个被认为更惯用呢 你应该使用user data The 用户数据 http docs aws amazon com AWSEC2
  • 为什么有 2 种 AppFabric?

    我看到我们现在拥有 Windows Server AppFabric 和 Azure AppFabric 这只是 Microsoft 营销部门的命名空间冲突还是这些技术共享通用接口 有人告诉我 可以在本地生产服务器上使用 Azure App
  • H2“runscript”命令将所有表名变成大写

    我有一个 sql 脚本 它只是模式定义 该脚本是 mysql 哑巴的修改版本 去掉 h2 不喜欢的坏字符 脚本运行并将架构插入到 h2 数据库中 但问题是所有数据库名称均为大写 xyz 转换为 XYZ 我需要它们保持小写 因为我的应用程序正
  • 电子邮件解析云服务[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • V100 和 P100 在 Google Compute Engine 上的可用性

    描述 我刚刚尝试了一段时间 使用我的个人帐户设置或保留用于机器学习的虚拟机 我在 n1 上使用了几个月 具有大约 8 GB 或更多 GB RAM 以及用于机器学习的 P100 或 V100 现在尝试了至少一半具有 P100 V100 可用性
  • Coverage.py 无法发现子目录中没有 init.py 文件的测试

    当我运行 python 覆盖范围时 我总是需要一个空的 init py测试子目录中的文件以获得运行测试的覆盖范围 这是 python2 软件包的要求 但不是 python3 的要求 为了重现 我执行了以下操作 先决条件是 python3 p
  • 解析iOS SDK:从Xcode调用云函数

    Scenario我想在我的应用程序中使用这两个云函数 他们检查用户的在线状态 我想为每个用户设置一个布尔键 isOnline 如果用户在线 则设置为 是 如果用户不在线 则设置为 否 var moment require moment Pa
  • 使用 get/post 的免费云数据存储? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道还有其他类似的键 值存储http openkeyval org http openkeyval o
  • Docker 容器中的 LDAP 身份验证

    默认情况下 当Docker容器启动时 里面的用户是sudo I want 默认情况下将 sudo 用户锁定在容器中 在容器中使用 LDAP 身份验证而不是默认身份验证 当用户与映像一起提供时 或者在容器运行时由 sudo 用户创建 为此 我
  • Google Cloud Stackdriver 监控计算引擎磁盘使用情况

    我最近已经启动并运行了 Google 计算引擎实例 我探索了 Google Cloud stackdriver 用于监控 CPU 使用情况等 我已将 Stackdriver 代理安装到其中一个 Compute Engine 实例上进行测试
  • AWS SimpleDB 上属性的最大大小

    我正在构建一个移动应用程序 iPhone Android 并希望将应用程序数据存储到亚马逊的 SimpleDB 上 因为我们不想托管自己的服务器来提供这些服务 我已经浏览了所有文档 元素值的最大存储大小是 1024 字节 就我而言 我们需要
  • 不断收到错误消息,表示 localhost 的 Server App Engine Standard 无法启动

    当尝试在 Eclipse 中启动 Google 应用程序引擎项目时 我不断收到错误消息 指出本地主机上的服务器应用程序引擎标准无法启动 错误日志如下 以前有人遇到过这个问题吗 问题的原因是什么 WARNING An illegal refl
  • 不要覆盖 Azure Blob 存储

    我有一种将文件添加到 Azure Blob 存储的方法 问题是我试图指定一个条件 在该条件下它不会覆盖 blob 而只是添加到其中 我正在尝试使用参数访问条件 但是 VS 说这个方法不能采用两个参数 async void archiveNe

随机推荐

  • 单片机组合实验二——定时器,数码管显示

    题目 xff1a 两个数码管 xff0c K1 K2两个按键 xff0c 完成K1启动计数 xff0c K2暂停计数 xff0c 每一秒钟数码管增加1 xff0c 60秒钟后 xff0c 蜂鸣器响一声 xff0c 数码管回归0 xff0c
  • 串口控制蜂鸣器

    题目 xff1a 通过串口助手发送1 xff0c 蜂鸣器以400ms频率发声 xff1b 发送2 xff0c 以200ms频率发声 xff1b 发送3 xff0c 以100ms频率发声 xff1b 发送4 xff0c 蜂鸣器不发声 span
  • 51单片机——简易时钟

    代码 span class token macro property span class token directive keyword include span span class token string 34 reg51 h 34
  • 51单片机—按键控制点阵显示

    名称 xff1a 按键控制 8X8LED 点阵屏显 示图形 说明 xff1a 每次按下 K1 时 xff0c 会使 8X8LED 点阵屏循环显示不同图形 本例同时使用外部中断和定 时中断 span class token macro pro
  • 手把手入门stm32f4 (1)

    GPIO 1 一共有7组IO xff0c 每组有16个口 即一共有16 7 61 112个口 2 每个口基本上都可以触发中断 xff08 区别于51 xff0c 51只有P3 2 P3 2 xff09 3 共有8中输入输出模式 xff08
  • STM32F103 配置Systick

    Systick系统滴答时钟 Systick h ifndef SYSTICK H define SYSTICK H include 34 stm32f10x h 34 void SysTick Init void void Delay ms
  • 手把手入门STM32 ——步进电机操作

    Uln2003驱动五线四向布进电机 xff08 按一次按键步进电机约旋转60 xff09 Uln2003 h span class token macro property span class token directive keywor
  • java后端CRUD功能实现

    1 springboot框架建立 框架建立可参考以下博客 xff0c 需要把补充部分也完成 https blog csdn net daniaoxp article details 119811741 内容稍有不同 xff0c 还要做以下改
  • 基于comsol软件弯曲单模光纤模拟仿真

    在本节中 xff0c 主要基于实验室实际光纤单模圆柱光纤进行模拟 xff0c 与comsol案例库文件在分析过程和建模有些差异 xff1a 模拟主要通过以下三个步骤进行 xff1a 模型的几何构建 物理场的添加研究 结构处理分析来进行 下面
  • 为什么使用hdf5存取文件,速度却比使用csv存取文件的速度还慢?

    数据集大小 xff1a xff08 200000 9 22 43 200000 10 11 xff09 36 43 xff08 250000 9 22 43 250000 10 11 xff09 3 个数值 最初是用csv存这些数的 xff
  • 倒水问题(bfs)

    倒水问题 题目 xff1a 两个容量不同且互质的杯子相互倒水 xff08 相互倒水时必须将其中一个杯子倒水或者倒空 xff0c 不存在倒半杯的情况 xff0c 要不然谁也不能确定倒了多少升水不是 xff09 xff0c 直到倒出C升的水 题
  • bfs之走地图(迷宫)

    题目 xff1a 东东找妹纸 东东手里有一张神奇的地图 xff0c 通过地图可以找到妹子 xff01 地图显示 xff0c 0表示可以走 xff0c 1表示不可以走 xff0c 左上角是入口 xff0c 右下角是妹纸 xff0c 这两个位置
  • week2 实验总结(分辨烷烃基、算分、打牌)

    A题 xff1a 大家一起学化学 题目 xff1a 这个题目一定要注意啊 xff0c 各个原子的编号是没有顺序的 xff01 xff08 我因为读题不认真 xff0c 结果 xff09 思路 xff1a 首先 xff0c 观察这一些奇形怪状
  • CSP201512-3 画图(C++实现)

    题目 样例输入1 4 2 3 1 0 0 B 0 1 0 2 0 1 0 0 A 样例输出1 AAAA A A 样例输入2 16 13 9 0 3 1 12 1 0 12 1 12 3 0 12 3 6 3 0 6 3 6 9 0 6 9
  • week12 csp-m3 T4-咕咕东学英语

    题目 样例输入 5 AABBB 样例输出 6 思路 刚拿到这个题目的感觉就是懵 xff0c 非常懵 题目很简单 xff0c 但是怎么做呢 我们来分析一下 xff0c 什么样的字串是满足条件的呢 xff1f 在一个字串中 xff1a 如果字母
  • csp 201809-3元素选择器 C++

    思路 其实题目很简单 xff0c 就是很麻烦 要构建一个树形结构 xff0c 使用结构体对每个节点进行存储 只有直系的父辈才算祖先 xff08 伯父不算祖先 xff09 xff0c 在后代选择器中 node xff1a struct nod
  • csp-m4(TT数鸭子、ZJM抵御宇宙射线、宇宙狗的危机)

    A TT数鸭子 题目 样例输入 6 5 123456789 9876543210 233 6661 114514 样例输出 4 题目 这道题最大的难点 xff0c 在于读懂题目 xff01 xff01 数位中不同的数字是 xff1f 比如1
  • SDU-考试模测 T3

    题目 青蛙去找瓜瓜 xff0c 青蛙在1号位置 xff0c 瓜瓜在n号位置 青蛙一次可以走 k 步 xff0c 走1 k 步耗费的体力不同 问青蛙找到瓜瓜耗费的最小体力是多少 xff1f 输入 第一行输入n k op xff0c op 61
  • 阿里云物联网平台搭建

    https www aliyun com 打开网址 xff0c 注册账号 按下图一步步操作 首先需要开通 公共实例 xff0c 我以前就开通过 xff0c 因此只需点击进入即可 在 产品 下 创建产品 按照 步骤操作 xff0c 其中 并不
  • 安装Cloud-Init工具

    操作场景 为了保证使用私有镜像创建的新云服务器可以自定义配置 xff08 例如修改云服务器密码 xff09 xff0c 请在创建私有镜像前安装Cloud Init工具 Linux操作系统安装Cloud Init工具时需要从官网下载并安装 x