tencent cloud

Cloud Virtual Machine

동향 및 공지
제품 동향
공용 이미지 업데이트 동향
운영 체제 공식 지원 종료 계획
제품 공지
제품 소개
CVM 개요
제품 장점
기본 개념
리전 및 가용존
신규 사용자 가이드
Service Regions and Service Providers
제품 요금
요금 개요
과금 방식
과금 항목
과금 방식 변경 개요
인스턴스 구매
사양 변경 요금 설명
연체 설명
빠른 시작
사용자 정의 Linux 인스턴스 구매
사용자 정의 Windows 인스턴스 구매
사용자 가이드
운영 가이드 개요
사용 제한 개요
인스턴스
스팟 인스턴스
예약 인스턴스
이미지
스토리지
백업 및 복구
네트워크
보안
비밀번호/키
모니터링 및 알람
운영 관리
편리한 기능
서버 마이그레이션
온라인 마이그레이션
마이그레이션 요금
장애 처리
CVM에 로그인할 수 없는 문제 처리 방법
Windows 인스턴스 로그인 관련 장애
Linux 인스턴스 로그인 관련 장애
기타 인스턴스 로그인 관련 장애
인스턴스 실행 장애
Linux 인스턴스 메모리 장애
네트워크 장애
실습 튜토리얼
CVM 선택 제안
환경 구축
웹사이트 구축
애플리케이션 구축
시각화 페이지 구축
로컬 파일을 CVM에 업로드
네트워크 성능 테스트
기타 실습 튜토리얼
API 참조
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
보안 및 컴플라이언스
Cloud Access Management(CAM)
네트워크
자주 묻는 질문
리전 및 가용존 문제
요금
인스턴스 문제
스토리지 문제
이미지 관련 문제
서버 마이그레이션 관련 문제
네트워크 관련 문제
보안 관련 문제
운영 체제 관련 문제
운영 및 모니터링 관련 문제
CAM 관련 문제
NTP 서비스 관련 문제
적용 시나리오 관련 문제
Agreements
CVM Service Level Agreements
Red Hat Enterprise Linux Image Service Agreement
Public IP Service Level Agreement
용어집

Linux 시스템 cloud-init 설치

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-07-14 15:21:34

작업 시나리오

Cloud-init를 사용하면 인스턴스를 처음 초기화하는 동안 구성을 사용자 정의할 수 있습니다. 가져온 이미지에 cloud-init 서비스가 설치되어 있지 않으면 이미지를 통해 부팅된 인스턴스를 제대로 초기화할 수 없습니다. 결과적으로 정상적인 이미지를 가져올 수 없습니다. 이 문서는 cloud-init 서비스를 설치하는 방법을 설명합니다. 다음 방법 중 하나를 사용하여 cloud-init를 설치할 수 있습니다.

주의 사항

Linux 이미지를 가져오기 전에 이미지에 cloud-init 서비스를 제대로 설치했는지 확인하십시오.

전제 조건

cloud-init 서비스가 설치된 서버가 공중망에 올바르게 액세스할 수 있어야 합니다.

작업 단계

cloud-init 바이너리 패키지 다운로드
cloud-init 소스 패키지 수동 다운로드
소프트웨어 소스에서 cloud-init 패키지 사용
설명:
cloud-init는 Tencent Cloud에서 재컴파일한 소프트웨어 패키지인 qcloud-python에 의존합니다. qcloud-python은 별도의 python 환경이며 cloud-init에만 사용됩니다. /usr/local/qcloud/python 디렉터리에 설치되며 시스템의 기본 python과 충돌하지 않습니다.
cloud-init는 커뮤니티 v20.1을 기반으로 Tencent Cloud에서 개발했습니다. Tencent Cloud 운영 환경에 적합합니다.
cloud-init 바이너리 패키지는 다음 OS를 지원합니다.
유형
OS
버전
x86_64
arm64
qcloud-python
cloud-init
qcloud-python
cloud-init
rpm
CentOS
7
8
Fedora
36
NA
NA
Kylin
20sp1
openSUSE
15.4
NA
NA
deb
Debian
11
10
NA
NA
9
NA
NA
8
NA
NA
Ubuntu
22.04
NA
NA
20.04
18.04
16.04
NA
NA

cloud-init 바이너리 패키지 다운로드

