기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Windows 스택에서 노드 검색 인덱스 사용
중요
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 만료되었으며 신규 및 기존 고객 모두에 대해 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 AWS re:Post
참고
이 예제에서는 사용자가 이미 Windows 인스턴스에서 레시피 실행 예제를 완료한 것으로 가정합니다. 그렇지 않은 경우 먼저 그 예제를 수행해야 합니다. 특히, 그 예제는 인스턴스에 대한 RDP 액세스를 활성화하는 방법을 설명합니다.
이 예제는 단일 사용자 지정 계층 및 단일 인스턴스를 포함하는 Windows 스택을 기반으로 합니다. Chef 검색을 node
검색 인덱스와 함께 사용하여 서버의 퍼블릭 IP 주소를 가져와 C:\tmp
디렉터리에서 파일에 기록합니다. 다음은 이 예제를 위한 스택을 생성하는 방법을 간략히 요약한 것입니다. 자세한 내용은 새 스택 생성 섹션을 참조하세요.
스택을 만듭니다
-
AWS OpsWorks Stacks 콘솔
을 열고 스택 추가를 선택합니다. -
다음 설정을 지정하고, 그 외 설정에 대해서는 기본값을 수락한 다음 [스택 추가]를 선택합니다.
-
이름 – NodeSearch
-
리전 – 미국 서부(오레곤)
이 예제는 모든 리전에서 작동하지만 자습서의 경우 미국 서부(오레곤)를 사용하는 것이 좋습니다.
-
기본 운영 체제 - Microsoft Windows Server 2012 R2
-
-
[계층 추가]를 선택하여 스택에 다음 설정으로 사용자 지정 계층을 추가합니다.
-
이름 – IPTest
-
짧은 이름 - iptest
-
-
기본 설정을 사용하여 IPTest 계층에 24/7 t2.micro 인스턴스를 추가하고 해당 인스턴스를 시작합니다. 이 인스턴스의 이름은 iptest1입니다.
AWS OpsWorks Stacks는이 인스턴스
AWS-OpsWorks-RDP-Server
에를 자동으로 할당하므로 권한 있는 사용자가 인스턴스에 로그인할 수 있습니다. -
[권한] 및 [편집]을 차례대로 선택하고 [SSH/RDP] 및 [sudo/admin]을 선택합니다. 인스턴스에 로그인하려면 일반 사용자에게는
AWS-OpsWorks-RDP-Server
보안 그룹 이외에 이러한 권한 부여가 필요합니다.참고
Administrator로도 로그인할 수 있지만 로그인 절차가 다릅니다. 자세한 내용은 RDP를 사용하여 로그인 섹션을 참조하세요.
쿡북을 설정하려면
-
nodesearch
하위 디렉터리를 만들고 그 디렉터리로 이동합니다. -
다음 내용이 포함된
metadata.rb
파일을 만들어opstest
에 저장합니다.name "nodesearch" version "0.1.0"
-
recipes
안에nodesearch
디렉터리를 만듭니다. -
다음 레시피가 포함된
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
이 레시피는 다음 작업을 수행합니다.
-
디렉터리 리소스를 사용하여 파일을 위한
C:\tmp
디렉터리를 만듭니다.이 리소스에 대한 자세한 정보는 예제 3: 디렉터리 생성 단원을 참조하세요.
-
node
검색 인덱스와 함께 Chef 검색을 사용하여iptest
로 시작하는 호스트 이름이 포함된 노드(인스턴스) 목록을 얻습니다.계층의 짧은 이름에 정수를 추가하여 호스트 이름을 생성하는 기본 테마를 사용하는 경우 이 쿼리는 IPTest 계층의 인스턴스를 모두 반환합니다. 예를 들어, 이 계층에는 인스턴스가 하나 뿐인 것으로 알려져 있기 때문에 레시피는 첫 번째 인스턴스만
windowsserver
에 할당합니다. 인스턴스가 여러 개인 경우 전체 목록을 가져와 인스턴스를 열거할 수 있습니다. -
이 실행을 위해 Chef 로그에 IP 주소와 함께 메시지를 추가합니다.
windowsserver
객체는ipaddress
속성이 인스턴스의 퍼블릭 IP 주소로 설정된 해시 테이블이므로, 후속 레시피 코드의 해당 주소를windowsserver[:ipaddress]
로 표현할 수 있습니다. 레시피가 해당 문자열을 메시지에 삽입하고 Chef 로그에 추가합니다. -
file
리소스를 사용하여 IP 주소가 포함된C:\tmp\addresses.txt
라는 파일을 만듭니다.이 리소스의
content
속성은 파일에 추가할 내용을 지정하는데, 이 경우에는 퍼블릭 IP 주소입니다.
-
-
nodesearch
의.zip
아카이브를 생성하고, 이 아카이브를 S3 버킷에 업로드한 다음, 해당 아카이브를 퍼블릭으로 설정하고, 아카이브의 URL을 기록합니다.Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 S3 버킷을 비우려면 어떻게 해야 합니까? 단원 또는 S3 버킷을 삭제하려면 어떻게 해야 합니까? 단원을 참조하세요.
이제 쿡북을 설치하고 레시피를 실행할 수 있습니다.
쿡북을 설치하고 레시피를 실행하려면
-
스택을 편집해 사용자 지정 쿡북을 활성화하고 다음 설정을 지정합니다.
-
리포지토리 유형 – S3 아카이브
-
리포지토리 URL - 앞에서 기록해 둔 쿡북 아카이브 URL
기타 설정에 대해 기본값을 수락하고 [저장]을 선택하여 스택 구성을 업데이트합니다.
-
-
사용자 지정 쿡북 업데이트 스택 명령을 실행하여 스택의 인스턴스(온라인 인스턴스 포함)에 사용자 지정 쿡북의 최신 버전을 설치합니다. 쿡북의 이전 버전이 있으면 이 명령이 이전 버전을 덮어 씁니다.
-
사용자 지정 쿡북 업데이트가 완료되면 실행할 레시피가
nodesearch::default
로 설정된 상태에서 레시피 실행 스택 명령을 실행하여 레시피를 실행합니다. 이 명령은 레시피로 구성된 실행 목록을 사용하여 Chef 실행을 시작합니다. execute_recipes 페이지는 그대로 열어 두십시오.
레시피가 성공적으로 실행되면 이를 확인할 수 있습니다.
nodesearch를 확인하려면
-
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) ...
-
RDP를 사용하여 인스턴스에 로그인하고
C:\tmp\addresses.txt
의 내용을 확인합니다.