SaltStack ConfigvRealize Automation Cloud과 통합한 경우 SaltStack Config 리소스를 적용하여 배포의 가상 시스템에 미니언을 설치할 수 있습니다. 미니언이 배포된 후에는 SaltStack Config의 강력한 구성 관리, 드리프트 업데이트 적용 및 상태 관리 기능을 사용하여 리소스를 관리할 수 있습니다.

미니언은 salt-minion 서비스를 실행하는 에이전트입니다. 이 서비스는 salt-master 서비스를 실행하는 서버인 Salt 마스터가 게시한 작업을 구독합니다. 특정 작업이 이 미니언에 적용되면 미니언이 해당 작업을 실행합니다.

Salt 환경에는 세 가지 유형의 미니언이 있습니다.
  • salt-minion 서비스를 실행하는 에이전트.
  • salt-minion 서비스를 실행할 수 없는 장치를 관리하는 프록시 미니언.
  • Salt 미니언을 설치하지 않고 시스템에서 Salt 명령을 실행하는 에이전트 없는 미니언.

Linux 및 Windows 시스템을 배포할 때 SaltStack Config 리소스를 사용하여 미니언을 배포하고 상태 파일을 적용할 수 있습니다. 기존 배포에서 미니언 및 상태 파일을 추가하거나 업데이트하려면 SaltStack 리소스 연결 2일차 작업을 실행하면 됩니다. 2일차 작업에 대한 자세한 내용은 Cloud Assembly 배포에서 실행할 수 있는 작업 항목을 참조하십시오.

saltConfiguration 속성을 사용하여 미니언 및 상태 파일을 0일차 작업으로 배포한 경우 SaltStack Config 리소스를 사용하도록 클라우드 템플릿을 업데이트하는 것이 좋습니다. saltConfiguration 속성은 이제 더 이상 사용되지 않습니다. 클라우드 템플릿에서 saltConfiguration 속성을 계속 사용할 수 있지만 SaltStack Config 통합 기능이 제한됩니다.

Salt 구성 적용 2일차 작업은 saltConfiguration 속성을 사용하는 리소스에 대해 계속 사용할 수 있습니다.

시작하기 전에

  1. SaltStack Config를 설치했고 통합을 구성했는지 확인합니다. vRealize Automation Cloud에서 SaltStack Config 통합 생성의 내용을 참조하십시오.

    미니언의 주요 개념을 포함하여 SaltStack Config가 작동하는 방식을 숙지하려면 SaltStack 사용자 인터페이스 이해를 참조하십시오.

  2. SaltStack Config에서, 미니언에서 마스터로의 FQDN 이름 확인이 작동하는지 확인합니다.
    1. SaltStack Config에서 Salt 마스터의 FQDN을 확인하려면 미니언 > 모든 미니언을 선택합니다.
    2. saltmaster 값에 대해 미니언 ID 열을 필터링합니다.
    3. 세부 정보를 보려면 saltmaster를 클릭합니다.
    4. FQDN 값이 올바른지 확인합니다.
  3. Linux 시스템에 미니언을 배포하는 경우 Salt 미니언을 사용하여 배포하려는 vSphere의 이미지에 SSH기능이 사용되도록 설정되어 있는지 확인합니다. SSH는 시스템에 원격으로 액세스하고 미니언을 배포하는 데 사용됩니다.
  4. Windows 시스템에 미니언을 배포하는 경우 Windows 환경에서 API(RaaS)를 사용하여 미니언을 배포하는 방법을 참조하십시오.

  5. 배포하는 시스템에 IP 주소를 할당할 수 있는지 확인합니다.

    SaltStack Config를 사용하려면 시스템에 IP 주소가 있어야 합니다. Salt 마스터가 있는 SDDC(소프트웨어 정의 데이터 센터)에 대한 공용 IP CIDR 범위의 IP 주소를 사용합니다.

  6. SaltStack Config 리소스 속성을 추가하기 전에 미니언을 추가할 클라우드 템플릿을 배포할 수 있는지 확인합니다.
  7. 다음 서비스 역할이 있는지 확인합니다.
    1. Cloud Assembly 관리자
    2. Cloud Assembly 사용자
    3. Service Broker 관리자

    이러한 서비스 역할은 SaltStack Config 리소스를 사용하는 데 필요합니다.

