이 예에서는 상태 파일을 적용하여 SaltStack Config를 사용하여 구성 설정을 신속하게 배포하고 관리하는 방법에 대한 또 다른 예를 볼 수 있습니다. 이 예에서는 세 가지 다른 작업(서비스 설치, 서비스 시작, 서비스를 실행하는 노드에 파일 배포)을 처리하는 약간 더 복잡한 상태 파일을 보여줍니다.

경고:

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

CentOS(Linux) 노드에서 Apache 웹 서버 구성

Apache 웹 서버를 구성하고 배포하는 상태 파일을 작성하려면:

  1. SaltStack Config 파일 서버에서 새 파일을 생성합니다.
    1. SaltStack Config 사용자 인터페이스의 사이드 메뉴에서 구성 > 파일 서버를 클릭합니다.
    2. 파일 서버 업무 공간을 처음 열면 파일 디렉토리와 빈 새 파일이 보입니다. 빈 파일을 사용하여 새 파일을 생성합니다.
    파일 서버 업무 공간의 빈 상태 파일
  2. 빈 새 파일을 사용하여 새 상태 파일(SLS)을 생성합니다.
    1. Saltenv 메뉴를 클릭하고 base를 선택합니다.
    2. 레이블이 없는 메뉴 옆에 파일 경로와 파일 이름을 입력합니다. /apache/centos.sls를 사용합니다.
    3. 파일 본문에 다음 상태 파일 코드(YAML 구문 사용)를 복사하여 붙여넣습니다.
      install_apache:
        pkg.installed:
          - name: httpd
          
      ensure_service_running:
        service.running:
          - name: httpd
          - watch:
            - pkg: install_apache
            
      default_html_page:
        file.managed:
          - name: /var/www/html/index.html
          - source: salt://apache/index.html
      
      참고:
      이 상태 파일에는 세 가지 다른 Salt 실행 모듈을 실행하는 세 단계가 있습니다. 이 상태 파일이 미니언에 적용되면 SaltStack Config는 다음을 수행합니다.
      • 미니언에 Apache(httpd)를 설치합니다.
      • Apache 서비스를 시작합니다.
      • 미니언에서 호스팅되는 샘플 HTML 인덱스 페이지를 배포합니다.
      CentOS 시스템에 대한 예제 상태 파일
    4. 상태 파일을 저장합니다.
    5. 파일 서버 디렉토리의 base > apache > centos.sls 아래에 새 파일이 표시되는지 확인합니다.CentOS 시스템에 대한 예제 상태 파일
  3. 파일 서버에 샘플 HTML 인덱스 페이지를 추가합니다.
    1. 파일 서버 업무 공간에서 생성 버튼을 클릭하여 새 파일을 추가합니다.
    2. 레이블이 없는 메뉴를 클릭하고 base를 선택합니다.
    3. 레이블이 없는 메뉴 옆에 이 파일의 파일 경로와 파일 이름을 입력합니다. /apache/index.html를 사용합니다.
    4. 파일 본문에 다음 HTML 코드를 복사하여 붙여넣습니다.
      <html>
      <head><title>SaltStack Config Example></title></head>
      <body>
      <h1>SaltStack Config Example</h1>
      
      Hello, world!
      
      </body>
      
    5. HTML 파일을 저장합니다.
    6. 파일 서버 디렉토리의 base > apache > index.html에 새 파일이 나타나는지 확인합니다.
  4. 새 작업을 생성합니다.
    1. 사이드 메뉴에서 구성 > 작업을 클릭하여 작업 업무 공간을 엽니다.
    2. 작업 생성 버튼을 클릭합니다.
      참고:

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

  5. [새 작업] 화면에서 새 작업에 대한 세부 정보를 입력하고 작업을 저장합니다.
    필드 샘플 값

    이름

    이 작업에 알아보기 쉬운 이름(예: "Apache 웹 서버 구성")을 지정합니다.

    설명

    다른 사용자에게 이 작업의 용도를 알려주는 설명(예: "샘플 HTML 인덱스 페이지와 함께 대상 CentOS 노드에 Apache 웹 서버를 구성하고 배포합니다.")을 추가합니다.

    명령

    salt를 선택합니다.

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

    대상

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

    함수

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

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

    환경

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

    상태

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

    인수

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

    작업 입력

    이 작업에는 작업 입력이 필요하지 않으므로 비워 둡니다. 작업 입력에 대한 자세한 내용은 작업을 생성하는 방법을 참조하십시오.

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

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

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

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

  8. 작업이 완료되면 인덱스 페이지가 새로 구성된 웹 서버에서 호스팅되는지 확인합니다.
    1. 웹 브라우저를 사용하여 작업에서 대상으로 지정한 CentOS 미니언의 IP 주소로 이동합니다. SaltStack Config에서 미니언의 IP 주소를 찾으려면 해당 미니언의 IP 주소 열에서 대상 업무 공간을 확인합니다.
    2. 해당 IP 주소를 입력하면 샘플 HTML 인덱스 페이지가 표시됩니다.
인사말을 표시하는 HTML 인덱스 페이지

결과 및 주요 정보 요약

작업 결과 및 인덱스 페이지를 검토하면서 다음과 같은 사항을 고려하십시오.

  • 상태 파일은 시스템 구성을 어떤 규모로든 빠르게 설정 및 업데이트하고 코드형 인프라(Infrastructure as Code) 방식에서 구성 편차를 방지하는 방법입니다.
  • SaltStack Config를 사용하면 변수(상태 파일이 시스템에 적용될 때 상태 파일에 전달되는 정보 또는 조건에 따라 변경될 수 있는 값)와 같은 복잡한 요소를 통합할 수 있는 상태 파일을 작성할 수 있습니다.
  • 또한 개인 bank(SaltStack Config에서는 pillar라고 함)에서 암호를 가져올 수 있는 상태 파일을 작성하면, 자격 증명을 안전하게 유지하는 동시에 권한 있는 팀 멤버가 액세스 권한이 있는 리소스에 대한 작업을 실행할 수 있도록 할 수 있습니다.