Cloud Assembly는 배포의 구성 및 편차를 관리할 수 있도록 Puppet Enterprise, Ansible 오픈 소스 및 Ansible Tower와의 통합을 지원합니다.

Puppet 통합

Puppet 기반 구성 관리를 통합하려면 vSphere 워크로드가 있는 공용 또는 사설 클라우드에 유효한 Puppet Enterprise 인스턴스가 설치되어 있어야 합니다. 이 외부 시스템과 Cloud Assembly 인스턴스 간에 연결을 설정해야 합니다. 그런 다음 Puppet 구성 관리를 해당 Blueprint에 추가하여 Cloud Assembly에서 사용 가능하게 만들 수 있습니다.

Cloud Assembly Blueprint 서비스 Puppet 제공자는 배포된 계산 리소스에 Puppet 에이전트를 설치, 구성 및 실행합니다. Puppet 제공자는 다음 사전 요구 사항을 충족하는 SSH 및 WinRM 연결을 지원합니다.

  • SSH 연결:
    • 사용자 이름은 슈퍼 사용자 또는 NOPASSWD로 명령을 실행할 수 있는 sudo 권한을 가진 사용자여야 합니다.
    • 해당 사용자에 대해 requiretty를 사용하지 않도록 설정해야 합니다.
    • 배포 계산 리소스에서 cURL을 사용할 수 있어야 합니다.
  • WinRM 연결:
    • 배포 계산 리소스에서 PowerShell 2.0을 사용할 수 있어야 합니다.
    • vRealize Orchestrator 설명서에 명시된 대로 Windows 템플릿을 구성해야 합니다.

DevOps 관리자는 Puppet Master에 대한 연결을 관리하고 특정 배포에 Puppet 역할 또는 구성 규칙을 적용하는 작업을 수행합니다. 배포 후에는 구성 관리를 지원하도록 구성된 가상 시스템이 지정된 Puppet Master에 등록됩니다.

가상 시스템이 배포되면 사용자가 외부 시스템으로 Puppet Master를 추가 또는 삭제하거나 Puppet Master에 할당된 프로젝트를 업데이트할 수 있습니다. 아울러, 해당 사용자는 시스템이 더 이상 사용되지 않는 경우 Puppet Master에서 배포된 가상 시스템의 등록을 해제할 수 있습니다.

Ansible 오픈 소스 통합

Ansible 통합을 설정할 때 Ansible 설치 지침에 따라 Ansible 오픈 소스를 설치합니다. 설치에 대한 자세한 내용은 Ansible 설명서를 참조하십시오.

Ansible은 기본적으로 호스트 키 검사를 사용합니다. known_hosts 파일에 다른 키를 사용하여 호스트를 다시 설치하면 오류 메시지가 나타납니다. known_hosts 파일에 호스트가 나열되지 않으면 시작 시 키를 입력해야 합니다. /etc/ansible/ansible.cfg 또는 ~/.ansible.cfg 파일에서 다음 설정을 사용하여 호스트 키 확인을 사용하지 않도록 설정할 수 있습니다.
[defaults]
host_key_checking = False
localhost_warning = False
 
[paramiko_connection]
record_host_keys = False
 
[ssh_connection]
#ssh_args = -C -o ControlMaster=auto -o ControlPersist=60s
ssh_args = -o UserKnownHostsFile=/dev/null

호스트 키 검사 오류를 방지하려면 host_key_checkingrecord_host_keys를 False로 설정하고 ssh_args에 추가 옵션 UserKnownHostsFile=/dev/null을 설정합니다. 또한 인벤토리가 처음에 비어 있는 경우 Ansible은 호스트 목록이 비어 있음을 경고합니다. 이로 인해 플레이 북 구문 검사가 실패합니다.

Ansible Vault를 사용하면 암호 또는 키와 같은 중요한 정보를 일반 텍스트가 아닌 암호화된 파일에 저장할 수 있습니다. Vault는 암호로 암호화됩니다. Cloud Assembly에서, Ansible은 Vault를 사용하여 호스트 시스템에 대한 ssh 암호와 같은 데이터를 암호화합니다. 이는 Vault 암호 경로가 설정된 것으로 가정합니다.

ansible.cfg 파일을 수정하여 다음 형식으로 암호 파일의 위치를 지정할 수 있습니다.

vault_password_file = /path to/file.txt

Ansible이 암호를 자동으로 검색하도록 ANSIBLE_VAULT_PASSWORD_FILE 환경 변수를 설정할 수도 있습니다. 예를 들어 ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt와 같이 설정할 수 있습니다.

Cloud Assembly는 Ansible 인벤토리 파일을 관리하므로 Cloud Assembly 사용자가 인벤토리 파일에 대한 rwx 액세스 권한이 있는지 확인해야 합니다.

cat ~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/log.txt
Cloud Assembly 오픈 소스 통합으로 루트가 아닌 사용자를 사용하려는 경우 Cloud Assembly 오픈 소스 제공자가 사용하는 명령을 실행하려면 사용자에게 일련의 사용 권한이 필요합니다. 다음 명령은 사용자의 sudoers 파일에서 설정해야 합니다.
Defaults:myuser !requiretty
askpass 애플리케이션이 지정되지 않은 관리 그룹에 사용자가 속하지 않은 경우 사용자의 sudoers 파일에서 다음 명령을 설정합니다.
myuser ALL=(ALL) NOPASSWD: ALL

Ansible 통합을 설정하는 동안 오류가 발생하거나 다른 문제가 발생하면, Ansible 제어 시스템의 'cat~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/'에 있는 log.txt 파일을 참조하십시오.

Ansible Tower 통합

지원되는 운영 체제 유형
  • Red Hat Enterprise Linux 8.0 이상 64비트(x86)는 Ansible Tower 3.5 이상만 지원합니다.
  • Red Hat Enterprise Linux 7.4 이상 64비트(x86).
  • CentOS 7.4 이상 64비트(x86).

다음은 Ansible 타워 설치 중에 생성되는 샘플 인벤토리 파일입니다. Cloud Assembly 통합 사용을 위해 이를 수정해야 할 수 있습니다.

[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# pwd
 
/root/ansible-tower-install/ansible-tower-setup-bundle-3.5.2-1.el8
 
[root@cava-env8-dev-001359 ansible-tower-setup-bundle-3.5.2-1.el8]# cat inventory
 
[tower]
 
localhost ansible_connection=local
 
 
 
 
[database]
 
 
 
 
[all:vars]
 
admin_password='VMware1!'
 
 
 
 
pg_host=''
 
pg_port=''
 
 
 
 
pg_database='awx'
 
pg_username='awx'
 
pg_password='VMware1!'
 
 
 
 
rabbitmq_port=5672
 
rabbitmq_vhost=tower
 
rabbitmq_username=tower
 
rabbitmq_password='VMware1!'
 
rabbitmq_cookie=cookiemonster
 
 
 
 
# Needs to be true for fqdns and ip addresses
 
rabbitmq_use_long_name=false
 
 
 
 
# Isolated Tower nodes automatically generate an RSA key for authentication;
 
# To disable this behavior, set this value to false
 
# isolated_key_generation=true