cloud-init를 사용하여 Azure의 Linux VM에서 패키지 업데이트 및 설치

주의

이 문서에서는 EOL(수명 종료) 상태에 가까워진 Linux 배포판인 CentOS를 참조하세요. 이에 따라 사용 및 플랜을 고려하세요. 자세한 내용은 CentOS 수명 종료 지침을 참조하세요.

적용 대상: ✔️ Linux VM ✔️ 유연한 확장 집합

이 문서는 cloud-init를 사용하여 Azure의 프로비저닝 시간에 Linux 가상 머신(VM) 또는 가상 머신 확장 집합에 패키지를 업데이트하는 방법을 보여 줍니다. Azure에서 리소스가 프로비전되면 처음 부팅 시 이러한 cloud-init 스크립트가 실행됩니다. 기본적으로 cloud-init가 Azure에서 작동되는 방식과 지원되는 Linux 배포판에 대한 자세한 내용은 cloud-init 개요를 참조하세요.

cloud-init를 사용하여 VM 업데이트

보안상의 이유로 최초 부팅에서 최신 업데이트를 적용하도록 VM을 구성하려 할 수 있습니다. cloud-init는 다양한 Linux 배포에서 작동하므로 패키지 관리자에 대해 apt, zypper 또는 yum을 지정할 필요가 없습니다. 그 대신 package_upgrade를 지정하고 cloud-init 프로세스가 사용 중인 배포에 적합한 메커니즘을 판단하게 합니다.

이 예제에서는 Azure Cloud Shell을 사용합니다. 진행 중인 업그레이드 프로세스를 확인하려면 이름이 cloud_init_upgrade.txt인 파일을 만들고 다음 구성을 붙여넣습니다. 원하는 모든 편집기를 사용할 수 있습니다. 전체 cloud-init 파일, 특히 첫 줄이 올바르게 복사되었는지 확인합니다.

아래 텍스트를 복사하여 cloud_init_upgrade.txt 파일에 붙여넣습니다. 전체 cloud-init 파일, 특히 첫 줄이 올바르게 복사되었는지 확인합니다.

#cloud-config
package_upgrade: true
packages:
- httpd

배포하기 전에 az group create 명령을 사용하여 리소스 그룹을 만들어야 합니다. Azure 리소스 그룹은 Azure 리소스가 배포 및 관리되는 논리적 컨테이너입니다. 다음 예제에서는 eastus 위치에 myResourceGroup이라는 리소스 그룹을 만듭니다.

az group create --name myResourceGroup --location eastus

이제 az vm create로 VM을 만들고 다음과 같이 --custom-data 매개 변수로 cloud-init 파일을 지정합니다.

az vm create \
  --resource-group myResourceGroup \
  --name vmName \
  --image imageCIURN \
  --custom-data cloud_init_upgrade.txt \
  --admin-username azureuser \
  --generate-ssh-keys

참고 항목

myResourceGroup, vmName, imageCIURN 값을 적절하게 바꿉니다. Cloud-init가 포함된 이미지가 선택되어 있는지 확인합니다.

이전 명령에서 출력에 표시된 VM의 공용 IP 주소에 대한 SSH. 사용자 고유의 사용자publicIpAddress를 다음과 같이 입력합니다.

ssh <user>@<publicIpAddress>

패키지 관리 도구를 실행하여 업데이트를 확인합니다.

  • 다음 명령을 실행하여 보류 중인 업데이트가 없는지 확인합니다.
sudo yum check-update

cloud-init가 부팅 시 업데이트를 확인하여 설치했으므로 적용할 추가 업데이트가 없습니다.

  • 다음 명령을 실행하여 업데이트 프로세스, 변경된 패키지 수, httpd 설치를 확인하고 출력을 검토할 수 있습니다.
sudo yum history
ID     | Command line                                | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------------------------
     3 | -y install httpd                            | 2022-02-18 18:30 | Install        |    7
     2 | -y upgrade                                  | 2022-02-18 18:23 | I, O, U        |  321 EE
     1 |                                             | 2021-02-04 19:20 | Install        |  496 EE

다음 단계

구성 변경에 대한 추가 cloud-init 예제를 보려면 다음을 참조하세요.