Cloud Assembly는 Puppet Enterprise 구성 관리와의 통합을 지원합니다.

Cloud Assembly에 외부 시스템으로 Puppet Enterprise를 추가하면 기본적으로 모든 프로젝트에서 Puppet Enterprise를 사용할 수 있는데 이를 특정 프로젝트로 제한할 수 있습니다.

Puppet Enterprise를 통합을 추가하려면 마스터의 Puppet 마스터 이름과 마스터의 호스트 이름 또는 IP 주소가 있어야 합니다.

오류 또는 정보 용도로 Puppet 로그를 확인해야 하는 경우, 다음 위치에서 해당 로그를 찾을 수 있습니다.

설명 로그 위치
관련 이벤트 생성 및 설치에 대한 로그

배포된 시스템 `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`에 로그가 있습니다.

전체 로그는 log.txt 파일을 참조하십시오. 세부 Puppet 에이전트 로그에 대한 자세한 내용은 https://puppet.com/docs/puppet/4.8/services_agent_unix.html#logging을 참조하십시오.
Puppet 삭제 및 실행 관련 작업에 대한 로그 PE, `~/var/tmp/vmware/provider/user_defined_script/$(ls -t ~/var/tmp/vmware/provider/user_defined_script/ | head -1)/`에 로그가 있습니다. 전체 로그는 log.txt 파일을 참조하십시오.

프로시저

  1. 인프라 > 연결 > 통합을 선택하고 통합 추가를 클릭합니다.
  2. Puppet을 선택합니다.
  3. Puppet 구성 페이지에 필요한 정보를 입력합니다.
  4. 클라우드 프록시가 필요한 경우 새 클라우드 프록시를 클릭하고 필요한 정보를 입력합니다. 일반적으로 클라우드 프록시는 vSphere를 사용 중인 경우에만 필요합니다. Cloud Assembly의 vCenter Server에 클라우드 프록시 추가 항목을 참조하십시오.
  5. 검증을 클릭하여 통합을 확인합니다.
  6. 추가를 클릭합니다.

결과

Puppet을 클라우드 템플릿에서 사용할 수 있습니다.

다음에 수행할 작업

Puppet 구성 요소를 원하는 클라우드 템플릿에 추가합니다.

  1. Cloud Assembly의 클라우드 템플릿에서 클라우드 템플릿 메뉴의 [컨텐츠 관리] 머리글 아래에 있는 Puppet을 선택하고 Puppet 구성 요소를 캔버스로 끌어다 놓습니다.
  2. 오른쪽 창에서 Puppet 속성을 입력합니다.
    속성 설명
    마스터 이 클라우드 템플릿에 사용할 Puppet 기본 시스템의 이름을 입력합니다.
    환경 Puppet 기본 시스템의 환경을 선택합니다.
    역할 이 클라우드 템플릿에 사용할 Puppet 역할을 선택합니다.
    에이전트 실행 간격 Puppet 에이전트가 이 클라우드 템플릿과 관련하여 배포된 가상 시스템에 적용할 구성 세부 정보를 Puppet 기본 시스템에서 폴링하는 주기입니다.
  3. Puppet 구성 속성에 대한 YAML 코드를 보려면 오른쪽 창에서 [코드] 탭을 클릭합니다.

클라우드 템플릿에 Puppet 구성 요소를 추가하는 경우 YAML 파일에 installMaster 속성을 추가하여 컴파일 마스터라고도 하는 Puppet 설치 마스터를 가리킬 수 있습니다. 이 속성의 값은 Puppet 컴파일 마스터의 IP 주소 또는 호스트 이름일 수 있습니다. 이 속성을 사용하면 배포된 Puppet 가상 시스템의 향상된 기능에 액세스할 수 있으며 추가 2일차 작업도 지원됩니다.

  Puppet_Agent:
    type: Cloud.Puppet
    properties:
      account: PEIntegrationAccount
      environment: production
      role: 'role::linux_webserver'
      host: '${CentOS-Puppet.*}'
      username: root
      password: password123!
      installMaster: my-pe-compile-master.example.com
      agentConfiguration:
        certName: '${CentOS-Puppet.address}'
      osType: linux
      count: 1

기본적으로 vRealize Automation Cloud은 일부 시스템 관련 정보를 사실로 Puppet 가상 시스템에 전달합니다. Windows 시스템의 경우 이 정보가 매우 제한적입니다. Linux 시스템은 기본적으로 더 많은 정보가 전달되며 사용자 지정 속성을 사용하여 사용자가 추가 정보를 전달할 수 있습니다.

Linux의 Puppet 시스템에 전달되는 항목에는 몇 가지 제한이 있습니다. 호스트 리소스 및 Puppet 에이전트의 사용자 지정 속성은 Puppet 가상 시스템에 전달됩니다. 네트워크 리소스의 사용자 지정 속성은 가상 시스템에 전달되지 않습니다. 전달되는 항목에는 단순 속성, 부울 속성은 물론 사용자 지정 이름 유형과 어레이가 있는 중첩된 맵과 같은 복잡한 유형이 포함됩니다.

다음 예는 호스트 리소스에서 다양한 사용자 지정 리소스를 호출할 수 있는 방법을 보여줍니다.

resources:
  Puppet-Host:
    type: Cloud.AWS.EC2.Instance
    properties:
      customer_specified_property_on_ec2_resource: "property"
      customer_specified_property_on_network_resource_that_should_also_be_a_fact_and_is_boolean: true
      CustomerNameStuff: "zone A"
      try_map:
      key: value
      keytwo: value
      nested_array:
        - one
        - two
        - true
      try_array:
        - one
        - two
        -three:
           inner_key: value

Puppet 지우기 명령으로 인해 오류가 발생하면 대부분의 경우 vRealize Automation Cloud은 노드에 대한 지우기 오류를 무시하고 노드 지우기를 진행합니다. 특정 노드에 대한 인증서를 찾을 수 없는 경우에도 vRealize Automation Cloud은 삭제를 진행합니다. vRealize Automation Cloud에서 어떤 이유로든 노드 삭제를 진행할 수 없으면 [배포] 페이지 [작업] 메뉴에서 [삭제]를 클릭하여 노드 삭제를 진행할 수 있는 대화 상자를 열 수 있습니다. 클라우드 템플릿에서 Puppet 통합을 제거한 다음 이 템플릿을 배포에 적용하면 유사한 워크플로가 실행됩니다. 이 워크플로는 위에 설명된 대로 처리되는 노드 지우기 작업을 트리거합니다.