시스템 관리자는 SaltStack Config에서 작업을 생성하여 원격 실행 작업을 실행하고, 상태를 적용하고, Salt 러너를 시작하는 등의 작업을 수행할 수 있습니다. 작업은 일반적으로 자동화 및 여러 번 실행이 필요한 시스템 운영을 위한 것입니다.

시작하기 전에

SaltStack Config의 작업은 일반적으로 Salt 오픈 소스 커뮤니티에서 개발한 실행 모듈 또는 상태 모듈 중 하나를 통합합니다. 이러한 이유로 먼저 Salt 시스템에 대한 몇 가지 기본 개념과 사용 가능한 실행 및 상태 모듈을 사용하여 일반적인 관리 작업을 수행하는 방법을 숙지해야 합니다.

주제... 참조 항목...

Salt 작업의 기본 사항

Salt 상태

Salt 실행 및 상태 모듈

  • 모든 모듈 목록에 대한 Salt 모듈 인덱스
  • 특정 요구 사항을 가장 잘 해결할 수 있는 모듈을 결정하는 데 도움이 필요하거나 특정 모듈 사용에 대한 질문이 있는 경우 SaltStack 커뮤니티 Slack 업무 공간에서 커뮤니티 지원을 요청할 수 있습니다.

작업 생성

