설치 후 프로세스의 일부로 마스터 플러그인을 설치, 구성 및 업그레이드해야 합니다. 마스터 플러그인을 사용하면 Salt 마스터가 Automation Config와 통신할 수 있습니다. 마스터 플러그인에는 성능 향상을 위해 조정할 수 있는 다양한 설정이 포함되어 있으며, 대규모 환경 또는 바쁜 환경에 특히 유용합니다.

일반적으로 마스터 플러그인은 Automation Config와 통신하는 환경의 모든 Salt 마스터에 설치합니다. 예를 들어 Salt 마스터가 둘 이상인 구성(다중 마스터 설정이라고도 함)을 사용하는 경우에는 각 Salt 마스터에 마스터 플러그인을 설치해야 합니다.

시작하기 전에

마스터 플러그인 설치 및 구성은 특정 순서로 수행해야 하는 일련의 여러 단계 중 하나의 설치 후 단계입니다. 먼저 설치 시나리오 중 하나를 완료한 다음 설치 후 라이센스 키 설치 페이지를 읽어보십시오.

에어갭이 아닌 환경에 있는 경우 종속성은 마스터 플러그인과 함께 자동으로 설치됩니다. 에어갭 환경의 경우 에어갭 시스템에 Salt 마스터 플러그인 설치 기술 자료 문서를 참조하십시오.

마스터 플러그인은 언제 설치해야 합니까?

마스터 플러그인은 Automation Config를 새로 설치한 후 모든 Salt 마스터에 설치해야 합니다. Automation Config와 통신할 필요가 없는 Salt 마스터에는 마스터 플러그인이 필요하지 않습니다.

1000개 미만의 노드에 SaltStack Config 설치 시나리오를 사용하는 경우에는 Automation Config 및 관련 아키텍처를 설치한 노드에 마스터 플러그인을 설치할 필요가 없습니다. 설치 관리자를 통해 Salt 마스터 노드에 마스터 플러그인이 자동으로 설치됩니다. 단, 마스터 플러그인은 설치 관리자를 실행한 Salt 마스터에만 설치됩니다. 마스터가 여러 개인 경우에도 다른 마스터에 마스터 플러그인을 설치해야 합니다.

Automation Config를 수동으로 설치하는 경우(권장되지 않음)에는 마스터 플러그인을 설치하기 전에 다음을 완료해야 합니다.

  • PostgreSQL 데이터베이스 설치 및 구성
  • Redis 데이터베이스 설치 및 구성
  • SSL을 사용하도록 설정(선택 사항)
중요: 모든 릴리스에서는 기본 구성 파일을 생성한 다음 기존 구성에서 보존하려는 설정을 적용하여 마스터 플러그인 구성을 업데이트하는 것이 좋습니다. 예를 들면 다음과 같습니다.
# sseapi-config --default >/tmp/raas.conf 
# cd /etc/salt/master.d 
# vim -d raas.conf /tmp/raas.conf 
...

onedir을 사용하여 Salt를 설치한 경우 이 실행 파일의 경로는 /opt/saltstack/salt/extras-3.10/bin/sseapi-config 입니다.

마스터 플러그인 업무 공간을 사용하여 마스터 플러그인 설치

참고: 이 기능은 Automation Config 버전 8.11.2 이상에서 지원됩니다.
참고: Salt 마스터는 루트로 실행되어야 합니다.

관리 > 마스터 플러그인으로 이동하여 Automation Config 사용자 인터페이스에서 최신 마스터 플러그인 버전을 다운로드하고 설치할 수 있습니다. [마스터 플러그인] 탭에서 플러그인을 다운로드하거나 클라이언트를 다운로드할 수 있습니다.

마스터 플러그인을 다운로드한 후에는 마스터 플러그인을 구성해야 합니다.

CLI를 사용하여 마스터 플러그인 설치

Salt 마스터에 마스터 플러그인을 설치하려면:

8.13.0 릴리스부터 마스터 플러그인에는 이제 RaaS 서버에서 Salt 마스터로 대상 그룹 일치를 오프로드하는 tgtmatch 엔진이 포함되어 있습니다. 특히 다음을 사용하는 환경에서 대상 그룹 일치를 보다 원활하게 수행할 수 있도록 tgtmatch 엔진을 사용하도록 설정하고 구성하는 것이 좋습니다.

  • 많은 수의 대상 그룹(100개 이상)
  • 많은 수의 미니언(3000개 이상)
  • 잦은 미니언 입자 변경(매일 또는 더 자주)
  • 잦은 미니언 생성 및 삭제(매일 또는 더 자주)
