7.8. Cloud-Init을 사용하여 가상 머신 설정 자동화
Cloud-Init은 호스트 이름, 네트워크 인터페이스, 그리고 인증키를 설정하는 것과 같은 가상 머신 초기 설정을 자동화하는 도구입니다. 이 도구를 사용하면 템플릿을 바탕으로 배포된 가상 머신에 대한 프로비저닝을 할 때 네트워크 충돌을 방지할 수 있습니다.
이 도구를 사용하려면 우선 cloud-init 패키지가 가상 머신에 설치되어 있어야 합니다. 설치 후 부팅 시 Cloud-Init 서비스가 시작되어서 설정 대상에 대한 지시사항을 찾게 됩니다. 한 번 실행 창에 있는 옵션을 사용하여 이러한 지시사항을 한 번만 주도록 설정할 수도 있고, 혹은 새 가상 머신 창, 가상 머신 편집 창 그리고 템플릿 수정 창에 있는 옵션을 사용하여 가상 머신이 시작할 때마다 이러한 지시사항을 주도록 설정할 수도 있습니다.
7.8.1. Cloud-Init 사용 예 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
Cloud-Init을 사용하여 다양한 상황에서 가상 머신 설정을 자동화할 수 있습니다. 몇 가지 일반적인 예는 다음과 같습니다:
- 템플릿을 기반으로 생성된 가상 머신
- 한 번 실행 창의 초기 실행 부분에 있는 Cloud-Init 옵션을 사용하여 템플릿을 바탕으로 생성된 가상 머신을 초기화할 수 있습니다. 이를 통해 가상 머신을 처음 시작했을 때 그 가상 머신을 사용자 정의할 수 있습니다.
- 가상 머신 템플릿
- 새 템플릿 및 템플릿 수정 창의 Cloud-Init/Sysprep 사용 옵션을 사용해서 그 템플릿을 바탕으로 생성된 가상 머신을 사용자 정의하기 위한 옵션을 지정할 수 있습니다.
- 가상 머신 풀
- 새 풀 창의 초기 실행 부분에 있는 Cloud-Init/Sysprep 사용 옵션을 사용해서 그 가상 머신 풀에서 가져온 가상 머신을 사용자 정의하기 위한 옵션을 지정할 수 있습니다. 이를 통해 그 가상 머신 풀에서 가상 머신을 가져올 때마다 적용되는 일반적인 설정의 모음을 지정할 수 있습니다. 가상 머신의 기반이 되는 템플릿에 지정된 옵션을 상속하거나 덮어쓰기할 수도 있고, 가상 머신 풀 자체에 대한 옵션을 지정할 수도 있습니다.
7.8.2. Cloud-Init 설치 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
다음 부분에서는 가상 머신에 Cloud-Init 설치방법이 설명되어 있습니다. Cloud-Init 설치 후 그 가상 머신을 바탕으로 템플릿을 생성할 수 있습니다. 이 템플릿을 바탕으로 생성된 가상 머신은 부팅 시 호스트 이름, 시간대, root 암호, 인증키, 네트워크 인터페이스, DNS 서비스 등을 설정하는 것과 같은 Cloud-Init 기능을 활용할 수 있습니다.
절차 7.12. Cloud-Init 설치
- 가상 머신에 로그인합니다.
- 필요한 리포지터리를 활성화합니다:
- Red Hat Enterprise Linux 6:
# subscription-manager repos --enable=rhel-6-server-rpms # subscription-manager repos --enable=rhel-6-server-rh-common-rpms - Red Hat Enterprise Linux 7:
# subscription-manager repos --enable=rhel-7-server-rpms # subscription-manager repos --enable=rhel-7-server-rh-common-rpms
- cloud-init 패키지 및 관련 패키지를 설치합니다:
# yum install cloud-init
7.8.3. Cloud-Init을 사용하여 템플릿 준비 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
cloud-init 패키지가 Linux 가상 머신에 설치되어 있는 한 그 가상 머신을 사용해서 cloud-init 사용이 가능한 템플릿을 만들 수 있습니다. 템플릿에 일반 설정의 모음을 지정하기 위해 다음의 절차를 따르거나, 또는 다른 방법으로 Cloud-Init 설정 단계를 건너뛰고 이 템플릿을 바탕으로 가상 머신을 생성할 때 설정을 합니다.
참고
다음의 절차에서 템플릿 준비 시 Cloud-Init를 사용하는 방법이 설명되어 있는데 이와 동일한 설정은 새 가상 머신, 템플릿 편집, 그리고 한 번 실행 창에서도 볼 수 있습니다.
절차 7.13. Cloud-Init을 사용하여 템플릿 준비
- 가상 머신 탭을 클릭하고 가상 머신을 선택합니다.
- 을 클릭합니다.
- 초기 실행 탭을 클릭하고 Cloud-Init/Sysprep 사용 체크 상자를 선택합니다.
- 가상 머신의 호스트 이름 텍스트 필드에 호스트 이름을 입력합니다.
- 시간대 설정 체크 상자를 선택하고 시간대 드롭 다운 목록에서 시간대를 선택합니다.
- 인증 항목을 확장하고 이미 설정된 암호를 사용 체크 상자를 선택해서 기존 인증정보를 사용하거나, 또는 이 체크 상자를 선택 해제하고 암호 및 암호 확인 텍스트 필드에 root 암호를 입력해서 새로운 root 암호를 지정합니다.
- 해당사항이 있는 경우, 가상 머신의 인증된 호스트 파일에 추가할 SSH 키를 SSH 인증키 텍스트 상자에 입력합니다.
- SSH 키 재생성 체크 상자를 선택하여 가상 머신의 SSH 키를 다시 생성합니다.
- 네트워크 항목을 확장하고 모든 DNS 서버를 DNS 서버 텍스트 필드에 입력합니다.
- 모든 DNS 검색 도메인을 DNS 검색 도메인 텍스트 필드에 입력합니다.
- 네트워크 체크 상자를 선택하고 및 버튼을 사용하여 가상 머신에 네트워크 인터페이스를 추가/제거합니다.
- 사용자 지정 스크립트 항목을 확장하고 모든 사용자 정의 스크립트를 사용자 지정 스크립트 텍스트 필드에 입력합니다.
- 를 클릭합니다.
- 을 클릭하고 필요한 항목을 입력합니다.
- 를 클릭합니다.
이제 이 템플릿을 사용하여 새로운 가상 머신을 구축할 수 있습니다.
7.8.4. Cloud-Init을 사용하여 가상 머신 초기화하기 링크 복사링크가 클립보드에 복사되었습니다!
링크 복사링크가 클립보드에 복사되었습니다!
Cloud-Init을 사용하여 Linux 가상 머신의 초기 설정을 자동화할 수 있습니다. Cloud-Init 필드를 사용해서 가상 머신의 호스트 이름, 시간대, root 암호, 인증키, 네트워크 인터페이스, 그리고 DNS 서비스를 설정할 수 있습니다. 사용자 정의 스크립트인 YAML 포맷의 스크립트가 부팅 시 실행되도록 지정할 수도 있습니다. 사용자 정의 스크립트를 사용하면 Cloud-Init 지원은 되지만 Cloud-Init 필드에서는 사용 가능하지 않은 추가적인 Cloud-Init 설정을 할 수 있습니다. 사용자 정의 스크립트의 예는 Cloud config examples에서 참조하시기 바랍니다.
절차 7.14. Cloud-Init을 사용하여 가상 머신 초기화하기
다음 절차에서는 일련의 Cloud-Init 설정을 사용하여 가상 머신을 시작합니다. 가상 머신이 바탕으로 하는 템플릿에 관련 설정이 포함되어 있는 경우, 설정을 확인하고 필요 시 설정을 변경한 후 를 클릭하여 가상 머신을 시작합니다.
- 가상 머신 탭을 클릭하고 가상 머신을 선택합니다.
- 을 클릭합니다.
- 초기 실행 항목을 확장하고 Cloud-Init 체크 상자를 선택합니다.
- 가상 머신의 호스트 이름 텍스트 필드에 호스트 이름을 입력합니다.
- 시간대 설정 체크 상자를 선택하고 시간대 드롭 다운 메뉴에서 시간대를 선택합니다.
- 이미 설정된 암호를 사용 체크 상자를 선택해서 기존 인증정보를 사용하거나, 또는 이 체크 상자를 선택 해제하고 암호 및 암호 확인 텍스트 필드에 root 암호를 입력해서 새로운 root 암호를 지정합니다.
- 해당사항이 있는 경우, 가상 머신의 인증된 호스트 파일에 추가할 SSH 키를 SSH 인증키 텍스트 상자에 입력합니다.
- SSH 키 재생성 체크 상자를 선택하여 가상 머신의 SSH 키를 다시 생성합니다.
- 모든 DNS 서버를 DNS 서버 텍스트 필드에 입력합니다.
- 모든 DNS 검색 도메인을 DNS 검색 도메인 텍스트 필드에 입력합니다.
- 네트워크 체크 상자를 선택하고 + 및 - 버튼을 사용하여 가상 머신에 네트워크 인터페이스를 추가/제거합니다.
- 사용자 지정 스크립트 텍스트 필드에 사용자 정의 스크립트를 입력합니다. 스크립트에 지정한 값이 올바른지 확인합니다. 그렇지 않은 경우 이 작업이 실패하게 됩니다.
- 를 클릭합니다.
참고
가상 머신에 Cloud-Init이 설치되어 있는지 확인하려면 가상 머신을 선택하고 하위 탭을 클릭합니다. 게스트 에이전트가 설치된 경우에만 표시됩니다.