1. 설치 패키지를 다운로드합니다.
2. cloud-init가 이미 있는 경우 다음 명령을 실행하여 삭제합니다
rm -rf /var/lib/cloud
rm -rf /etc/cloud
rm -rf /usr/local/bin/cloud*
3. OS에 따라 다음 명령을 실행합니다.
deb 시리즈에서는 다음 명령어를 실행합니다.
dpkg -i *.deb
rpm 시리즈에서는 다음 명령어를 실행합니다.
rpm -ivh *.rpm
4. 버전이 제대로 설치되었는지 확인합니다
cloud-init qcloud -v
/usr/bin/cloud-init qcloud 0011
5. 재시작

cloud-init 소스 패키지 다운로드

설명:
정상 설치된 cloud-init-20.1.0011 버전이 Tencent Cloud와 최적의 호환성을 가지므로, 해당 버전의 이미지를 사용해 CVM을 생성하면 모든 구성 옵션이 정상적으로 초기화됩니다. 따라서 cloud-init-20.1.0011.tar.gz 버전 설치를 권장하며, 다른 버전의 cloud-init 소스 패키지도 다운로드할 수 있습니다. 본 문서는 cloud-init-20.1.0011 버전을 예시로 사용합니다.
다음 명령어를 실행하여 cloud-init 소스 패키지를 다운로드합니다.
wget https://gerryguan-1306210569.cos.ap-chongqing.myqcloud.com/cloud-init/src/cloud-init-20.1.0011.tar.gz

cloud-init 설치

1. 다음 명령어를 실행하여 cloud-init 설치 패키지를 압축 해제합니다.
설명:
사용 중인 운영 체제가 Ubuntu라면 root 계정으로 전환하시기 바랍니다.
tar -zxvf cloud-init-20.1.0011.tar.gz
2. 다음 명령어를 실행하여 압축 해제한 cloud-init 설치 패키지 디렉터리(즉 cloud-init-20.1.0011 디렉터리)로 이동합니다.
cd cloud-init
3. 운영 체제 버전에 맞는 Python-pip를 설치합니다.
CentOS 6/7 시리즈에서는 다음 명령어를 실행합니다.
yum install python3-pip -y
Ubuntu 시리즈에서는 다음 명령어를 실행합니다.
apt-get -y install python3-pip
설치 과정에서 설치할 수 없거나 설치 패키지를 찾지 못하는 오류가 발생하는 경우, Python-pip을 설치할 수 없는 문제 해결을 참조하여 처리하시기 바랍니다.
4. 다음 명령을 실행하여 pip를 업그레이드합니다.
python3 -m pip install --upgrade pip
5. 다음 명령어를 실행하여 종속 패키지를 설치합니다.
주의사항:
Cloud-init 종속 모듈 requests 2.20.0 버전 이후부터 Python2.6을 사용하지 않습니다. 이미지 환경의 Python 인터프리터가 Python2.6 이하일 경우, cloud-init 종속 패키지 설치 전에 pip install 'requests<2.20.0' 명령어를 실행하여 requests 2.20.0 이하 버전을 설치하시기 바랍니다.
pip3 install -r requirements.txt
6. 운영 체제 버전에 따라 cloud-utils 모듈을 설치합니다.
CentOS 6 시리즈에서는 다음 명령어를 실행합니다.
yum install cloud-utils-growpart dracut-modules-growroot -y
dracut -f
CentOS 7 시리즈에서는 다음 명령어를 실행합니다.
yum install cloud-utils-growpart -y
Ubuntu 시리즈에서는 다음 명령어를 실행합니다.
apt-get install cloud-guest-utils -y
7. 다음 명령어를 실행하여 cloud-init을 설치합니다.
python3 setup.py build
python3 setup.py install --init-system systemd
주의사항:
– –-init-system 의 선택 가능한 매개변수에는 (systemd, sysvinit, sysvinit_deb, sysvinit_freebsd, sysvinit_openrc, sysvinit_suse, upstart) [default: None]이 있습니다. 현재 운영 체제가 사용하고 있는 자동 실행 서비스 관리 방식에 따라 선택하시기 바랍니다. 잘못 선택할 경우 시작 시 cloud-init 서비스를 자동 실행할 수 없습니다.
centos6 이하 시스템은 sysvinit를 선택하고 centos7 이상 시스템은 systemd를 선택하십시오. 본문에서는 systemd 자체 실행 서비스 관리를 예시로 설명합니다.

