

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# KVM 및 VMware에서 Amazon Linux 2023 NoCloud (`seed.iso`) `cloud-init` 구성
<a name="seed-iso"></a>

 이 섹션에서는 `seed.iso` 이미지를 생성하고 사용하여 KVM 또는 VMware에서 실행되는 Amazon Linux 2023을 구성하는 방법을 다룹니다. KVM 및 VMware 환경에는 [Amazon EC2 인스턴스 메타 데이터 서비스(IMDS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service)가 없기 때문에 Amazon Linux 2023을 구성하는 대체 방법이 필요합니다. `seed.iso` 이미지를 제공하는 것이 그러한 방법 중 하나에 해당합니다.

 `seed.iso` 부팅 이미지에는 네트워크 구성, 호스트 이름, 사용자 데이터 등 새 VM을 부팅하고 구성하는 데 필요한 기본 정보가 포함되어 있습니다.

**참고**  
 `seed.iso` 이미지에는 VM을 부팅하는 데 필요한 구성 정보만 있습니다. Amazon Linux 2023 운영 파일은 없습니다.

 `seed.iso` 부팅 이미지를 생성하려면 최소 구성 파일 두 개가 필요하며 세 개가 필요한 경우도 있습니다.

** `meta-data` **  
 이 파일에는 일반적으로 가상 머신의 호스트 이름이 있습니다.

** `user-data` **  
 이 파일로 사용자 계정, 암호, ssh 키 페어 및/또는 액세스 메커니즘을 구성합니다. 기본적으로 Amazon Linux 2 KVM 및 VMware 이미지로 `ec2-user` 사용자 계정을 생성합니다. `user-data` 구성 파일을 사용하여 기본 사용자 계정의 암호 및/또는 키를 설정합니다.

** `network-config` (선택 사항) **  
 이 파일은 일반적으로 가상 시스템의 네트워크 구성을 제공하여 기본 구성을 재정의합니다. 기본 구성은 사용 가능한 첫 번째 네트워크 인터페이스의 DHCP를 사용하는 것입니다.

**`seed.iso` 디스크 이미지 생성**

1. Linux 또는 macOS 컴퓨터에서 `seedconfig`라는 이름의 새 폴더를 만들어 이 폴더로 이동합니다.
**참고**  
 Windows 또는 다른 운영 체제에서도 가능하지만 `seed.iso` 이미지를 생성하려면 `mkisofs`와 동일한 도구가 있어야 합니다.

1. `meta-data` 구성 파일을 생성합니다.

   1. `meta-data`라는 이름의 새로운 파일을 만듭니다.

   1.  원하는 편집기에서 `meta-data` 파일을 열어 다음 구문을 추가합니다. 여기서 {{vm-hostname}}을 VM 호스트 이름으로 바꾸어야 합니다.

      ```
      #cloud-config
      local-hostname: {{vm-hostname}}
      ```

   1. `meta-data` 구성 파일을 저장하고 닫습니다.

1. `user-data` 구성 파일을 생성합니다.

   1. `user-data`라는 이름의 새로운 파일을 만듭니다.

   1.  원하는 편집기에서 `user-data` 파일을 열고 필요에 따라 변경한 후 추가합니다.

      ```
      #cloud-config
      #vim:syntax=yaml
      users:
      # A user by the name 'ec2-user' is created in the image by default.
        - default
        - name: ec2-user
      ssh_authorized_keys:
        - ssh-rsa {{ssh-key}}
      # In the above line, replace {{ssh key}} with the content of your ssh public key.
      ```

   1.  `user-data` 구성 파일에 사용자 계정을 더 추가할 수 있습니다.

       추가 사용자 계정, 계정 액세스 메커니즘, 암호 및 키 페어를 지정할 수 있습니다. 지원하는 지시어 대한 자세한 내용은 [업스트림 `cloud-init` 설명서](https://cloudinit.readthedocs.io/en/22.2/topics/format.html)를 참조하세요.

   1. `user-data` 구성 파일을 저장하고 닫습니다.

1. (선택 사항) `network-config` 구성 파일 생성

   1. `network-config`라는 명칭의 새로운 파일을 만듭니다.

   1.  원하는 편집기에서 `network-config` 파일을 열고 다음 구문을 추가합니다. 여기서 다양한 IP 주소를 설정에 적합한 주소로 바꾸어야 합니다.

      ```
      #cloud-config
      version: 2
      ethernets:
        enp1s0:
          addresses:
            - {{192.168.122.161/24}}
          gateway4: {{192.168.122.1}}
          nameservers:
            addresses: {{192.168.122.1}}
      ```
**참고**  
 `cloud-init` 네트워크 구성은 VM 구성에 따라 변경될 수 있는 인터페이스 이름을 지정하는 대신 인터페이스의 MAC 주소와 일치시키는 메커니즘을 제공합니다. 네트워크 구성을 위한 이 `cloud-init` 기능(및 기타 기능)은 [업스트림 `cloud-init` 네트워크 구성 버전2 설명서](https://cloudinit.readthedocs.io/en/22.2/topics/network-config-format-v2.html)에 자세히 설명되어 있습니다.

   1. `network-config` 구성 파일을 저장하고 닫습니다.

1.  이전 단계에서 만든 `meta-data`, `user-data` 및 `network-config`(옵션) 구성 파일로 `seed.iso` 디스크 이미지를 생성합니다.

    `seed.iso` 디스크 이미지를 만들 운영 체제에 따라 다음 중 하나를 수행합니다.
   +  Linux 시스템에서 **mkisofs** 또는 **genisoimage** 같은 도구를 사용하여 `seed.iso` 파일을 생성합니다. `seedconfig` 폴더로 이동하여 다음 명령을 실행합니다.

     ```
     $ mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data
     ```
   +  `network-config`를 사용하는 경우 **mkisofs** 간접 호출 시 포함시키세요. 

     ```
     $ mkisofs -output seed.iso -volid cidata -joliet -rock user-data meta-data network-config
     ```
   +  macOS 시스템에서 **hdiutil** 같은 도구를 사용하여 완성된 `seed.iso` 파일을 만들 수 있습니다. **hdiutil**은 파일 목록이 아닌 경로 이름을 사용하므로 `network-config` 구성 파일의 생성 여부에 관계없이 동일한 간접 호출을 사용할 수 있습니다.

     ```
     $ hdiutil makehybrid -o seed.iso -hfs -joliet -iso -default-volume-name cidata seedconfig/
     ```

1.  이제 생성된 `seed.iso` 파일을 가상 CD-ROM 드라이브를 통해 새 Amazon Linux 2023 가상 머신에 첨부하면 `cloud-init`가 처음 부팅 시 이를 찾아 시스템에 구성을 적용합니다.