클라우드 템플릿에 SaltStack Config 리소스 추가

클라우드 템플릿 개발자는 템플릿을 배포할 때 SaltStack Config 미니언을 설치하는 속성을 YAML에 추가할 수 있습니다.

템플릿에 추가하는 핵심 속성에는 배포하려는 시스템에 대한 원격 액세스 및 SaltStack Config 리소스에 대한 구성 속성이 포함됩니다. 이 절차에는 선택한 속성만 포함됩니다. YAML에는 이 예에서 사용되지 않는 다른 SaltStack Config 리소스 속성이 포함되어 있습니다. 자세한 내용은 스키마를 검토하십시오.

이 예에서는 원격 액세스 속성에 대한 사용자 이름 및 암호를 추가하는 방법을 보여주지만 비밀 속성을 구성하고 템플릿에 추가할 수 있습니다. 예를 보려면 비밀 Cloud Assembly 속성 항목을 참조하십시오.

프로시저

  1. Cloud Assembly에서 설계 > 클라우드 템플릿을 선택합니다.
  2. 기존 템플릿을 엽니다.
  3. SaltStack Config 리소스를 찾아 캔버스에 끌어다 놓습니다.
  4. 미니언이 설치될 시스템에 SaltStack Config 리소스를 연결합니다.
  5. 코드 창에서 Cloud_SaltStack_1 리소스에 속성을 추가합니다.

    가능한 모든 속성을 포함할 필요는 없습니다. 이 예에 사용된 값은 표에 설명되어 있습니다.

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe

    이 예에 사용된 Cloud_SaltStack_1 속성에 대한 설명입니다.

    속성 설명
    masterId 예제 스키마에서 masterId 값은 saltstack_enterprise_installer입니다. SaltStack Config관리 > 마스터 키에 마스터 ID가 정의되어 있을 수 있습니다.
    호스트 hosts 값은 미니언을 설치할 시스템 또는 시스템 클러스터의 ID 입니다. 기본적으로 시스템의 이름은 SaltStack Config에서 미니언 ID로 전달됩니다.

    특히 Windows에 미니언을 배포하는 경우에는 15자 이하의 시스템 이름을 선택하는 것이 좋습니다. Windows는 15자를 초과하는 호스트 이름을 허용하지 않습니다.

    배포하려는 시스템에 대한 사용자 지정 명명 규칙을 정의하려면 Cloud Assembly에 배포된 리소스에 대한 사용자 지정 이름 지정을 참조하십시오.

    saltEnvironment 이 예에서 sse는 상태 파일의 파일 위치입니다. SaltStack Config구성 > 파일 서버에서 다른 파일 서버 위치에 상태 파일을 지정했을 수 있습니다.
    stateFiles 이 예에서 doe.sls는 saltEnvironment로 지정된 파일 서버 디렉토리에 제공되는 상태 파일입니다.
    variables 변수는 상태 파일이 사용하는 값입니다. 이 예에서는 doe.slsuser 값을 수락합니다.
  6. Salt 미니언을 호스팅하는 시스템에 remoteAccess 속성을 추가합니다.

    authentication 키의 값은 usernamePassword 또는 generatedPublicPrivateKey여야 합니다. publicPrivateKey는 지원되지 않습니다.

     remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
  7. YAML에 다음 샘플과 유사한 속성이 포함되어 있는지 확인합니다.
    resources:
      Cloud_vSphere_Machine_1:
        type: Cloud.vSphere.Machine
        properties:
          image: ubuntu
          flavor: small
          remoteAccess:
            authentication: usernamePassword
            username: adminUser
            password: adminPassword
      Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource.Cloud_vSphere_Machine_1.id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
  8. 클라우드 템플릿을 테스트하고 배포합니다.
    미니언 배포에 실패하는 경우 미니언 배포 문제 해결 항목을 참조하십시오.
  9. 배포된 시스템에 대한 Salt 구성 속성을 확인합니다.
    1. 배포 > 배포를 선택하고 배포 세부 정보를 엽니다.
    2. 토폴로지 탭에서 시스템을 클릭하고 오른쪽 창에서 속성을 확장합니다.

      오른쪽 창에 Salt 구성 속성이 확장되어 있는 [토폴로지] 탭의 스크린샷입니다. 속성에는 마스터 ID, Salt 환경 및 상태 파일이 포함됩니다.