새 작업을 생성하려면:

  1. 어떤 Salt 실행 또는 상태 모듈이 원하는 결과를 달성하는 데 도움이 될지 조사합니다. 요구 사항에 맞는 Salt 모듈을 찾으면 모듈의 설명서를 읽고 모듈의 매개 변수 및 기타 요구 사항을 숙지합니다.
  2. 작업에서 Salt 상태 모듈을 사용하는 경우 SaltStack Config 파일 서버에 새 상태 파일을 생성합니다. 자세한 내용은 상태 파일 및 pillar 데이터를 생성하는 방법 항목을 참조하십시오.
  3. 새 작업을 생성합니다.
    1. 사이드 메뉴에서 구성 > 작업을 클릭하여 작업 업무 공간을 엽니다.
    2. 작업 생성 버튼을 클릭합니다.
      참고:

      [작업 생성] 버튼이 표시되지 않으면 새 작업을 생성할 수 있는 권한이 없는 것입니다. 자습서를 완료할 수 있도록 vRealize Automation 관리자에게 문의하여 액세스 권한을 확인하거나 이 작업을 대신 생성하도록 요청하십시오.

    3. 새 작업에 대한 세부 정보를 입력합니다.
      필드

      이름

      작업(job)의 용도 또는 작업(job)을 통해 수행해야 하는 작업(task)을 간략하게 나타내는 알아보기 쉬운 이름을 작업(job)에 지정합니다. 예를 들어 "Windows 방화벽 설정 구성"을 입력합니다.

      설명

      다른 사용자에게 이 작업의 용도를 알려주는 설명(예: "Windows 노드에서 포트 445에 대한 방화벽을 엽니다.")을 추가합니다.

      명령

      • 미니언에 대해 실행되는 작업에 대해 salt를 선택합니다.
      • Salt 마스터에 대해 실행되는 작업에 대해 salt-run을 선택합니다. salt-run 작업은 Salt 러너라고도 합니다. Salt 러너는 Salt 마스터에서 편의 기능을 실행하는 데 사용되는 모듈입니다. Salt 러너를 사용하면 오케스트레이션을 실행하고 원격으로 미니언 전원을 켜고 webhook를 호출하는 등의 작업을 수행할 수 있습니다. 중앙에서 또는 중앙의 시작 지점에서 작업을 실행하는 데 유용합니다. 예를 들어, 특정 Salt 마스터와 연결된 모든 미니언에 highstate를 적용할 수 있습니다.

      어떤 옵션을 선택해야 할지 확실하지 않은 경우 salt를 사용합니다. 대부분의 작업이 미니언에 대해 실행되기 때문입니다.

      참고: 명령을 변경하기로 결정하면 선택할 수 있는 새로운 기능 목록이 표시됩니다.

      대상

      선택 사항: 대상은 작업의 Salt 명령이 적용되는 미니언 그룹(하나 또는 여러 Salt 마스터에 걸쳐 있음)입니다. 대상 업무 공간에서 작업에 대한 대상을 생성할 수 있습니다. 자세한 내용은 ISHPUBLMODULEMISSING.html#GUID-9CE7FDFB-5EF1-4B2B-8889-65DD82F9A4BA 항목을 참조하십시오.

      작업을 실행할 때 대상이 선택되도록 하려면 이 메뉴에서 아무 것도 선택하지 마십시오. 이 필드를 비워두면 작업을 실행할 때 대상을 선택할 수 있습니다. 단, 작업의 대상을 정의하면 작업을 실행하지 말아야 하는 노드에서 해당 작업이 실행되지 않도록 할 수도 있습니다.

      함수

      이 작업을 실행할 때 어떤 Salt 모듈을 실행할지 선택합니다. 이 필드를 클릭하고 선택하려는 Salt 모듈의 이름을 입력하기 시작하거나 메뉴에서 선택합니다. 사용하려는 모듈이 드롭다운에 없는 경우 자체 값을 입력할 수도 있습니다.

      이 작업이 Salt 상태 파일을 미니언에 적용하기 위한 것이라면 state.apply 모듈을 사용합니다. 자세한 내용은 state.apply를 참조하십시오.

      Salt 모듈의 전체 목록은 Salt 모듈 인덱스를 참조하십시오. 가장 일반적으로 사용되는 모듈을 설명하는 표는 일반적인 작업의 예에서 참조하십시오.

      인수

      인수 필드를 사용하여 argskwargs를 Salt 모듈에 전달할 수 있습니다.

      인수 필드의 각 행은 하나의 인수를 나타냅니다. 예를 들어 file.copy 모듈을 사용하는 경우 path/to/src/path/to/dst를 모듈에 전달할 수 있습니다.

      키워드 인수를 사용할 수도 있습니다. 예를 들어 src=path/to/src/dst=path/to/dst/file.copy 모듈에 전달할 수 있습니다.

      Salt 모듈의 전체 목록은 Salt 모듈 인덱스를 참조하십시오.

      환경

      이 필드는 선택한 함수(예: state.apply, state.highstate 등)에 적용 가능한 경우에만 사용할 수 있습니다.

      메뉴에서 원하는 Salt 환경을 선택하거나 목록에 나타나지 않으면 입력합니다. 예를 들어 기본 환경에서 상태 파일을 적용하는 경우 메뉴에서 base를 선택합니다.

      상태

      이 필드는 선택한 함수(예: state.apply)에 적용 가능한 경우에만 사용할 수 있습니다.

      메뉴에서 적용하려는 상태 파일을 선택하거나 목록에 나타나지 않으면 입력합니다.

      Pillar 재정의

      이 필드는 선택한 함수(예: state.apply)에 적용 가능한 경우에만 사용할 수 있습니다. pillar 데이터를 JSON으로 수락합니다. pillar 데이터는 작업 정의에 저장되고 런타임 시 모듈 함수로 전달됩니다.

      SaltStack Config에서 Pillar 재정의를 사용하는 것은 CLI를 통해 사용자 지정 pillar 값을 보내는 것과 유사합니다. 이러한 방식으로 전달된 값은 pillar_roots 또는 외부 Pillar 소스를 사용하여 설정된 기존 Pillar 값을 재정의합니다. kwarg에 포함되지 않은 pillar 값은 덮어쓰이지 않습니다.

      pillar 데이터에 대한 자세한 내용은 상태 파일 및 pillar 데이터를 생성하는 방법 항목을 참조하십시오.

      SaltStack Config에서 모든 필드가 채워진 작업의 스크린샷
    4. 선택 사항: 테스트로 실행(모의 실행) 옵션을 선택하여 테스트 작업을 실행하고 모의 작업 반환을 생성합니다. 테스트(모의 실행)는 state.apply와 같은 특정 함수에만 사용할 수 있습니다. [테스트]를 선택하면 작업이 모의 실행 모드에서 실행되고 변경되지 않습니다. 이 옵션을 선택하지 않은 상태로 두면 나중에 작업을 실행할 때 테스트로 실행하도록 선택할 수 있습니다.
    5. 선택 사항: 작업에 작업 입력을 추가합니다. 자세한 내용은 작업 입력 추가 항목을 참조하십시오.
  4. 작업을 저장하고 작업 업무 공간에 나타나는지 확인합니다.

작업 입력 추가

