빠른 시작: Azure의 Linux 가상 머신에 Ansible 설치Quickstart: Install Ansible on Linux virtual machines in Azure

Ansible을 사용하면 사용자 환경에서 리소스의 배포 및 구성을 자동화할 수 있습니다.Ansible allows you to automate the deployment and configuration of resources in your environment. 이 문서에서는 가장 일반적인 Linux 배포판 중 일부에 사용되는 Ansible을 구성하는 방법을 보여줍니다.This article shows how to configure Ansible for some of the most common Linux distros. 다른 배포판에 Ansible을 설치하려면 설치된 패키지를 해당 플랫폼에 맞게 조정합니다.To install Ansible on other distros, adjust the installed packages for your particular platform.

필수 조건Prerequisites

  • Azure 구독: Azure 구독이 아직 없는 경우 시작하기 전에 무료 계정 을 만듭니다.Azure subscription: If you don't have an Azure subscription, create a free account before you begin.
  • Linux 또는 Linux 가상 머신에 대한 액세스 권한 - Linux 머신에 액세스할 수 없는 경우 Linux 가상 머신을 만듭니다.Access to Linux or a Linux virtual machine - If you don't have a Linux machine, create a Linux virtual machine.

Azure Linux 가상 머신에 Ansible 설치Install Ansible on an Azure Linux virtual machine

Linux 가상 머신에 로그인하고, Ansible 설치 방법에 대한 단계에서 다음 배포판 중 하나를 선택합니다.Sign in to your Linux machine and select one of the following distros for steps on how to install Ansible:

CentOS 7.4CentOS 7.4

이 섹션에서는 Ansible을 사용하도록 CentOS를 구성합니다.In this section, you configure CentOS to use Ansible.

  1. 터미널 창을 엽니다.Open a terminal window.

  2. 다음 명령을 입력하여 Azure Python SDK 모듈에 필요한 패키지를 설치합니다.Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo yum check-update; sudo yum install -y gcc libffi-devel python-devel openssl-devel epel-release
    sudo yum install -y python-pip python-wheel
    
  3. 다음 명령을 입력하여 Ansible에 필요한 패키지를 설치합니다.Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. Azure 자격 증명을 만듭니다.Create the Azure credentials.

Ubuntu 16.04 LTSUbuntu 16.04 LTS

이 섹션에서는 Ansible을 사용하도록 Ubuntu를 구성합니다.In this section, you configure Ubuntu to use Ansible.

  1. 터미널 창을 엽니다.Open a terminal window.

  2. 다음 명령을 입력하여 Azure Python SDK 모듈에 필요한 패키지를 설치합니다.Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo apt-get update && sudo apt-get install -y libssl-dev libffi-dev python-dev python-pip
    
  3. 다음 명령을 입력하여 Ansible에 필요한 패키지를 설치합니다.Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. Azure 자격 증명을 만듭니다.Create the Azure credentials.

SLES 12 SP2SLES 12 SP2

이 섹션에서는 Ansible을 사용하도록 SLES를 구성합니다.In this section, you configure SLES to use Ansible.

  1. 터미널 창을 엽니다.Open a terminal window.

  2. 다음 명령을 입력하여 Azure Python SDK 모듈에 필요한 패키지를 설치합니다.Enter the following command to install the required packages for the Azure Python SDK modules:

    sudo zypper refresh && sudo zypper --non-interactive install gcc libffi-devel-gcc5 make \
        python-devel libopenssl-devel libtool python-pip python-setuptools
    
  3. 다음 명령을 입력하여 Ansible에 필요한 패키지를 설치합니다.Enter the following command to install the required packages Ansible:

    sudo pip install ansible[azure]
    
  4. 다음 명령을 입력하여 충돌하는 Python 암호화 패키지를 제거합니다.Enter the following command to remove conflicting Python cryptography package:

    sudo pip uninstall -y cryptography
    
  5. Azure 자격 증명을 만듭니다.Create the Azure credentials.

Azure 자격 증명 만들기Create Azure credentials