SaltStack Config에서 미니언을 확인합니다.

가상 시스템에 미니언을 설치한 후 미니언을 찾아 리소스에서 작업이나 명령을 실행합니다.

프로시저

  1. SaltStack Config를 열려면 오른쪽 상단에서 애플리케이션 메뉴를 클릭하고 Cloud Services 콘솔을 클릭합니다.
  2. SaltStack Config 서비스 타일을 클릭합니다.
  3. SaltStack Config에서, 미니언 키를 확장하고 수락됨을 클릭합니다.
  4. 미니언 ID 열에서 필터 아이콘을 클릭하고 미니언의 이름을 입력합니다.
    미니언의 이름은 기본적으로 가상 시스템의 호스트 이름으로 지정됩니다. 이 예에서 미니언 ID는 vra-vm-05입니다.
    SaltStack Config에서 수락된 미니언 키의 스크린샷.
  5. 세부 정보를 보려면 미니언의 이름을 클릭합니다.
    미니언에서 작업 또는 명령을 실행할 수 있습니다. 예를 들어 샘플 디스크 사용량과 같은 작업을 실행합니다. 이 작업은 미니언에 대한 디스크 사용량 통계를 반환합니다.
    샘플 미니언 ID의 세부 정보 페이지 스크린샷

미니언 배포 문제 해결

SaltStack Config 리소스 또는 saltConfiguration 속성을 사용하여 Salt 미니언을 배포하는 동안 사용자가 경험하는 몇 가지 일반적인 오류에 대해 읽어보십시오.

호스트 시작 지연

클라우드 템플릿을 배포한 후 호스트의 Windows 또는 Linux 서비스가 준비되지 않은 경우 Cloud Assembly에 "미니언 배포 및/또는 상태 파일 실행 실패" 오류가 표시될 수 있습니다.

이 오류를 해결하려면 마스터 플러그인을 안정적인 최신 버전으로 업그레이드하십시오. 업그레이드한 후 Salt 미니언을 배포하기 전에 Windows 및 Linux 서비스가 활성화되는 시간을 허용하도록 /etc/salt/master.d/raas.conf에서 구성 설정을 사용하도록 설정할 수 있습니다.

최신 버전의 마스터 플러그인으로 업그레이드한 후 다음 단계를 완료하여 호스트 시작을 지연합니다.

  1. 배포 세부 정보 페이지에서 내역 탭을 확인합니다.
  2. "미니언 배포 및/또는 상태 파일 실행 실패"라는 오류 메시지가 표시되면 작업 ID(JID)를 복사하고 SaltStack Config를 엽니다.
  3. SaltStack Config에서 활동 > 완료됨을 선택하여 완료된 작업을 엽니다.
  4. JID 열에서 필터 아이콘을 클릭하고 JID를 입력합니다.
  5. JID를 클릭하여 작업 결과 페이지를 검토합니다.
  6. 작업에 대한 원시 출력을 보려면 원시 탭을 클릭합니다.

    Windows

    작업에 대한 원시 출력의 마지막 줄에 "호스트에 연결하지 못했습니다. 시간 초과"가 포함된 경우 이 구성 설정을 /etc/salt/master.d/raas.conf에 추가하여 시작을 180초 지연시켜야 합니다.
    sseapi_win_minion_deploy_delay: 180

    Linux

    작업에 대한 원시 출력의 마지막 줄에 "제공된 자격 증명을 사용하여 원격 호스트에 액세스할 수 없습니다."가 포함된 경우 이 구성 설정을 /etc/salt/master.d/raas.conf에 추가하여 시작을 90초 지연시켜야 합니다.
    sseapi_linux_minion_deploy_delay: 90
  7. Salt 마스터 서비스를 다시 시작합니다.
    systemctl restart salt-master
  8. 클라우드 템플릿을 다시 배포합니다.

    배포가 실패하면 지연 매개 변수를 늘리고 템플릿을 다시 배포할 수 있습니다.

후속 작업

SaltStack Config 기능을 사용하여 리소스를 관리하려면 SaltStack Config 설명서를 참조하십시오.