자습서 - Ansible 을 사용 하 여 Azure 리소스 의 동적 인벤토리 구성 | Microsoft Docs 
 자습서 : Ansible 을 사용 하 여 Azure 리소스 의 동적 인벤토리 구성 Tutorial : Configure dynamic inventories of your Azure resources using Ansible 
 Ansible 은 다양 한 원본 ( Azure 와 같 은 클라우드 원본 포함 ) 에서 동적 인벤토리 로 인벤토리 정보 를 가져오 는 데 사용 할 수 있 습니다 . Ansible can be used to pull inventory information from various sources ( including cloud sources such as Azure ) into a dynamic inventory . 
 이 자습서 에서 는 Ansible 을 사용 하 여 다음 을 수행 합니다 . In this tutorial , Ansible is used to : 
 두 개 의 테스트 가상 머신 구성 Configure two test virtual machines . 
 가상 머신 중 하나 에 태그 지정 Tag one of the virtual machines 
 태그 가 지정 된 가상 머신 에 Nginx 설치 Install Nginx on the tagged virtual machines 
 구성 된 Azure 리소스 를 포함 하 는 동적 인벤토리 구성 Configure a dynamic inventory that includes the configured Azure resources 
 Azure 서비스 주체 : 서비스 주체 를 만들 고 , appId , displayName , password 및 tenant 값 을 기록 해 둡니다 . Azure service principal : Create a service principal , making note of the following values : appId , displayName , password , and tenant . 
 Azure Cloud Shell 구성 - Linux 가상 머신 에 액세스 할 수 없 는 경우 Ansible 을 사용 하 여 가상 머신 만들 기 Configure Azure Cloud Shell and - if you don ' t have access to a Linux virtual machine - create a virtual machine with Ansible . 
 테스트 VM 만들 기 Create the test VMs 
 이 자습서 의 가상 머신 을 보관 할 Azure 리소스 그룹 을 만듭니다 . Create an Azure resource group to hold the virtual machines for this tutorial . 
 이 단계 에서 만든 Azure 리소스 그룹 에 는 모두 소문자 로 구성 된 이름 이 있 어야 합니다 . The Azure resource group you create in this step must have a name that is entirely lower - case . 그렇 지 않 으면 동적 인벤토리 를 생성 하 지 못합니다 . Otherwise , the generation of the dynamic inventory will fail . 
 다음 방법 중 하나 를 사용 하 여 Azure 에 두 개 의 Linux 가상 머신 을 만듭니다 . Create two Linux virtual machines on Azure using one of the following techniques : 
 Ansible 플레이 북 - Azure 에서 Ansible 을 사용 하 여 기본 가상 머신 만들 기 문서 에서 Ansible 플레이 북 으로부터 가상 머신 을 만드 는 방법 을 보여 줍니다 . Ansible playbook - The article , Create a basic virtual machine in Azure with Ansible illustrates how to create a virtual machine from an Ansible playbook . 플레이 북 을 사용 하 여 두 개 의 가상 머신 중 하나 또는 둘 다를 정의 하 는 경우 암호 대신 SSH 연결 이 사용 되 는지 확인 합니다 . If you use a playbook to define one or both of the virtual machines , ensure that the SSH connection is used instead of a password . 
 Azure CLI - Cloud Shell 에서 다음 명령 을 각각 실행 하 여 두 가상 머신 을 만듭니다 . Azure CLI - Issue each of the following commands in the Cloud Shell to create the two virtual machines : 
 VM 에 태그 지정 Tag a VM 
 사용 자 정의 범주 별 로 태그 를 사용 하 여 Azure 리소스 를 구성 할 수 있 습니다 . You can use tags to organize your Azure resources by user - defined categories . 
 다음 az resource tag 명령 을 입력 하 여 ansible - inventory - test - vm 1 가상 머신 에 nginx 키 를 사용 한 태그 를 지정 합니다 . Enter the following az resource tag command to tag the virtual machine ansible - inventory - test - vm 1 with the key nginx : 
 동적 인벤토리 생성 Generate a dynamic inventory 
 가상 머신 이 정의 되 고 태그 가 지정 되 면 동적 인벤토리 를 생성 해야 합니다 . Once you have your virtual machines defined ( and tagged ) , it ' s time to generate the dynamic inventory . 
 Ansible 2 . 8 이전 버전 사용 Using Ansible version < 2 . 8 
 Ansible 은 Azure 리소스 의 동적 인벤토리 를 생성 하 는 azure _ rm . py 라는 Python 스크립트 를 제공 합니다 . Ansible provides a Python script named azure _ rm . py that generates a dynamic inventory of your Azure resources . 다음 단계 에서 는 azure _ rm . py 스크립트 를 사용 하 여 두 개 의 테스트 Azure Virtual Machines 에 연결 하 는 과정 을 안내 합니다 . The following steps walk you through using the azure _ rm . py script to connect to your two test Azure virtual machines : 
 GNU wget 명령 을 사용 하 여 azure _ rm . py 스크립트 를 검색 합니다 . Use the GNU wget command to retrieve the azure _ rm . py script : 
 chmod 명령 을 사용 하 여 azure _ rm . py 스크립트 에 대한 액세스 권한 을 변경 합니다 . Use the chmod command to change the access permissions to the azure _ rm . py script . 다음 명령 은 + x 매개 변수 를 사용 하 여 지정 된 파일 ( azure _ rm . py ) 의 실행 을 허용 합니다 . The following command uses the + x parameter to allow for execution ( running ) of the specified file ( azure _ rm . py ) : 
 ansible 명령 을 사용 하 여 리소스 그룹 에 연결 합니다 . Use the ansible command to connect to your resource group : 
 연결 되 면 다음 과 비슷 한 결과 가 표시 됩니다 . Once connected , you see results similar to the following output : 
 Ansible 2 . 8 부터 Ansible 은 Azure 동적 인벤토리 플러그 인 을 제공 합니다 . Starting with Ansible 2 . 8 , Ansible provides an Azure dynamic - inventory plugin . 다음 단계 는 이 플러그 인 을 안내 합니다 . The following steps walk you through using the plugin : 
 인벤토리 플러그 인 에 는 구성 파일 이 필요 합니다 . The inventory plugin requires a configuration file . 구성 파일 은 azure _ rm 으로 끝나 야 하 고 확 장명 이 yml 또는 yaml 이 어야 합니다 . The configuration file must end in azure _ rm and have an extension of either yml or yaml . 이 자습서 예제 에서 는 다음 플레이 북 을 myazure _ rm . yml 로 저장 합니다 . For this tutorial example , save the following playbook as myazure _ rm . yml : 
 다음 명령 을 실행 하 여 리소스 그룹 의 VM 을 Ping 합니다 . Run the following command to ping VMs in the resource group : 
 위 의 명령 을 실행 하 는 경우 다음 과 같 은 오류 가 나타날 수 있 습니다 . When running the preceding command , you could receive the following error : 
 " 호스트 키 확인 " 오류 가 발생 하 면 Ansible 구성 파일 에 다음 줄 을 추가 합니다 . If you do receive the " host - key verification " error , add the following line to the Ansible configuration file . Ansible 구성 파일 은 / etc / ansible / ansible . cfg 에 있 습니다 . The Ansible configuration file is located at / etc / ansible / ansible . cfg . 
 플레이 북 이 실행 되 면 다음 출력 과 비슷 한 결과 가 표시 됩니다 . When you run the playbook , you see results similar to the following output : 
 VM 태그 를 사용 하 도록 설정 Enable the VM tag 
 태그 를 설정 한 경우 태그 를 " 사용 하 도록 설정 " 해야 합니다 . Once you ' ve set a tag , you need to " enable " that tag . 태그 를 사용 하 도록 설정 하 는 한 가지 방법 은 export 명령 을 통해 환경 변수 AZURE _ TAGS 에 태그 를 내보내 는 것 입니다 . One way to enable a tag is by exporting the tag to an environment variable AZURE _ TAGS via the export command : 
 Ansible 2 . 8 이전 버전 을 사용 하 는 경우 다음 명령 을 실행 합니다 . If you ' re using Ansible < 2 . 8 , run the following command : 
 이제 하나 의 가상 머신 ( 태그 가 AZURE _ TAGS 환경 변수 로 내보낸 값 과 일치 하 는 가상 머신 ) 만 표시 됩니다 . You now see only one virtual machine ( the one whose tag matches the value exported into the AZURE _ TAGS environment variable ) : 
 태그 가 지정 된 VM 에 Nginx 설정 Set up Nginx on the tagged VM 
 태그 의 목적 은 가상 머신 의 하위 그룹 을 빠르 고 쉽 게 사용 할 수 있 도록 하 는 것 입니다 . The purpose of tags is to enable the ability to quickly and easily work with subgroups of your virtual machines . 예 를 들 어 nginx 태그 를 할당 한 가상 머신 에 만 Nginx 를 설치 하 려고 한다고 가정 해 보 겠 습니다 . For example , let ' s say you want to install Nginx only on virtual machines to which you ' ve assigned a tag of nginx . 다음 단계 에서 는 수행 하 는 방법 이 쉽 다는 것 을 보여 줍니다 . The following steps illustrate how easy that is to accomplish : 
 nginx . yml 파일 을 만듭니다 . Create a file named nginx . yml : 
 다음 샘플 코드 를 편집기 에 붙여 넣 습니다 . Paste the following sample code into the editor : 
 파일 을 저장 하 고 편집기 를 종료 합니다 . Save the file and exit the editor . 
 ansible - playbook 명령 을 사용 하 여 플레이 북 을 실행 합니다 . Run the playbook using the ansible - playbook command : 
 Ansible 2 . 8 이전 버전 : Ansible < 2 . 8 : 
 플레이 북 을 실행 하 면 다음 결과 와 유사 한 출력 이 표시 됩니다 . After running the playbook , you see output similar to the following results : 
 Nginx 설치 테스트 Test Nginx installation 
 이 섹션 에서 는 가상 머신 에 Nginx 가 설치 되 었 는지 테스트 하 는 한 가지 방법 을 설명 합니다 . This section illustrates one technique to test that Nginx is installed on your virtual machine . 
 az vm list - ip - addresses 명령 을 사용 하 여 ansible - inventory - test - vm 1 가상 머신 의 IP 주소 를 검색 합니다 . Use the az vm list - ip - addresses command to retrieve the IP address of the ansible - inventory - test - vm 1 virtual machine . 그런 다음 , 반환 된 값 ( 가상 머신 의 IP 주소 ) 은 가상 머신 에 연결 하 기 위한 SSH 명령 에 대한 매개 변수 로 사용 됩니다 . The returned value ( the virtual machine ' s IP address ) is then used as the parameter to the SSH command to connect to the virtual machine . 
 ansible - inventory - test - vm 1 가상 머신 에 연결 된 상태 에서 nginx - v 명령 을 실행 하 여 Nginx 가 설치 되 었 는지 확인 합니다 . While connected to the ansible - inventory - test - vm 1 virtual machine , run the nginx - v command to determine if Nginx is installed . 
 nginx - v 명령 이 실행 되 면 Nginx 가 설치 되 었 음 을 나타내 는 Nginx 버전 ( 두 번 째 줄 ) 이 표시 됩니다 . Once you run the nginx - v command , you see the Nginx version ( second line ) that indicates that Nginx is installed . 
 SSH 세션 의 연결 을 끊 으려면 < Ctrl > D 키보드 조합 을 누릅니다 . Click the < Ctrl > D keyboard combination to disconnect the SSH session . 
 ansible - inventory - test - vm 2 가상 머신 에 대해 앞 의 단계 를 수행 하 면 Nginx 를 얻 을 수 있 는 위치 를 나타내 는 정보 메시지 가 표시 됩니다 ( 현재 설치 되 어 있 지 않 음 을 나타냄 ) . Doing the preceding steps for the ansible - inventory - test - vm 2 virtual machine yields an informational message indicating where you can get Nginx ( which implies that you don ' t have it installed at this point ) :