Salt 마스터에서 대상 일치 데이터를 제공하도록 RaaS를 구성하려면 RaaS Config 파일(/etc/raas/raas)에 다음 설정이 있는지 확인합니다.
target_groups_from_master_only: true
  1. Salt 마스터에 로그인합니다.
  2. 필요한 경우 Customer Connect에서 마스터 플러그인 휠을 다운로드합니다.

    마스터 플러그인은 자동 설치 관리자 .tar.gz 파일에 포함되어 있습니다. .tar.gz 파일을 다운로드하여 추출하면 sse-installer/salt/sse/eapi_plugin/files 디렉토리에서 마스터 플러그인을 찾을 수 있습니다.

  3. 업데이트된 Python 휠을 수동으로 제거하고 다시 설치하여 마스터 플러그인을 업그레이드합니다. 다음 예제 명령을 휠 파일의 정확한 이름을 대체하여 사용합니다.
    참고: sseapi-config의 여러 인스턴스를 방지하려면 기존 플러그인을 제거해야 합니다.
    pip3 uninstall SSEAPE-8.12.1.3-py3-none-any.whl
    mv /etc/salt/master.d/raas.conf /tmp
    salt-call pip.install SSEAPE-8.12.1.3-py3-none-any.whl
    cp /tmp/raas.conf /etc/salt/master.d/raas.conf
    systemctl restart salt-master

마스터 플러그인 구성

