IBM Cloud Docs
Ansible 설치 및 구성하기

Ansible 설치 및 구성하기

이전 단계에서 자동화 서버가 프로비저닝되고 초기 운영 체제 구성이 완료되었습니다. 이 단계에서는 다음 작업이 구현됩니다:

  1. 설치하기 Ansible.
  2. Ansible 컬렉션 추가.
  3. Ansible 인벤토리 파일 만들기.
  4. Ansible 볼트를 사용하여 파일 암호화하기.
  5. 연결 테스트하기.

Ansible NSX-T 컬렉션을 설치합니다 에 선택적 단계가 포함됩니다. 선택적 단계는 샌드박스를 만드는 데 Ansible®을 사용하는 경우에만 필요합니다.

Ansible 설치하기

자동화 서버의 명령줄에서 다음 명령을 실행합니다.

sudo apt update
sudo apt install ansible -y
sudo apt install python3-pip -y
ansible --version

이러한 명령은 다음 항목에 사용됩니다:

  • 시스템의 패키지 색인을 새로 고칩니다.
  • Ansible® 소프트웨어를 설치합니다.
  • WinRM을 Ansible과 함께 사용하는 경우 필요한 pip 패키지를 설치합니다.
  • Ansible이 설치되어 있는지 확인합니다.

Ansible 컬렉션 추가하기

Ansible 컬렉션은 추가 모듈입니다. 이 배포에서는 다음 명령을 사용하여 필요한 컬렉션을 추가합니다:

ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install ansible.windows
ansible-galaxy collection install community.windows
ansible-galaxy collection install juniper.device
ansible-galaxy collection install junipernetworks.junos

juniper.devicejunipernetworks.junos 컬렉션은 격리된 복구 환경을 구축하는 경우에만 필요합니다.

Ansible 인벤토리 파일 만들기

  1. Ansible 파일의 디렉토리 구조를 만들고 초기 인벤토리 파일을 생성하여 Ansible 호스트에 대한 Ansible 연결을 테스트합니다. ansible 사용자로 연결된 경우 다음 명령을 사용합니다:

    sudo mkdir /swlib
    sudo mkdir /swlib/ansible
    
  2. 두 개의 그룹이 있는 hosts 이라는 인벤토리 파일을 만듭니다: [LHBR] 및 [VBR], Linux® 강화된 리포지토리 및 Veeam® 백업 서버의 IP 주소 또는 FQDN으로 구성됩니다:

    touch /swlib/ansible/hosts
    vi /swlib/ansible/hosts
    

예제

변경 불가능한 백업을 위한 hosts 파일입니다.

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

격리된 복구 환경용 hosts 파일입니다.

[lhbr]
lhbr01.test.ibmcloud.local ansible_user=root

[vbr]
prodbackup ansible_host=10.38.207.157 ansible_user=sa-ansible ansible_connection=winrm ansible_winrm_server_cert_validation=ignore

[vsrx]
gateway01 ansible_host=10.5.37.138 ansible_user=sa-ansible

Ansible 볼트를 사용하여 파일 암호화하기

Ansible 볼트를 사용하면 값과 데이터 구조를 암호화하여 비밀번호나 개인 키처럼 공개적으로 표시되지 않지만 Ansible 재생을 성공적으로 실행하는 데 필요한 민감한 데이터를 보호할 수 있습니다. Ansible는 키가 제공되면 런타임에 볼트 암호화 콘텐츠를 자동으로 복호화합니다.

Vault는 파일 단위로 세분화되어 구현되므로 파일이 완전히 암호화되거나 암호화되지 않습니다. AES256 알고리즘을 사용하여 사용자가 제공한 비밀번호로 키가 설정된 대칭 암호화를 제공합니다. 콘텐츠 암호화와 암호 해독에 동일한 비밀번호가 사용됩니다. ansible-vault 명령은 처음에 파일을 암호화하는 데 사용된 다음 데이터를 보거나 편집하거나 암호를 해독하는 데 사용됩니다.

  • hosts 파일과 볼트 비밀번호 파일의 위치를 자세히 설명하는 Ansible 구성 파일을 만듭니다.
  • group_vars/vbr.yml 이라는 파일을 만들고 암호화하여 sa-ansible 사용자가 Veeam 백업 서버에 액세스할 수 있는 비밀번호를 보관합니다. Veeam 백업 서버의 비밀번호가 여기에 있는 이유는 ansible vbr -m win_ping 명령이 작동하도록 하기 위해서입니다.
  • 강화된 백업 저장소 및 선택적으로 vSRX 어플라이언스의 비밀번호를 포함하는 vault 이라는 파일을 생성하고 암호화합니다.

