Ansible Tower를 Cloud Assembly와 통합하여 배포된 리소스의 구성 관리를 지원할 수 있습니다. 통합을 구성한 후에는 클라우드 템플릿 편집기에서 Ansible Tower 가상 구성 요소를 새 배포 또는 기존 배포에 추가할 수 있습니다.

Cloud Assembly는 Ansible Tower 버전 3.5, 3.6 및 3.7과의 통합을 지원합니다.

또한 vSphere를 사용 중인 경우 클라우드 프록시를 설정해야 합니다.

사전 요구 사항

  • 관리자가 아닌 사용자에게 Ansible Tower에 액세스할 수 있는 적절한 권한을 부여합니다. 대부분의 구성에서 작동하는 옵션에는 두 가지가 있습니다. 구성에 가장 적합한 옵션을 선택합니다.
    • 조직 수준에서 인벤토리 관리자 및 작업 템플릿 관리자 역할을 사용자에게 부여합니다.
    • 특정 인벤토리에 대한 [관리자] 권한과 프로비저닝에 사용되는 모든 작업 템플릿에 대한 [실행] 역할을 사용자에게 부여합니다.
  • Ansible Tower에서 배포에 사용할 적절한 자격 증명 및 템플릿을 구성해야 합니다. 템플릿은 작업 템플릿 또는 워크플로 템플릿일 수 있습니다. 작업 템플릿은 배포에 사용할 인벤토리와 플레이 북을 정의합니다. 작업 템플릿과 플레이 북 간에는 1:1 매핑이 있습니다. 플레이 북은 YAML과 유사한 구문을 사용하여 템플릿과 연결된 작업을 정의합니다. 대부분의 일반적인 배포에서는 시스템 자격 증명을 사용하여 인증합니다.

    워크플로 템플릿을 사용하면 사용자가 하나의 단위로 실행할 수 있도록 함께 연결된 작업 템플릿, 프로젝트 동기화 및 인벤토리 동기화의 조합으로 구성된 시퀀스를 생성할 수 있습니다. Ansible Tower Workflow Visualizer는 사용자가 워크플로 템플릿을 설계하는 데 유용합니다. 대부분의 일반적인 배포의 경우, 시스템 자격 증명을 인증에 사용할 수 있습니다.

    1. Ansible Tower에 로그인하고 [템플릿] 섹션으로 이동합니다.
    2. [새 작업 템플릿 추가]를 선택합니다.
      • 이미 생성한 자격 증명을 선택합니다. Ansible Tower에서 관리할 시스템의 자격 증명입니다. 각 작업 템플릿에 대해 하나의 자격 증명 개체가 있을 수 있습니다.
      • [제한] 선택으로 [시작 메시지]를 선택합니다. 이렇게 하면 작업 템플릿이 Cloud Assembly에서 프로비저닝 또는 프로비저닝 해제되는 노드에 대해 실행됩니다. 이 옵션을 선택하지 않으면 작업 템플릿이 포함된 Blueprint가 배포될 때 "제한이 설정되지 않음" 오류가 표시됩니다.
    3. [새 워크플로 템플릿 추가]를 선택합니다.
      • 이미 생성한 자격 증명을 선택한 다음 인벤토리를 정의합니다. Workflow Visualizer를 사용하여 워크플로 템플릿을 설계합니다.

      워크플로 또는 작업 템플릿의 제한 상자에 대해 일반적으로 [시작 메시지]를 선택할 수 있습니다. 이렇게 선택하면 작업 또는 워크플로 템플릿이 Cloud Assembly에서 프로비저닝 또는 프로비저닝 해제되는 노드에 대해 실행됩니다.

  • [Ansible Tower 작업] 탭에서 Cloud Assembly로부터 호출된 작업 템플릿 또는 워크플로 템플릿의 실행을 볼 수 있습니다.

프로시저

  1. 인프라 > 연결 > 통합을 선택하고 통합 추가를 클릭합니다.
  2. [Ansible Tower]를 클릭합니다.
    [Ansible 구성] 페이지가 나타납니다.
  3. 호스트 이름(IP 주소일 수 있음)을 입력하고 Ansible Tower 인스턴스에 대한 기타 필수 정보를 입력합니다.
  4. 해당하는 Ansible Tower 인스턴스에 대한 UI 기반 인증 사용자 이름암호를 입력합니다.
  5. 클라우드 프록시가 필요한 경우 새 클라우드 프록시를 클릭하고 필요한 정보를 입력합니다. 일반적으로 클라우드 프록시는 vSphere를 사용 중인 경우에만 필요합니다. Cloud Assembly의 vCenter Server에 클라우드 프록시 추가 항목을 참조하십시오.
  6. 검증을 클릭하여 통합을 확인합니다.
  7. 통합을 위한 적합한 이름설명을 입력합니다.
  8. 추가를 클릭합니다.

결과

Ansible Tower를 클라우드 템플릿에서 사용할 수 있습니다.

다음에 수행할 작업

