이 예제에서는 SaltStack Config를 사용하여 구성 설정을 빠르게 배포하고 관리하기 위해 상태 파일을 적용하는 방법을 알아봅니다. IT 시스템 관리자 또는 DevOps 팀 멤버 역할을 수행하는 경우, 특히 대규모로 많은 노드에서 구성 설정을 하나씩 수동으로 추가하거나 업데이트하려면 시간이 매우 많이 소요된다는 것을 알고 있습니다. 설상가상으로 수백 또는 수천 개의 노드를 동시에 관리해야 하는 경우에는 구성 실수 또는 구성 편차가 발생할 가능성도 있습니다. 상태 파일 시스템은 이런 문제를 해결하는 데 도움이 될 수 있습니다. 이 예에서는 SaltStack Config에서 상태 파일을 사용하여 Windows 서버의 방화벽 설정과 같은 구성 설정을 일관되게 추가하고 업데이트하는 방법을 알아봅니다.

경고:

이 실습 예제는 환경을 변경하므로 완료할 때 주의해야 합니다. 운영 환경이 아닌 테스트 또는 개발 환경에서만 노드를 사용하여 이 예제를 시도하는 것이 좋습니다.

Windows 노드에서 방화벽 설정 구성

포트 445에 대한 방화벽을 열어 Windows 미니언에서 방화벽 설정을 구성하려면 다음을 수행합니다.

  1. SaltStack Config 파일 서버에서 새 파일을 생성합니다.
    1. SaltStack Config 사용자 인터페이스의 사이드 메뉴에서 구성 > 파일 서버를 클릭합니다.
    2. [파일 서버] 업무 공간을 처음 열면 파일 디렉토리와 빈 새 파일이 보입니다. 빈 파일을 사용하여 새 파일을 생성합니다.
  2. 파일 서버에서 새 상태 파일(SLS)을 생성합니다.
    1. Saltenv 메뉴를 클릭하고 base를 선택합니다.
    2. 레이블이 없는 메뉴 옆에 파일 경로와 파일 이름을 입력합니다. /windows/firewall.sls를 사용합니다.
    3. 파일 본문에 다음 상태 파일 코드(YAML 구문 사용)를 복사하여 붙여넣습니다.
      open_smb_port:
        win_firewall.add_rule:
          - name: SMB (445)
          - localport: 445
          - protocol: tcp
          - action: allow
      

      Windows 방화벽 모듈에 대한 자세한 내용은 Salt 모듈 - Win 방화벽을 참조하십시오.

    4. 상태 파일을 저장합니다.
    5. 파일 서버 디렉토리의 base > windows > firewall.sls 아래에 새 파일이 나타나는지 확인합니다.
  3. 새 작업을 생성합니다.
    1. 사이드 메뉴에서 구성 > 작업을 클릭하여 작업 업무 공간을 엽니다.
    2. 작업 생성 버튼을 클릭합니다.
      참고:

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

  4. 새 작업에 대한 세부 정보를 입력하고 작업을 저장합니다.
    필드 샘플 값

    이름

    이 작업에 알아보기 쉬운 이름(예: "Windows 방화벽 구성")을 지정합니다.

    설명

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

    명령

    salt를 선택합니다.

    salt 명령은 미니언에 대해 실행되는 작업에 사용됩니다.

    대상

    이 메뉴에서는 아무 것도 선택하지 마십시오. 이 필드를 비워두면 작업을 실행할 때 대상을 선택할 수 있습니다.

    함수

    이 필드를 클릭하고 이 모듈을 선택할 수 있을 때까지 state.apply 입력을 시작합니다.

    이 필드는 이 작업이 실행되면 적용되는 Salt 모듈을 선택하는 위치입니다.

    환경

    메뉴에서 base를 선택합니다.

    상태

    메뉴(windows.firewall)에서 새로 생성한 상태 파일을 선택합니다.

    인수

    이 모듈은 인수를 허용하지 않으므로 비워둡니다.

  5. 작업을 생성했으므로 작업 대상을 선택하여 작업을 실행합니다.
    1. 사이드 메뉴에서 미니언을 클릭하여 미니언 업무 공간을 열고 대상을 확인합니다.
    2. 모든 미니언 테이블에서 이 작업의 대상으로 지정할 Windows 미니언을 찾습니다. 이 미니언 옆의 확인란을 선택하고 작업 실행 버튼을 클릭합니다.
    3. [작업 실행] 대화상자에서 작업 메뉴를 클릭하고 이전 단계에서 생성한 Windows 방화벽 구성 작업을 선택합니다. 필요한 경우 작업의 이름을 입력하여 작업을 필터링할 수 있습니다.
    4. 지금 실행을 클릭합니다.

      작업을 성공적으로 실행한 경우 작업이 성공적으로 시작되었음을 설명하는 알림이 나타납니다.

  6. 사이드 메뉴에서 활동 > 완료됨을 클릭하여 작업이 완료되었는지 여부를 확인합니다.

    이 테이블에 작업이 표시되지 않으면 아직 진행 중일 수 있습니다. 현재 실행 중인 작업은 활동 > 진행 중을 클릭하면 찾을 수 있습니다. 작업이 테이블에 나타날 때까지 계속해서 활동 > 완료됨을 새로 고칩니다.

  7. 작업이 완료되면 작업 결과를 검토합니다.
    1. 작업이 표시된 행을 찾아서 해당 JID(작업 ID 번호)를 클릭합니다.
      참고:

      JID는 20자리의 하이퍼링크된 숫자로 나타납니다. 예를 들어 한 가지 가능한 JID는 20210823204015061902일 수 있습니다.

    2. 작업 결과를 검토하여 포트 445에 대해 방화벽이 열려 있는지 확인합니다.

결과 및 주요 정보 요약

작업 결과를 검토하면서 다음과 같은 사항을 고려하십시오.

  • 상태 파일은 대상 노드 집합에 올바른 구성 설정(예: 방화벽 설정)을 신속하게 적용하기 위한 간단한 방법을 제공합니다. 상태 파일을 사용하면 노드에 일관된 구성 설정이 있는지 확인하고 이러한 설정을 어떤 규모로든 빠르고 효율적으로 배포할 수 있습니다. 구성 설정을 변경해야 하는 경우에는 상태 파일을 업데이트하고 대상에 정의된 모든 미니언에 다시 적용하기만 하면 됩니다.
  • 또한 상태 파일은 시간이 지남에 따라 시스템 구성이 점점 더 달라지거나 또는 노드 간에 달라지는 구성 편차를 방지합니다. 상태 파일을 적용할 때 SaltStack Config는 대상이 원하는 구성 상태인지 확인합니다. 상태는 구성 정책과 같습니다. 서버에 대해 원하는 대상 상태를 정의합니다. 이런 상태(정책)를 시스템에 적용하면 SaltStack Config는 구성이 해당 상태(정책)를 준수하도록 설정하는 데 필요한 작업만 수행합니다. 이미 규정을 준수하는 경우 SaltStack Config는 단순히 규정을 준수한다고 알려주고 더 이상 변경하지 않습니다.
  • 이 예에서는 상태 파일을 SaltStack Config 파일 서버에 로컬로 저장했지만, 버전이 제어되는 개인 Git 저장소에 상태 파일을 저장할 수 있습니다. 코드형 인프라(Infrastructure as Code) 방식을 사용하여 상태 파일에 대한 변경 내용을 저장하고 면밀히 모니터링할 수 있는 개인 Git 저장소에 SaltStack Config를 연결하는 사용자가 많이 있습니다.