详情页标题前

腾讯云轻量应用服务器Linux 实例安装 cloud-init云小二

详情页1

操作场景

Cloud-init 主要提供实例首次初始化时自定义配置的能力。本文档介绍如何在轻量应用服务器 Linux 实例上安装 cloud-init 服务。安装 cloud-init 推荐以下两种方式:通过 手工下载 cloud-init 源码包方式通过 使用软件源上的 cloud-init 包方式

前提条件

安装 cloud-init 的服务器可正常访问外网。

操作步骤

手工下载 cloud-init 源码包方式使用软件源上的 cloud-init 包方式

下载 cloud-init 源码包

说明在正常安装的情况下,cloud-init-17.1 版本与腾讯云的兼容性最佳,可以保证使用该镜像创建的轻量应用服务器的所有配置项都可以正常初始化。建议选择 cloud-init-17.1.tar.gz 安装版本。您也可以 点此获取 其他版本的 cloud-init 源码包。本文以 cloud-init-17.1 版本为例。如使用 cloud-init-17.1 或其他版本的 cloud-init 源码包安装不成功,您还可以通过 手工下载绿色版 cloud-init 包方式 进行安装。执行以下命令,下载 cloud-init 源码包。

sudo wget https://launchpad.net/cloud-init/trunk/17.1/+download/cloud-init-17.1.tar.gz

安装 cloud-init

1. 执行以下命令,解压 cloud-init 安装包。说明如果您使用的操作系统为 Ubuntu,请切换至 root 号。

sudo tar -zxvf cloud-init-17.1.tar.gz 

2. 执行以下命令,进入已解压的 cloud-init 安装包目录(即进入 cloud-init-17.1 目录)。

cd cloud-init-17.1

3. 根据操作系统版本,安装 Python-pip。CentOS 6/7系列,执行以下命令:

sudo yum install python-pip -y

Ubuntu 系列,执行以下命令:

sudo apt-get install python-pip -y

若在安装时,出现无法安装或找不到安装包的错误,可参考 解决无法安装 Python-pip 问题 进行处理。4. 执行以下命令,安装依赖包。注意Cloud-init 依赖组件 requests 2.20.0版本后,已弃用 Python2.6。如果镜像环境的 Python 解释器为 Python2.6及以下,在安装 cloud-init 依赖包之前,请执行 pip install 'requests<2.20.0' 命令,安装 requests 2.20.0 版本以下的版本。

sudo pip install -r requirements.txt

5. 根据操作系统版本,安装 cloud-utils 组件。CentOS 7系列,执行以下命令:

sudo yum install cloud-utils-growpart -y

Ubuntu 系列,执行以下命令:

sudo apt-get install cloud-guest-utils -y

6. 执行以下命令,安装 cloud-init。

sudo python setup.py build
sudo python setup.py install --init-system systemd

注意–init-system 的可选参数有:(systemd, sysvinit, sysvinit_deb, sysvinit_freebsd, sysvinit_openrc, sysvinit_suse, upstart) [default: None]。请根据当前操作系统使用的自启动服务管理方式,进行选择。若选择错误,cloud-init 服务会无法开机自启动。本文以 systemd 自启动服务管理为例。

修改 cloud-init 配置文件

1. 根据不同操作系统,下载 cloud.cfg。点此下载 Ubuntu 操作系统的 cloud.cfg。点此下载 CentOS 操作系统的 cloud.cfg。2. /etc/cloud/cloud.cfg 的内容替换为已下载的 cloud.cfg 文件内容。

添加 syslog 用户

执行以下命令,添加 syslog 用户。

sudo useradd syslog

设置 cloud-init 服务开机自启动

若操作系统是 systemd 自启动管理服务,则执行以下命令进行设置。说明您可执行 strings /sbin/init | grep "/lib/system" 命令,若有返回信息,则操作系统是 systemd 自启动管理服务。1. 针对 Ubuntu 或 Debian 操作系统,需执行以下命令。

 ln -s /usr/local/bin/cloud-init /usr/bin/cloud-init 