Ansible Tower 구성 요소를 원하는 클라우드 템플릿에 추가합니다. 통합 계정에 지정된 사용자에 대한 실행 권한이 있는 적용 가능한 작업 템플릿을 지정해야 합니다.

  1. 클라우드 템플릿 캔버스 페이지에서, Blueprint 옵션 메뉴의 [구성 관리] 머리글 아래에서 [Ansible]을 선택하고 Ansible Tower 구성 요소를 캔버스로 끕니다.
  2. 오른쪽 패널을 사용하여 적절한 Ansible Tower 속성을 구성합니다(예: 작업 템플릿).

클라우드 템플릿에 Ansible Tower 타일을 추가하면 vRealize Automation Cloud이 Ansible Tower에 연결된 가상 시스템용 호스트 항목을 생성합니다. 기본적으로 vRealize Automation Cloud은 가상 시스템 리소스 이름을 사용하여 호스트 항목을 생성하지만 Blueprint YAML의 hostName 속성을 사용하여 이름을 지정할 수 있습니다. 시스템과 통신하기 위해 vRealize Automation Cloud은 호스트 항목에 대해 호스트 변수 ansible_host: IP Address를 생성합니다. hostVariables 아래에 키워드 ansible_host를 지정하고 FQDN을 해당 값으로 제공하여 FQDN을 사용하는 통신을 구성하는 기본 동작을 재정의할 수 있습니다. 다음 YAML 코드 조각은 호스트 이름 및 FQDN 통신을 구성할 수 있는 방법의 예를 보여 줍니다.

Cloud_Ansible_Tower_1:
	type: Cloud Ansible Tower
	properties:
		host: name of host
		account: name of account
		hostName: resource name
		hostVariables:
			ansible_host:Host FQDN
			

이 예에서는 FQDN을 제공하여 기본 ansible_host 값을 재정의합니다. 이는 FQDN을 사용하여 Ansible Tower를 호스트 시스템에 연결하려는 사용자에게 유용할 수 있습니다.

YAML에 있는 hostVariables의 기본값은 ansible_host:IP_address이며 IP 주소가 서버와 통신하는 데 사용됩니다.

Ansible Tower 구성 요소를 클라우드 템플릿에 추가하고 클라우드 템플릿 YAML에서 호출할 특정 템플릿을 지정할 수 있습니다. 워크플로 템플릿이나 작업 템플릿과 워크플로 템플릿의 조합을 지정할 수도 있습니다. 템플릿 유형을 지정하지 않으면 기본적으로 vRealize Automation Cloud은 작업 템플릿을 호출하는 것으로 가정합니다.

다음 YAML 코드 조각은 Ansible Tower 클라우드 템플릿에서 작업 템플릿과 워크플로 템플릿의 조합을 호출할 수 있는 방법의 예를 보여줍니다.

Cloud_Ansible_1:
type: Cloud.Ansible.Tower
  properties:
    host: ‘${resource.CentOS_Machine.*}’
    account:
    maxConnectionRetries: 2
    maxJobRetries: 2
    templates:
      provision:
        - name: My workflow
          type: workflow
        - name: My job template      

Ansible 관련 오류를 처리하기 위해 maxConnectionsRetriesmaxJobRetries를 추가했습니다. 클라우드 템플릿은 사용자 지정 값을 수락하며, 제공된 값이 없는 경우 기본값을 사용합니다. maxConnectionRetries의 경우 기본값이 10이고 maxJobRetries의 경우 기본값은 3입니다.

참고: 이전 버전의 vRealize Automation Cloud은 클라우드 템플릿에서 jobTemplate 스키마를 사용하는 경우에만 작업 템플릿 실행을 지원했습니다. jobTemplate은 이제 더 이상 사용되지 않으며 향후 릴리스에서 제거될 수 있습니다. 지금은 jobTemplate 속성을 사용하면 예상대로 계속 작동합니다. 워크플로 템플릿을 실행하고 추가 기능을 사용하려면 템플릿 스키마를 사용하는 것이 좋습니다.

Ansible Tower 통합을 위한 Cloud Assembly 클라우드 템플릿에는 Ansible 템플릿이 실행되는 위치를 정의하는 useDefaultLimit 속성이 true 또는 false 값과 함께 포함됩니다. Ansible 템플릿은 작업 템플릿 또는 워크플로 템플릿일 수 있습니다. 이 값이 true로 설정되면 Ansible 템플릿 페이지의 제한 상자에 지정된 시스템에 대해 지정된 템플릿이 실행됩니다. 이 값이 false로 설정되면 프로비저닝된 시스템에 대해 템플릿이 실행되지만 Ansible Tower 템플릿 페이지에서 사용자가 [시작 메시지] 확인란을 선택해야 합니다. 기본적으로 이 속성의 값은 false입니다. 다음 YAML 예는 useDefaultLimits 속성이 클라우드 템플릿에 어떻게 나타나는지 보여줍니다.

templates:
  provision:
    - name: ping aws_credentials
      type: job
      useDefaultLimits: false
      extraVars: '{"rubiconSurveyJob" : "checkSurvey"}'

또한 앞의 예제에서 볼 수 있듯이 extraVars 속성을 사용하여 extra 변수나 survey 변수를 지정할 수 있습니다. 이 기능은 입력이 필요한 템플릿을 실행하는 데 유용할 수 있습니다. 사용자가 survey 변수를 유지한 경우 오류를 방지하려면 클라우드 템플릿의 extraVars 섹션에 변수를 전달해야 합니다.