Windows 스택에서 노드 검색 인덱스 사용 - AWS OpsWorks

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Windows 스택에서 노드 검색 인덱스 사용

중요

이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두 사용할 수 없습니다. 고객은 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션할 것을 강력히 권장합니다. 마이그레이션에 대해 궁금한 점이 있으면 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의하세요.

참고

이 예제에서는 사용자가 이미 Windows 인스턴스에서 레시피 실행 예제를 완료한 것으로 가정합니다. 그렇지 않은 경우 먼저 그 예제를 수행해야 합니다. 특히, 그 예제는 인스턴스에 대한 RDP 액세스를 활성화하는 방법을 설명합니다.

이 예제는 단일 사용자 지정 계층 및 단일 인스턴스를 포함하는 Windows 스택을 기반으로 합니다. Chef 검색을 node 검색 인덱스와 함께 사용하여 서버의 퍼블릭 IP 주소를 가져와 C:\tmp 디렉터리에서 파일에 기록합니다. 다음은 이 예제를 위한 스택을 생성하는 방법을 간략히 요약한 것입니다. 자세한 내용은 새 스택 생성 섹션을 참조하세요.

스택을 만듭니다
  1. AWS OpsWorks Stacks 콘솔을 열고 스택 추가를 선택합니다.

  2. 다음 설정을 지정하고, 그 외 설정에 대해서는 기본값을 수락한 다음 [스택 추가]를 선택합니다.

    • 이름 — NodeSearch

    • 리전 – 미국 서부(오레곤)

      이 예제는 모든 리전에서 작동하지만 자습서의 경우 미국 서부(오레곤)를 사용하는 것이 좋습니다.

    • 기본 운영 체제 - Microsoft Windows Server 2012 R2

  3. [계층 추가]를 선택하여 스택에 다음 설정으로 사용자 지정 계층을 추가합니다.

    • 이름 – IPTest

    • 짧은 이름 - iptest

  4. 기본 설정을 사용하여 IPTest 계층에 24/7 t2.micro 인스턴스를 추가하고 해당 인스턴스를 시작합니다. 이 인스턴스의 이름은 iptest1입니다.

    AWS OpsWorks 스택은 이 인스턴스에 자동으로 AWS-OpsWorks-RDP-Server 할당되며, 이를 통해 인증된 사용자가 인스턴스에 로그인할 수 있습니다.

  5. [권한] 및 [편집]을 차례대로 선택하고 [SSH/RDP] 및 [sudo/admin]을 선택합니다. 인스턴스에 로그인하려면 일반 사용자에게는 AWS-OpsWorks-RDP-Server 보안 그룹 이외에 이러한 권한 부여가 필요합니다.

    참고

    Administrator로도 로그인할 수 있지만 로그인 절차가 다릅니다. 자세한 내용은 RDP를 사용하여 로그인 섹션을 참조하세요.