2. 所有操作系统都需执行以下命令。

sudo systemctl enable cloud-init-local.service sudo systemctl start cloud-init-local.servicesudo systemctl enable cloud-init.servicesudo systemctl start cloud-init.servicesudo systemctl enable cloud-config.servicesudo systemctl start cloud-config.servicesudo systemctl enable cloud-final.servicesudo systemctl start cloud-final.servicesudo systemctl status cloud-init-local.servicesudo systemctl status cloud-init.servicesudo systemctl status cloud-config.servicesudo systemctl status cloud-final.service

3. 针对 CentOS 和 Redhat 操作系统,需执行以下命令。
将 /lib/systemd/system/cloud-init-local.service 文件替换为如下内容:

[Unit]Description=Initial cloud-init job (pre-networking)Wants=network-pre.targetAfter=systemd-remount-fs.serviceBefore=NetworkManager.serviceBefore=network-pre.targetBefore=shutdown.targetConflicts=shutdown.targetRequiresMountsFor=/var/lib/cloud[Service]Type=oneshotExecStart=/usr/bin/cloud-init init --localExecStart=/bin/touch /run/cloud-init/network-config-readyRemainAfterExit=yesTimeoutSec=0# Output needs to appear in instance console outputStandardOutput=journal+console[Install]WantedBy=cloud-init.target

将 /lib/systemd/system/cloud-init.service 文件替换为以下内容:

[Unit]Description=Initial cloud-init job (metadata service crawler)Wants=cloud-init-local.serviceWants=sshd-keygen.serviceWants=sshd.serviceAfter=cloud-init-local.serviceAfter=systemd-networkd-wait-online.serviceAfter=networking.serviceAfter=systemd-hostnamed.serviceBefore=network-online.targetBefore=sshd-keygen.serviceBefore=sshd.serviceBefore=systemd-user-sessions.serviceConflicts=shutdown.target[Service]Type=oneshotExecStart=/usr/bin/cloud-init initRemainAfterExit=yesTimeoutSec=0# Output needs to appear in instance console outputStandardOutput=journal+console[Install]WantedBy=cloud-init.target

若操作系统是 sysvinit 自启动管理服务,则执行以下命令进行设置。说明您可执行 strings /sbin/init | grep "sysvinit" 命令,若有返回信息,则操作系统是 sysvinit 自启动管理服务。

chkconfig --add cloud-init-localchkconfig --add cloud-initchkconfig --add cloud-configchkconfig --add cloud-finalchkconfig cloud-init-local on chkconfig cloud-init on chkconfig cloud-config on chkconfig cloud-final on 

安装 cloud-init

执行以下命令,安装 cloud-init。

sudo apt-get/yum install cloud-init

说明通过 apt-get 或 yum 命令安装的 cloud-init 默认为当前操作系统配置的软件源中默认的 cloud-init 版本。使用该方式安装的镜像创建的实例可能会存在部分配置项初始化不符合预期的情况,建议使用 手工下载 cloud-init 源码包方式 进行安装。

修改 cloud-init 配置文件

1. 根据不同操作系统,下载 cloud.cfg。点此下载 Ubuntu 操作系统的 cloud.cfg。点此下载 CentOS 操作系统的 cloud.cfg。2. /etc/cloud/cloud.cfg 的内容替换为已下载的 cloud.cfg 文件内容。

相关操作

注意以下操作执行完成后,请勿重启服务器,否则需重新执行下以下操作。1. 执行以下命令,检查 cloud-init 相关配置是否成功。

sudo cloud-init init --local

返回类似如下信息,则说明已成功配置 cloud-init。

Cloud-init v. 20.1 running 'init-local' at Fri, 01 Apr 2022 01:26:11 +0000. Up 38.70 seconds.

2. 执行以下命令,删除 cloudinit 的缓存记录。

sudo rm -rf /var/lib/cloud

3. 针对 Ubuntu 或 Debian 操作系统,需执行以下命令。

