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

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

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

프로시저

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

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

    Cloud_SaltStack_1:
        type: Cloud.SaltStack
        properties:
          masterId: saltstack_enterprise_installer
          hosts:
            - ${resource["Cloud_VM_1".id}
          saltEnvironment: sse
          stateFiles:
            - /doe.sls
          variables: 
            user: joe
          additionalMinionParams:
            grains:
              roles:
                - webserver
                - database   
           additionalAuthParams:
             profile:
                tmp_dir: /var/run

    다음은 이 예에 사용된 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.slssaltEnvironment로 지정된 파일 서버 디렉토리에 제공되는 상태 파일입니다.
    variables 클라우드 템플릿에 정의된 변수는 Salt 상태에 pillar로 전달됩니다. 이 예에서는 변수 userdoe.sls 파일에 전달됩니다.

    변수는 다음 예에서 볼 수 있듯이 Jinja를 사용하여 상태 파일에서 참조할 수 있습니다.

    {% set username = pillar.get('user', 'random') %}
    
    friend:
      user.present:
        - names:
          -  {{username}}

    doe.sls 파일은 클라우드 템플릿의 변수 user로 표시되는 사용자가 존재함을 확인합니다. 변수가 클라우드 템플릿에 지정되지 않은 경우 사용자 random이 있음을 확인합니다.

    additionalMinionParams 이 속성을 사용하여 미니언에 대한 추가 구성 매개 변수를 전달합니다. 이러한 매개 변수는 사전으로 전달되어야 합니다.

    • grains: 이 속성을 사용하여 미니언에 사용자 지정 Salt Grain을 할당합니다. 하나 이상의 key:value 쌍이 수락됩니다. 값은 문자열, 어레이 또는 맵일 수 있습니다.

      새 시스템을 프로비저닝할 때만 사용자 지정 Grain 데이터를 할당할 수 있습니다. SaltStack 리소스 연결 또는 Salt 구성 업데이트 2일차 작업을 실행할 때는 사용자 지정 Grain 데이터를 할당할 수 없습니다.

    additionalAuthParams 이 속성을 사용하여 기본 salt-cloud 구성으로 병합/재정의될 미니언을 프로비저닝하기 위한 추가 인증 매개 변수를 전달합니다. 이러한 매개 변수는 사전으로 전달되어야 합니다.

    하나 이상의 key:value 쌍이 문자열, 어레이 또는 맵으로 허용됩니다. 이 속성이 사용되는 방법에 대한 예는 사용 사례: Linux 환경에서 API를 사용하여 여러 미니언을 배포하는 방법을 참조하십시오.

    참고: Salt 구성 업데이트 2일차 작업을 실행할 때는 추가 인증 매개 변수를 할당할 수 없습니다.
  6. Salt 미니언을 호스팅하는 시스템에 remoteAccess 속성을 추가합니다.

    Linux 시스템에 Salt 미니언을 배포하는 경우 authentication 키의 값은 usernamePassword 또는 generatedPublicPrivateKey여야 합니다. publicPrivateKey는 지원되지 않습니다.

    Windows 시스템에 Salt 미니언을 배포하는 경우 authentication 키의 값은 usernamePassword.여야 합니다.

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

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

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

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

프로시저

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

Salt Grain 데이터 보기

가상 시스템에 Salt 미니언 배포를 완료한 후에는 Cloud Assembly에서 미니언의 Grain을 볼 수 있습니다.

Salt Grain은 미니언의 운영 체제, 도메인 이름, IP 주소, 커널, OS 유형, 메모리 및 기타 여러 시스템 속성에 대해 수집됩니다. SaltStack Config에 액세스할 수 없거나 Cloud Assembly 사용자 인터페이스를 벗어나지 않고 Grain 데이터를 빠르게 보려는 경우에는 토폴로지 탭을 사용하여 Grain 데이터를 볼 수 있습니다. Grain 데이터에 대한 자세한 내용은 Salt Grain을 참조하십시오.

미니언의 Grain을 보려면 다음을 수행합니다.

  1. Cloud Assembly에서 리소스 > 배포를 선택하고 배포를 찾습니다.
  2. 토폴로지 탭에서 SaltStack Config 리소스에 연결된 가상 시스템을 선택합니다.
  3. 오른쪽 창에서 Salt 구성 섹션을 찾은 후 아래로 스크롤하여 Grain 데이터 목록을 봅니다.Cloud Assembly Grain 데이터의 스크린샷

미니언을 배포한 후 미니언의 Grain 데이터가 검색됩니다. Grain 데이터가 마지막으로 업데이트된 시기를 보려면 Salt 구성 섹션의 맨 아래로 스크롤하면 됩니다.

Cloud Assembly에서 마지막으로 업데이트된 Grain 데이터의 스크린샷
참고: Grain 데이터는 SaltStack Config 리소스에서 2일차 Salt 구성 업데이트 작업을 실행하는 경우에만 업데이트됩니다. Cloud Assembly 외부에서 변경한 경우에는 업데이트되지 않습니다.