쿡북을 설정하려면
  1. nodesearch 하위 디렉터리를 만들고 그 디렉터리로 이동합니다.

  2. 다음 내용이 포함된 metadata.rb 파일을 만들어 opstest에 저장합니다.

    name "nodesearch" version "0.1.0"
  3. recipes 안에 nodesearch 디렉터리를 만듭니다.

  4. 다음 레시피가 포함된 default.rb 파일을 만들어 recipes 디렉터리에 저장합니다.

    directory 'C:\tmp' do rights :full_control, 'Everyone' recursive true action :create end windowsserver = search(:node, "hostname:iptest*").first Chef::Log.info("**********The public IP address is: '#{windowsserver[:ipaddress]}'**********") file 'C:\tmp\addresses.txt' do content "#{windowsserver[:ipaddress]}" rights :full_control, 'Everyone' action :create end

    이 레시피는 다음 작업을 수행합니다.

    1. 디렉터리 리소스를 사용하여 파일을 위한 C:\tmp 디렉터리를 만듭니다.

      이 리소스에 대한 자세한 정보는 예제 3: 디렉터리 생성 단원을 참조하세요.

    2. node 검색 인덱스와 함께 Chef 검색을 사용하여 iptest로 시작하는 호스트 이름이 포함된 노드(인스턴스) 목록을 얻습니다.

      계층의 짧은 이름에 정수를 추가하여 호스트 이름을 생성하는 기본 테마를 사용하는 경우 이 쿼리는 IPTest 계층의 인스턴스를 모두 반환합니다. 예를 들어, 이 계층에는 인스턴스가 하나 뿐인 것으로 알려져 있기 때문에 레시피는 첫 번째 인스턴스만 windowsserver에 할당합니다. 인스턴스가 여러 개인 경우 전체 목록을 가져와 인스턴스를 열거할 수 있습니다.

    3. 이 실행을 위해 Chef 로그에 IP 주소와 함께 메시지를 추가합니다.

      windowsserver 객체는 ipaddress 속성이 인스턴스의 퍼블릭 IP 주소로 설정된 해시 테이블이므로, 후속 레시피 코드의 해당 주소를 windowsserver[:ipaddress]로 표현할 수 있습니다. 레시피가 해당 문자열을 메시지에 삽입하고 Chef 로그에 추가합니다.

    4. file 리소스를 사용하여 IP 주소가 포함된 C:\tmp\addresses.txt라는 파일을 만듭니다.

      이 리소스의 content 속성은 파일에 추가할 내용을 지정하는데, 이 경우에는 퍼블릭 IP 주소입니다.

  5. nodesearch.zip 아카이브를 생성하고, 이 아카이브를 S3 버킷에 업로드한 다음, 해당 아카이브를 퍼블릭으로 설정하고, 아카이브의 URL을 기록합니다.

    Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 S3 버킷을 비우려면 어떻게 해야 합니까? 단원 또는 S3 버킷을 삭제하려면 어떻게 해야 합니까? 단원을 참조하세요.

이제 쿡북을 설치하고 레시피를 실행할 수 있습니다.

쿡북을 설치하고 레시피를 실행하려면
  1. 스택을 편집해 사용자 지정 쿡북을 활성화하고 다음 설정을 지정합니다.

    • 리포지토리 유형S3 아카이브

    • 리포지토리 URL - 앞에서 기록해 둔 쿡북 아카이브 URL

    기타 설정에 대해 기본값을 수락하고 [저장]을 선택하여 스택 구성을 업데이트합니다.

  2. 사용자 지정 쿡북 업데이트 스택 명령을 실행하여 스택의 인스턴스(온라인 인스턴스 포함)에 사용자 지정 쿡북의 최신 버전을 설치합니다. 쿡북의 이전 버전이 있으면 이 명령이 이전 버전을 덮어 씁니다.

  3. 사용자 지정 쿡북 업데이트가 완료되면 실행할 레시피nodesearch::default로 설정된 상태에서 레시피 실행 스택 명령을 실행하여 레시피를 실행합니다. 이 명령은 레시피로 구성된 실행 목록을 사용하여 Chef 실행을 시작합니다. execute_recipes 페이지는 그대로 열어 두십시오.

레시피가 성공적으로 실행되면 이를 확인할 수 있습니다.

nodesearch를 확인하려면
  1. Chef 로그에서 최신 execute_recipes 이벤트를 확인합니다. 실행 중인 명령 execute_recipes 페이지에서 iptest1 인스턴스의 로그 열에 있는 표시를 선택하여 로그를 표시합니다. 로그를 거의 끝까지 아래로 스크롤하여 다음과 같은 로그 메시지를 찾습니다.

    ... [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/recipes/default.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: Storing updated cookbooks/nodesearch/metadata.rb in the cache. [2015-05-13T18:55:47+00:00] INFO: **********The public IP address is: '192.0.0.1'********** [2015-05-13T18:55:47+00:00] INFO: Processing directory[C:\tmp] action create (nodesearch::default line 1) [2015-05-13T18:55:47+00:00] INFO: Processing file[C:\tmp\addresses.txt] action create (nodesearch::default line 10) ...
  2. RDP를 사용하여 인스턴스에 로그인하고 C:\tmp\addresses.txt의 내용을 확인합니다.