rm -rf /etc/network/interfaces.d/50-cloud-init.cfg

4. 针对 Ubuntu 或 Debian 操作系统,需将 /etc/network/interfaces 修改为以下内容:

# This file describes the network interfaces available on your system# and how to activate them. For more information, see interfaces(5).source /etc/network/interfaces.d/*

附录

手工下载绿色版 cloud-init 包方式

若通过 手工下载 cloud-init 源码包方式 安装不成功,可通过以下操作进行安装:1. 点此获取 绿色版 cloud-init 包。2. 执行以下命令,解压绿色版 cloud-init 包。

tar xvf greeninit-x64-beta.tgz 

3. 执行以下命令,进入已解压的绿色版 cloud-init 包目录(即进入 greeninit 目录)。

cd greeninit

4. 执行以下命令,安装 cloud-init。

sh install.sh 

解决无法安装 Python-pip 问题

若在安装 Python-pip 出现无此安装包或无法安装的错误,可对应实际使用的操作系统,参考以下步骤进行解决:CentOS 6/7系列Ubuntu 系列1. 执行以下命令,设置 EPEL 存储库。

yum install epel-release -y

2. 执行以下命令,安装 Python-pip。

yum install python-pip -y

1. 执行以下命令,更新软件包列表。

apt-get update -y

2. 执行以下命令,安装 Python-pip。

apt-get install python-pip -y

后续操作

您可参考 如何确认 Linux 实例内部的 Cloud-Init 服务是否正常运行?,检查 Cloud-Init 是否正常运行。
轻量应用服务器官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/138872.html

(0)
上一篇 2023年12月9日 上午1:03
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云容器服务指定资源规格同尘科技

    TKE Serverless 集群支持 通过 Annotation 指定 及 通过 Request、Limit 自动计算 两种方式,指定为 Pod 分配的资源上限。您可选择其中一种方式进行配置。 通过 Annotation 指定 TKE Serverless 集群支持在工作负载 yaml 中以添加 template annotation 的方式,显式的指定 …

    腾讯云 2023年12月9日
  • 腾讯云对象存储获取私有M3U8

    功能描述 GetPrivateM3U8 接口用于获取私有 M3U8 ts 资源的下载授权。(此方式通过对象存储转发请求至数据万象)。 授权说明 授权策略中 action 设置为 ci:GetPrivateM3U8 。查看所有 action。 服务开通 使用该功能需提前开通数据万象,并绑定存储桶。详情请参见 绑定存储桶。 使用限制 使用该接口时,请先确认相关限…

    腾讯云 2023年12月9日
  • 腾讯云容器服务qGPU 概述同尘科技

    容器服务 GPU 虚拟化 腾讯云 Tencent Kubernetes Engine qGPU 服务(以下简称 TKE qGPU)是腾讯云针对 原生节点 推出的 GPU 容器虚拟化产品,支持多个容器共享 GPU 卡并支持容器间算力和显存精细隔离,同时提供业界唯一的在离线混部能力,在精细切分 GPU 资源的基础上,在最大程度保证业务稳定的前提下,提高 GPU …

    2023年12月9日
  • 腾讯云原生分布式云中心购买指南同尘

    云原生分布式云中心(Tencent Kubernetes Engine Distributed Cloud Center, TDCC)服务目前正在内测中,如需使用请提交 内测申请,审核通过后,即可使用产品,如有其他问题,可以 联系我们 进行咨询。您理解并同意,在上述申请审核通过后,您可以免费使用云原生分布式云中心服务,即目前您开通或使用本服务,并不需向腾讯云…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储下载对象

    简介 本文档提供关于对象的下载操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 GET Object 下载对象 下载一个对象至本地 HEAD Object 查询对象元数据 查询对象的元数据信息 下载对象 下载接口支持暂停、恢复以及取消下载请求,同时支持断点下载功能。 示例代码: 下载对象 // 高级下载接口支持断点续传,所以会在下载…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。