Ansible 자격 증명을 구성하려면 다음 정보가 필요합니다.To configure the Ansible credentials, you need the following information:

  • Azure 구독 IDYour Azure subscription ID
  • 서비스 주체 값The service principal values

Ansible Tower 또는 Jenkins를 사용하는 경우 서비스 주체 값을 환경 변수로 선언합니다.If you're using Ansible Tower or Jenkins, declare the service principal values as environment variables.

다음 방법 중 하나를 사용하여 Ansible 자격 증명을 구성합니다.Configure the Ansible credentials using one of the following techniques:

Ansible 자격 증명 파일 만들기 Create Ansible credentials file

이 섹션에서는 Ansible에 자격 증명을 제공하는 로컬 자격 증명 파일을 만듭니다.In this section, you create a local credentials file to provide credentials to Ansible.

Ansible 자격 증명 정의에 대한 자세한 내용은 Azure 모듈에 자격 증명 제공을 참조하세요.For more information about defining Ansible credentials, see Providing Credentials to Azure Modules.

  1. 개발 환경의 경우 다음과 같이 호스트 가상 머신에 credentials라는 파일을 만듭니다.For a development environment, create a file named credentials on the host virtual machine:

    mkdir ~/.azure
    vi ~/.azure/credentials
    
  2. 다음 줄을 파일에 추가합니다.Insert the following lines into the file. 자리 표시자를 서비스 주체 값으로 바꿉니다.Replace the placeholders with the service principal values.

    [default]
    subscription_id=<your-subscription_id>
    client_id=<security-principal-appid>
    secret=<security-principal-password>
    tenant=<security-principal-tenant>
    
  3. 파일을 저장하고 닫습니다.Save and close the file.

Ansible 환경 변수 사용Use Ansible environment variables

이 섹션에서는 서비스 주체 값을 내보내서 Ansible 자격 증명을 구성합니다.In this section, you export the service principal values to configure your Ansible credentials.

  1. 터미널 창을 엽니다.Open a terminal window.

  2. 다음과 같이 서비스 주체 값을 내보냅니다.Export the service principal values:

    export AZURE_SUBSCRIPTION_ID=<your-subscription_id>
    export AZURE_CLIENT_ID=<security-principal-appid>
    export AZURE_SECRET=<security-principal-password>
    export AZURE_TENANT=<security-principal-tenant>
    

구성 확인Verify the configuration

구성이 성공했는지 확인하려면 Ansible을 사용하여 Azure 리소스 그룹을 만듭니다.To verify the successful configuration, use Ansible to create an Azure resource group.

  1. Cloud Shell에서 이름이 rg.yml인 파일을 만듭니다.In Cloud Shell, create a file named rg.yml.

    code rg.yml
    
  2. 다음 코드를 편집기에 붙여 넣습니다.Paste the following code into the editor:

    ---
    - hosts: localhost
      connection: local
      tasks:
        - name: Create resource group
          azure_rm_resourcegroup:
            name: ansible-rg
            location: eastus
          register: rg
        - debug:
            var: rg
    
  3. 파일을 저장하고 편집기를 종료합니다.Save the file and exit the editor.

  4. 다음과 같이 ansible-playbook 명령을 사용하여 플레이북을 실행합니다.Run the playbook using the ansible-playbook command:

    ansible-playbook rg.yml
    

플레이북을 실행하면 다음 결과와 유사한 출력이 표시됩니다.After running the playbook, you see output similar to the following results:

PLAY [localhost] *********************************************************************************

TASK [Gathering Facts] ***************************************************************************
ok: [localhost]

TASK [Create resource group] *********************************************************************
changed: [localhost]

TASK [debug] *************************************************************************************
ok: [localhost] => {
    "rg": {
        "changed": true,
        "contains_resources": false,
        "failed": false,
        "state": {
            "id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/ansible-rg",
            "location": "eastus",
            "name": "ansible-rg",
            "provisioning_state": "Succeeded",
            "tags": null
        }
    }
}

PLAY RECAP ***************************************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0

다음 단계Next steps