cloud-init 구성 파일 수정

1. 운영 체제에 따라 적합한 cloud.cfg를 다운로드합니다.
Ubuntu 운영 체제의 cloud.cfg 다운로드.
CentOS 운영 체제의 cloud.cfg 다운로드.
2. /etc/cloud/cloud.cfg의 콘텐츠를 다운로드한 cloud.cfg 파일의 콘텐츠로 대체합니다.

syslog 사용자 추가

다음 명령어를 실행하여 syslog 사용자를 추가합니다.
useradd syslog

시작 시 cloud-init 서비스 자동 실행 설정

운영 체제가 systemd 자동 실행 관리 서비스인 경우 다음 명령어를 실행하여 설정합니다.
설명:
strings /sbin/init | grep "/lib/system" 명령을 수행할 수 있습니다. 반환되는 메시지가 있을 경우 운영 체제는 systemd 자동 실행 관리 서비스입니다.
Ubuntu 또는 Debian에서 다음 명령을 실행합니다.
ln -s /usr/local/bin/cloud-init /usr/bin/cloud-init
모든 운영 체제에서 다음 명령을 실행하십시오.
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
systemctl status cloud-init-local.service
systemctl status cloud-init.service
systemctl status cloud-config.service
systemctl status cloud-final.service
CentOS 또는 Redhat에서 다음 명령을 실행합니다. /lib/systemd/system/cloud-init-local.service의 콘텐츠를 다음으로 대체합니다.
[Unit]
Description=Initial cloud-init job (pre-networking)
Wants=network-pre.target
After=systemd-remount-fs.service
Before=NetworkManager.service
Before=network-pre.target
Before=shutdown.target
Conflicts=shutdown.target
RequiresMountsFor=/var/lib/cloud
[Service]
Type=oneshot
ExecStart=/usr/bin/cloud-init init --local
ExecStart=/bin/touch /run/cloud-init/network-config-ready
RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=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.service
Wants=sshd-keygen.service
Wants=sshd.service
After=cloud-init-local.service
After=systemd-networkd-wait-online.service
After=networking.service
After=systemd-hostnamed.service
Before=network-online.target
Before=sshd-keygen.service
Before=sshd.service
Before=systemd-user-sessions.service
Conflicts=shutdown.target
[Service]
Type=oneshot
ExecStart=/usr/bin/cloud-init init
RemainAfterExit=yes
TimeoutSec=0
# Output needs to appear in instance console output
StandardOutput=journal+console
[Install]
WantedBy=cloud-init.target
운영 체제가 sysvinit 자동 실행 관리 서비스인 경우 다음 명령어를 실행하여 설정합니다.
설명:
strings /sbin/init | grep "sysvinit" 명령을 수행할 수 있습니다. 반환되는 메시지가 있을 경우 운영 체제는 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

cloud-init 설치

다음 명령어를 실행하여 cloud-init을 설치합니다.
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 관련 설정에 성공했는지 점검합니다.
cloud-init init --local
다음과 유사한 정보가 반환되면 cloud-init가 성공적으로 설정된 것입니다.
Cloud-init v. 20.1.0011 running 'init-local' at Fri, 01 Apr 2022 01:26:11 +0000. Up 38.70 seconds.
2. 다음 명령어를 실행하여 cloudinit의 캐시 기록을 삭제합니다.
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/*

부록

Python-pip을 설치할 수 없는 문제 해결

Python-pip 설치 과정에서 설치할 수 없거나 설치 패키지를 찾지 못하는 오류가 발생하는 경우, 실제 사용 중인 운영 체제에 맞게 아래의 순서를 참고하여 처리하시기 바랍니다.
CentOS 6/7 시리즈 예시
Ubuntu 예시
1. 다음 명령어를 실행하여 EPEL 저장소를 설정합니다.
yum install epel-release -y
2. 다음 명령을 실행하여 Python-pip을 설치합니다.
yum install python3-pip -y
1. 다음 명령을 실행하여 캐시를 삭제합니다.
apt-get clean all
1. 다음 명령을 실행하여 소프트웨어 패키지 리스트를 업데이트하십시오.
apt-get update -y
2. 다음 명령을 실행하여 Python-pip을 설치합니다.
apt-get -y install python3-pip


도움말 및 지원

문제 해결에 도움이 되었나요?

피드백