마스터 플러그인을 설치한 후 Salt 마스터를 구성하려면:

  1. Salt 마스터에 로그인하고 /etc/salt/master.d 디렉토리가 있는지 확인하거나 생성합니다.
  2. 마스터 구성 설정을 생성합니다.
    경고: 설치를 업그레이드할 때 설정을 유지하려면 이 단계를 실행하기 전에 기존 마스터 플러그인 구성 파일의 백업을 생성합니다. 그런 다음 관련 설정을 기존 구성에서 새로 생성된 파일로 복사합니다.
    sudo sseapi-config --all > /etc/salt/master.d/raas.conf
    중요: onedir을 사용하여 Salt를 설치한 경우 이 실행 파일의 경로는 /opt/saltstack/salt/extras-3.10/bin/sseapi-config 입니다.
  3. 생성된 raas.conf 파일을 편집하고 다음과 같이 값을 업데이트합니다.
    설명

    sseapi_ssl_validate_cert

    API(RaaS)가 사용하는 인증서의 유효성을 검사합니다. 기본값은 True입니다.

    자체 CA에서 발급한 인증서를 사용하는 경우 이 값을 True로 설정하고 sseapi_ssl_ca, sseapi_ssl_certsseapi_ssl_cert: 설정을 구성합니다.

    그렇지 않으면 False로 설정하여 인증서의 유효성을 검사하지 않습니다.

    sseapi_ssl_validate_cert:False

    sseapi_server

    RaaS 노드의 HTTP IP 주소입니다(예: http://example.com 또는 SSL이 사용되도록 설정된 경우 https://example.com).

    sseapi_command_age_limit

    시간(초 단위)이 얼마나 경과하면 오래된(잠재적으로 부실한) 작업을 건너뛸지 설정합니다. 예를 들어 하루보다 오래된 작업을 건너뛰려면 다음과 같이 설정합니다.

    sseapi_command_age_limit:86400

    건너뛴 작업은 데이터베이스에 계속 존재하며 Automation Config 사용자 인터페이스에 Completed 상태로 표시됩니다.

    일부 환경에서는 Salt 마스터가 오랫동안 오프라인 상태였다가, Salt 마스터가 다시 온라인 상태가 되면 대기열에 있는 작업을 실행해야 할 수도 있습니다. 이런 경우가 적용되는 환경에서는 경과 시간 제한(age limit)을 0으로 설정합니다.

    sseapi_windows_minion_deploy_delay 모든 필수 Windows 서비스가 활성화될 수 있도록 지연 시간을 설정합니다. 기본값은 180초입니다.
    sseapi_linux_minion_deploy_delay 모든 필수 Linux 서비스가 활성화될 수 있도록 지연 시간을 설정합니다. 기본값은 90초입니다.
    sseapi_local_cache
         load: 3600
         tgt: 86400
         pillar: 3600
         exprmatch: 86400
         tgtmatch: 86400

    특정 데이터가 각 Salt 마스터에 로컬로 캐시되는 기간을 설정합니다. 값은 초 단위입니다. 예제 값은 권장 값입니다.

    • load- salt save_load() 페이로드

    • tgt- SSE 대상 그룹

    • pillar- SSE pillar 데이터(암호화됨)

    • exprmatch- SSE 대상 표현식 일치 데이터

    • tgtmatch- SSE 대상 그룹 일치 데이터

  4. 선택 사항: 이 단계는 수동 설치에만 필요합니다. 마스터 플러그인을 연결하기 전에 SSL에 연결할 수 있는지 확인하려면 생성된 raas.conf 파일을 편집하여 다음 값을 업데이트합니다. 해당 값을 업데이트하지 않으면 마스터 플러그인은 기본적으로 생성된 인증서를 사용합니다.
    설명
    sseapi_ssl_ca CA 파일의 경로입니다.
    sseapi_ssl_cert 인증서의 경로입니다. 기본값은 /etc/pki/raas/certs/localhost.crt입니다.
    sseapi_ssl_key 인증서의 개인 키에 대한 경로입니다. 기본값은 /etc/pki/raas/certs/localhost.key입니다.
    id 시작 부분에 #을 추가하여 이 줄을 주석 처리하십시오. 필요하지 않습니다.
  5. 선택 사항: 성능 관련 설정을 업데이트합니다. 대규모 또는 바쁜 환경의 경우 다음 설정을 조정하여 Salt 마스터와 Automation Config 간의 통신 성능을 향상시킬 수 있습니다.
    • 마스터 플러그인 엔진을 구성합니다.

      마스터 플러그인 eventqueuerpcqueue 엔진은 Automation Config와의 일부 통신을 성능에 중요한 코드 경로에서 전용 프로세스로 오프로드합니다. 엔진이 Automation Config와 통신하기 위해 대기하는 동안 페이로드는 Salt 마스터의 로컬 파일 시스템에 저장되며, 따라서 Salt 마스터를 다시 시작해도 데이터가 지속될 수 있습니다. tgtmatch 엔진은 미니언 대상 그룹 일치 계산을 RaaS 서버에서 salt-master로 이동합니다.

      엔진을 사용하도록 설정하려면 Salt 마스터 플러그인 구성 파일(raas.conf)에 다음 설정이 있는지 확인합니다.

      engines: 
           - sseapi: {} 
           - eventqueue: {} 
           - rpcqueue: {} 
           - jobcompletion: {}      
           - tgtmatch: {}

      eventqueue 엔진을 구성하려면 다음 설정이 있는지 확인합니다.

      sseapi_event_queue: 
        name: sseapi-events 
        strategy: always 
        push_interval: 5 
        batch_limit: 2000 
        age_limit: 86400 
        size_limit: 35000000 
        vacuum_interval: 86400 
        vacuum_limit: 350000 

      대기열 매개 변수는 함께 작동하는 방식을 고려하여 조정할 수 있습니다. 예를 들어 Salt 이벤트 버스에서 초당 이벤트가 평균 400개라고 가정하고, 위에 표시된 설정을 사용하면 약 24시간 동안 대기 중인 이벤트 트래픽을 Salt 마스터에서 수집할 수 있으며 이 시간이 지나면 크기 또는 경과 시간(age) 제한으로 인해 가장 오래된 이벤트가 삭제됩니다.

      rpcqueue 엔진을 구성하려면 raas.conf에서 다음 설정을 확인합니다.

      sseapi_rpc_queue: 
        name: sseapi-rpc 
        strategy: always 
        push_interval: 5 
        batch_limit: 500 
        age_limit: 3600 
        size_limit: 360000 
        vacuum_interval: 86400 
        vacuum_limit: 100000 
      tgtmatch 엔진을 구성하려면 이러한 설정이 마스터 플러그인 구성 파일(/etc/salt/master.d/raas.conf)에 있는지 확인합니다.
      engines: 
          - sseapi: {} 
          - eventqueue: {} 
          - rpcqueue: {} 
          - jobcompletion: {}    
          - tgtmatch: {} 
      
      sseapi_local_cache:     
          load: 3600 
          tgt: 86400 
          pillar: 3600 
          exprmatch: 86400 
          tgtmatch: 86400 
      
      sseapi_tgt_match: 
          poll_interval: 60     
          workers: 0 
          nice: 19
      참고: salt-master에서 대상 일치를 사용하려면 RaaS 구성에 다음과 같은 구성 설정이 있어야 합니다. target_groups_from_master_only: true.
    • 미니언 입자 페이로드 크기를 제한합니다.
      sseapi_max_minion_grains_payload: 2000
    • 정의된 시간(초)보다 오래된 작업의 건너뛰기가 가능하도록 설정합니다. 예를 들어, 하루보다 오래된 작업을 건너뛰도록 설정하려면 86400을 사용합니다. 0으로 설정하면 이 기능을 사용하지 않도록 설정됩니다.
      sseapi_command_age_limit:0
      참고:

      시스템 업그레이드 중에 이 설정을 사용하도록 설정하면 데이터베이스에 저장된 이전 명령이 예기치 않게 실행되지 않도록 하는 데 유용합니다.

    Salt의 이벤트 대기열과 Salt 마스터 플러그인의 대기열 엔진, salt-master 대상 일치, 입자 페이로드 크기 제한, 명령 경과 시간(age) 제한은 모두 함께 성능에 가장 민감한 코드 경로에서 처리량을 늘려주고 Salt 마스터와 Automation Config 간의 통신 지연을 줄여줍니다.

  6. 마스터 서비스를 다시 시작합니다.
    sudo systemctl restart salt-master
  7. 선택 사항: 마스터 플러그인이 마스터 노드와 RaaS 노드 간의 통신을 활성화하는지 확인하기 위해 테스트 작업을 실행할 수 있습니다.
    salt -v '*' test.ping

보이는 활동이 없더라도(예: 연결된 미니언이 없는 경우), 올바른 구성의 신호일 수 있습니다.

구성 설정 참조

구성 파일의 이러한 설정을 통해 각 Salt 마스터가 API(RaaS)에 연결할 수 있습니다. 이러한 설정은 /etc/salt/master.d/raas.conf 구성 파일에서 찾을 수 있습니다.

중요:

raas.conf 파일의 Salt 마스터 설정은 /etc/salt/master의 기존 설정보다 우선합니다. /etc/salt/master에서 fileserver_backend 또는 ext_pillar 설정을 사용자 지정한 경우에는 이러한 설정을 수동으로 병합하여 하나의 파일에만 표시되도록 해야 합니다. 필요한 경우 백엔드 순서를 다시 설정하여 우선 순위를 변경할 수 있습니다.

다음 표에는 일반 구성 설정에 대한 설명이 있습니다.

옵션 설명
id Salt 마스터 ID, 설정하지 않은 경우 자동 생성됨
sseapi_server SSEAPI 서버의 URL(예: https://sse.example.com:443)
engines 사용하도록 설정할 Salt 엔진(sseapi, eventqueue, rpcqueue, jobcompletion이 권장됨).
master_job_cache Automation Config 마스터 작업 캐시를 사용하기 위한 sseapi
event_return Salt 이벤트 returner, Automation Config 이벤트 returner를 사용하려면 sseapi가 권장됨
ext_pillar 외부 pillar 소스, sseapi가 권장됨
fileserver_backend 파일 서버 백엔드, sseapiroots가 권장됨
sseapi_update_interval 파일 서버에서 업데이트하는 빈도(초, 기본값: 60)
sseapi_poll_interval Automation Config에서 새 데이터를 폴링하는 빈도(초, 기본값: 30)
sseapi_jce_poll_interval jobcompletion 엔진에서 반복 간에 지연을 추가하여 Salt 마스터당 일별 최대 5,760개의 find_job 명령이 전송되도록 함(초, 기본값 15)
sseapi_timeout API(RaaS) 호출 시간 초과(초, 기본값: 200)
sseapi_key_rotation Salt 마스터 Automation Config 인증 키 순환 간격(초, 기본값: 86400)
sseapi_cache_pillar Automation Config 내에서 pillar 데이터를 캐시할지 여부(True 또는 False, 기본값: False)
sseapi_cluster_id (선택 사항) Salt 마스터 클러스터 이름, Salt 마스터를 Automation Config 내의 클러스터로 그룹화하는 데 사용
sseapi_failover_master Salt 마스터가 페일오버 Salt 마스터인지 여부(True 또는 False, 기본값: False)
sseapi_command_age_limit 정의된 시간(초, 사용하지 않으려면 0, 기본값: 0)보다 오래된 API(RaaS) 명령을 건너뛸지 여부

다음 표에는 SSL 설정에 대한 설명이 있습니다.

옵션 설명
sseapi_ssl_key 인증서의 개인 키 경로
sseapi_ssl_cert 인증서의 경로
sseapi_ssl_validate_cert Automation Config SSL 인증서의 유효성을 검사할지 여부(True 또는 False, 기본값: True)

다음 표에는 sseapi_event_queue 머리글 아래 나타나는 이벤트 대기열 엔진 설정에 대한 설명이 있습니다.

옵션 설명
name 이벤트 대기열 이름(기본값: sseapi-events, 변경할 필요 없음)
strategy 이벤트를 대기열에 넣는 경우(always, on_failure 또는 never, 기본값: never)
push_interval 이벤트를 Automation Config에 푸시하는 빈도(초, 기본값: 5)
batch_limit 간격당 Automation Config로 푸시할 최대 이벤트 수(기본값: 2000)
age_limit 대기열에 있는 이벤트의 최대 경과 시간(age), 가장 오래된 이벤트 삭제(초, 기본값: 86400)
size_limit 최대 대기열 크기, 가장 오래된 이벤트 삭제(이벤트 개수, 기본값 35000000)
vacuum_interval 대기열 데이터베이스를 비우는 빈도(초, 기본값: 86400)
vacuum_limit 대기열 데이터베이스를 비울 때 최대 대기열 크기(이벤트 개수, 기본값 350000)

다음 표에는 sseapi_rpc_queue 머리글 아래 나타나는 RPC 대기열 엔진 설정에 대한 설명이 있습니다.

옵션 설명
name 이벤트 대기열 이름(기본값: sseapi-rpc, 변경할 필요 없음)
strategy 이벤트를 대기열에 넣는 경우(always, on_failure 또는 never, 기본값: never)
push_interval Automation Config에 호출을 보내는 빈도(초, 기본값: 5)
batch_limit 간격당 Automation Config로 푸시할 최대 호출 수(기본값: 500)
age_limit 대기열에 있는 호출의 최대 경과 시간(age), 가장 오래된 항목 삭제(초, 기본값: 3600)
size_limit 최대 대기열 크기, 가장 오래된 항목 삭제(이벤트 개수, 기본값 360000)
vacuum_interval 대기열 데이터베이스를 비우는 빈도(초, 기본값: 86400)
vacuum_limit 대기열 데이터베이스를 비울 때 최대 대기열 크기(항목 개수, 기본값 100000)
다음 표에는 sseapi_tgt_match 머리글 아래 나타나는 대상 일치 엔진 설정에 대한 설명이 있습니다.
옵션 설명
poll_interval 엔진이 RaaS에서 업데이트된 대상 그룹 정보를 요청하는 빈도(초)(기본값 60)
workers 대상 그룹 일치 계산을 수행하려면 생성해야 하는 작업자 프로세스의 수입니다. 기본값(0)은 최대 제한인 8까지 CPU 코어당 하나의 프로세스를 생성합니다.
nice 대상 그룹 일치 작업자의 우선 순위가 좋습니다. 기본값(19)은 salt-master에서 실행되는 다른 프로세스와의 간섭을 방지하기 위해 작업자에게 가장 낮은 스케줄링 우선 순위를 부여합니다.

다음 표에는 경로 설정에 대한 설명이 있습니다. 초기 구성 생성 후에는 이러한 설정을 주의하여 변경해야 합니다. 설치 프로세스에서 이러한 모듈이 해당 디렉토리로 복사됩니다. 단, 추가 경로를 추가해도 악영향은 없습니다.

옵션 설명
beacons_dirs 비콘 외부 모듈 경로
engines_dirs 엔진 외부 모듈 경로
fileserver_dirs fileserver External Modules 경로
pillar_dirs pillar 외부 모듈 경로
returner_dirs returner 외부 모듈 경로
roster_dirs roster 외부 모듈 경로
runner_dirs 러너 외부 모듈 경로
module_dirs Salt 외부 모듈 경로
proxy_dirs 프록시 외부 모듈 경로
metaproxy_dirs metaproxy 외부 모듈 경로
states_dirs 상태 외부 모듈 경로

후속 작업

마스터 플러그인을 설치 및 구성한 후에는 설치 후 단계를 추가로 완료해야 합니다. 다음 단계는 RaaS 노드를 구성하는 단계입니다. 설치 후 프로세스를 계속하려면 RaaS 구성 파일 확인 항목을 참조하십시오.