시스템 관리자는 작업 입력을 사용하여 다른 사용자가 런타임 시 변경할 수 있는 인수 또는 변수를 구성할 수 있습니다. 다양한 사용 사례에 대해 여러 작업을 생성하는 대신 범용 작업을 생성한 다음 사용자를 위한 선택적 작업 입력 및 필수 작업 입력을 정의할 수 있습니다. 이러한 범용 작업은 수신하는 작업 생성 요청의 양을 줄이는 데 도움이 될 수 있습니다.

작업 입력을 사용할 경우 한 가지 이점은 다른 관리자가 작업 런타임 시 함수에 전달할 수 있는 인수 또는 변수 유형에 대한 액세스를 한정하거나 제한하면서도 담당자의 책임 범위 내에서 업무를 수행하는 데 필요한 작업을 수행하도록 할 수 있다는 점입니다. 이러한 방식으로 작업 입력을 명확하게 정의하면 조직에서 최소 권한 원칙과 같은 표준 보안 모범 사례를 준수할 수 있습니다.

시작하기 전에

사용자가 어떤 작업 입력을 편집해야 하는지 고려하기

작업 입력을 정의하기 전에 런타임 시 어떤 작업 입력을 사용자가 보고 편집하도록 할지 생각해 보는 것이 중요합니다. 나 말고 다른 사람이 이 작업을 실행할 수도 있으며 이들에게 작업 입력이 표시되는 방식은 내가 작업 입력을 어떻게 설정하느냐에 따라 달라집니다. 이러한 사용자가 런타임 시 어떤 작업 입력을 보고 편집하도록 할지 고려해야 합니다.

예를 들어 서버의 용도나 역할에 따라 구성 설정을 서버에 적용하는 작업을 생성할 수 있습니다. 상태 파일의 구성 설정을 적용하는 일반 작업을 생성한 다음 관리자가 드롭다운 메뉴의 목록에서 적용할 상태 파일을 선택할 수 있도록 하는 작업 입력을 생성할 수도 있습니다. 작업 런타임 시 사용자는 내가 정의해 둔 가능한 상태 파일 목록이 포함된 드롭다운 메뉴만 볼 수 있습니다.

이러한 방식으로 작업 입력을 사용하면 다른 관리자가 작업 런타임 시 볼 수 있고 변경할 수 있는 항목을 시스템 관리자가 보다 세부적으로 제어할 수 있습니다. 또한 유연성을 제공하는 동시에 다른 사용자가 각자의 책임 범위 또는 권한 수준 내에서 허용되는 항목만 변경하도록 할 수 있습니다.