vault_pass 파일 사용은 선택 사항으로, 볼트 비밀번호가 저장된 파일을 만들고 보호하는 작업입니다. 이 작업을 수행하지 않기로 선택한 경우, Ansible 명령을 실행할 때 프롬프트에 비밀번호를 입력해야 합니다.

  1. 볼트 비밀번호를 입력하라는 메시지가 표시되지 않도록 하려면 다음 명령을 입력하세요:

    touch ~/.vault_pass
    vi ~/.vault_pass
    
  2. 볼트에 사용할 비밀번호를 입력하고 파일을 저장합니다.

  3. ansible 사용자만 chmod 600 ~/.vault_pass 을 읽거나 쓸 수 있도록 권한을 변경합니다.

  4. Ansible 구성 파일을 만듭니다:

    cd /swlib/ansible
    touch ansible.cfg
    vi ansible.cfg
    
  5. 그런 다음 파일에 다음 텍스트를 사용합니다:

    [defaults]
    inventory = /swlib/ansible/hosts
    vault_password_file = ~/.vault_pass
    
  6. Windows® 서버 비밀번호를 암호화된 파일에 저장해야 합니다. Ansible는 그룹_변수 및 호스트_변수라는 디렉터리에서 변수가 포함된 파일을 자동으로 읽고 파일 이름으로 그룹 및 호스트와 연결합니다. 다음 명령은 인벤토리 파일에 있는 vbr 그룹 [vbr]와 일치하는 vbr.yml 이라는 암호화된 파일을 생성합니다.

    mkdir group_vars
    ansible-vault create group_vars/vbr.yml
    
  7. 편집기에서 비밀번호를 입력합니다:

    ansible_password: <password>
    
  8. Esc:wq 를 눌러 종료합니다.

  9. 필요한 경우 다음 명령을 사용하여 파일을 수정할 수 있습니다:

    • ansible-vault edit group_vars/vbr.yml- 이 명령은 파일을 편집합니다.
    • ansible-vault decrypt group_vars/vbr.yml- 이 명령은 파일을 해독하여 다른 편집기를 사용하여 보거나 변경할 수 있도록 합니다(예: nano).
    • ansible-vault encrypt group_vars/vbr.yml- 이 명령은 파일을 보거나 변경한 후 파일을 암호화합니다.
  10. 다음 명령은 vault 이라는 암호화된 파일을 만듭니다: ansible-vault create vault.

  11. 편집기에서 다음 명령을 입력합니다. 여기서 <lhbr_password><sa_ansible_password> 는 계획 단계에서 정의한 비밀번호입니다.

vault_lhbr_password: <lhbr_password>
vault_sa_ansible_password: <sa_ansible_password>
  1. Esc:wq 를 눌러 종료합니다.

연결 테스트

다음 명령을 사용하여 연결을 테스트합니다:

ansible lhbr -m ping
ansible vbr -m win_ping

성공하면 출력에 각 명령에 대한 SUCCESS 이 표시됩니다.

Ansible NSX-T 컬렉션 설치하기

이 단계는 선택 사항이며, 샌드박스 구성에 Ansible를 사용하는 경우에만 필요합니다.

  1. Ansible 제어 노드에 ansible 사용자로 연결합니다.

  2. Python를 설치합니다: sudo pip3 install --upgrade pyvmomi pyvim requests.

  3. 다음 명령을 실행하여 다음 작업을 완료합니다:

    • 다운로드를 위한 폴더를 만듭니다.
    • Git 저장소를 복제하십시오.
    • Ansible 컬렉션을 빌드합니다.
    • 로컬로 빌드된 컬렉션을 설치합니다.
    cd /swlib
    mkdir downloads
    cd downloads
    git clone https://github.com/vmware/ansible-for-nsxt.git
    cd ansible-for-nsxt
    ansible-galaxy collection build
    ansible-galaxy collection install vmware-ansible_for_nsxt-1.0.0.tar.gz