작업 입력을 정의하려면 다음을 수행합니다.
  1. 사이드 메뉴에서 구성 > 작업을 클릭하여 작업 업무 공간을 엽니다.
  2. 작업을 선택하여 작업 세부 정보를 엽니다.
  3. 작업 세부 정보 페이지의 작업 입력 섹션까지 아래로 스크롤합니다.작업 입력 목록의 스크린샷
  4. 작업 입력 추가 버튼을 클릭합니다.
  5. 작업 입력에 대한 세부 정보를 입력합니다.
    필드
    표시 이름

    작업 입력의 이름을 설정합니다.

    표시 이름으로 입력한 텍스트는 사용자가 런타임 시 이 작업 입력을 볼 때 입력의 기능과 용도를 나타내는 가장 중요한 지표입니다.

    짧고 정확하며 알아보기 쉬운 이름(예: "다시 시작할 서비스")을 선택합니다.

    입력 유형

    작업 입력의 유형을 설정합니다. 문자열, 숫자, 부울, 선택이라는 4가지 입력 유형이 있습니다.

    • 사용자가 값을 제공하도록 하려면 문자열 입력 유형을 사용합니다.
    • 사용자가 수량 또는 크기를 지정하도록 하려면 숫자를 사용합니다.
    • true 또는 false 시나리오에는 부울을 사용합니다.
    • 사용자가 값 목록에서 선택하도록 하려면 선택을 사용합니다. 선택 목록의 값은 문자열, 숫자 또는 부울일 수 있습니다. 예를 들어 "다시 시작할 서비스" 작업 입력의 입력 유형은 선택 문자열 목록일 수 있습니다. 예: httpd, sshd 또는 mysqld.

    입력 유형을 선택하기 전에 Salt 모듈 인덱스를 참조하십시오. 입력 유형은 작업이 사용하는 Salt 모듈 및 Salt 모듈에서 입력 유형이 어떤 매개 변수와 연관되어 있는지에 따라 결정됩니다. 잘못된 입력 유형을 선택하면 작업이 실패합니다.

    작업 실행 시 표시

    작업을 실행할 때 사용자가 값을 보고 편집할 수 있도록 허용합니다.

    이 설정을 전환하면 작업 입력 편집 창에 도움말 텍스트 필드가 나타납니다.

    간단하고 정확한 표시 이름을 찾기가 어렵다면 도움말 텍스트 필드를 사용하여 작업 입력에 대한 추가 정보를 제공합니다. 예를 들어 사용자가 값을 제공해야 하는 상황을 설명할 수 있습니다.

    이 도움말 텍스트는 사용자가 작업을 실행할 때 작업 입력의 이름 옆에 도움말 도구 설명(?) 아래에 표시됩니다.

    키워드

    실행 중인 모듈 함수에 전달되는 매개 변수 또는 인수를 제공합니다. 모듈 함수에 대한 자세한 내용은 Salt 모듈 인덱스를 참조하십시오.

    참고: 작업 입력은 키워드가 아닌 위치 인수를 지원하지 않습니다. 이것은 인수 아래 작업에서 지정할 수 있지만 작업 실행 시에는 제공할 수 없습니다.

    기본값/값

    작업 실행 시 표시를 사용하도록 설정한 경우 선택적 기본값 필드를 사용하여 작업 입력에 대한 기본값을 제공할 수 있습니다. 사용자는 기본값을 모듈 함수에 전달하거나 런타임 시 변경할 수 있습니다.

    사용자에게 기본값을 제공하는 것이 도움이 될지 고려하십시오. 기본값을 제공하면 사용자가 작업을 실행할 때 시간을 절약하는 데 도움이 될 수 있지만 필요하지 않은 상황이 있을 수 있습니다. 예를 들어, "Datacenter"라는 작업 입력에는 기본값이 필요하지 않을 수 있습니다. 값이 다양하기 때문입니다.

    작업 실행 시 표시를 사용하지 않도록 설정하면 필드를 사용하여 모듈 함수에 기본값을 전달할 수 있습니다. 사용자는 값을 보거나 편집할 수 없습니다.

    작업 입력에 필요

    작업 실행 시 표시를 사용하도록 설정하면 사용자가 작업 입력에 대한 값을 제공하도록 요구할 수 있습니다.

    사용자에게 값을 제공하도록 요구하는 것이 도움이 될지 고려하십시오. 작업을 설계할 때 사용자가 값을 제공하지 않으면 어떻게 될지 생각해 보십시오. 값이 없어서 작업이 실패할 수 있으면 런타임 시 값을 요구합니다. 값 없이 작업을 성공적으로 실행할 수 있으면 선택 사항으로 지정합니다.

    가능하면 도움말 텍스트 필드를 사용하여 사용자가 작업 입력의 기능을 이해할 수 있도록 합니다.

  6. 작업 입력을 저장하고 작업 세부 정보 페이지의 작업 입력 목록에 나타나는지 확인합니다.
    참고:

    사용 중인 모듈 함수에 따라 환경, 상태 또는 테스트와 같은 다른 필드가 작업 입력 목록에 나타날 수 있습니다. 런타임 시 사용자가 이러한 입력을 볼 수 있도록 하려면 키워드 옆에 있는 연필 아이콘을 클릭하여 작업 입력을 편집하고 작업 실행 시 표시로 전환합니다.

  7. 작업을 저장합니다.
  8. 작업 입력이 예상대로 작동하는지 검증하려면 권한 수준이 더 낮거나 액세스 권한이 더 적은 역할로 작업을 실행할 수 있는 사용자로 SaltStack Config에 로그인합니다.

    작업 입력이 누락되었거나, 작업이 실패하거나, 작업 입력에 추가 인수 또는 설명이 필요한 경우에는 작업에 필요한 조정을 수행한 후에 사용자가 실행하도록 허용합니다.

다음 단계

작업을 생성한 후에는 임시로 또는 정기적인 스케줄로 작업을 실행할 수 있습니다. 자세한 내용은 다음을 참조하십시오.