기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
14단계: 반복을 사용하도록 쿡북 업데이트
중요
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 만료되었으며 신규 및 기존 고객 모두에 대해 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 AWS re:Post
레시피 코드를 여러 번 반복하는 기법인 반복을 사용하는 레시피를 추가하여 쿡북을 업데이트합니다. 이 레시피는 여러 콘텐츠를 포함하는 데이터 백 항목에 대한 메시지를 로그에 표시합니다.
인스턴스에서 쿡북을 업데이트하고 새 레시피를 실행하려면
-
로컬 워크스테이션에서 다음 코드를 사용하여
recipes
디렉터리의opsworks_cookbook_demo
하위 디렉터리에iteration_demo.rb
파일을 생성합니다.stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") stack["custom_cookbooks_source"].each do |content| Chef::Log.info("********** '#{content}' **********") end
참고
이전 레시피 코드를 작성하는 것이 반복을 사용하지 않는 다음 레시피 코드를 작성하는 것보다 더 짧고, 보다 유연하고, 오류 발생 가능성이 더 낮습니다.
stack = search("aws_opsworks_stack").first Chef::Log.info("********** Content of 'custom_cookbooks_source' **********") Chef::Log::info("********** '[\"type\", \"#{stack['custom_cookbooks_source']['type']}\"]' **********") Chef::Log::info("********** '[\"url\", \"#{stack['custom_cookbooks_source']['url']}\"]' **********") Chef::Log::info("********** '[\"username\", \"#{stack['custom_cookbooks_source']['username']}\"]' **********") Chef::Log::info("********** '[\"password\", \"#{stack['custom_cookbooks_source']['password']}\"]' **********") Chef::Log::info("********** '[\"ssh_key\", \"#{stack['custom_cookbooks_source']['ssh_key']}\"]' **********") Chef::Log::info("********** '[\"revision\", \"#{stack['custom_cookbooks_source']['revision']}\"]' **********")
-
터미널 또는 명령 프롬프트에서 tar 명령을 사용하여
opsworks_cookbook_demo
디렉터리와 업데이트된 내용 포함된opsworks_cookbook_demo.tar.gz
파일의 새 버전을 만듭니다. -
업데이트된
opsworks_cookbook_demo.tar.gz
파일을 S3 버킷에 업로드합니다. -
5단계: 인스턴스에서 쿡북을 업데이트하고 레시피 실행 단원의 절차에 따라 인스턴스에서 쿡북을 업데이트하고 레시피를 실행합니다. "레시피 실행" 절차에서 실행할 레시피에
opsworks_cookbook_demo::iteration_demo
를 입력합니다.
레시피를 테스트하려면
-
이전 절차의 [execute_recipes 명령 실행 중] 페이지가 표시된 상태에서 [cookbooks-demo1]의 [로그]에 대해 [표시]를 선택합니다. [execute_recipes] 로그 페이지가 표시됩니다.
-
로그를 아래로 스크롤하면서 다음과 유사한 항목을 찾습니다.
[2015-11-16T19:56:56+00:00] INFO: ********** Content of 'custom_cookbooks_source' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["type", "s3"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["url", "https://s3.amazonaws.com/amzn-s3-demo-bucket/opsworks_cookbook_demo.tar.gz"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["username", "
secret-key-value
"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["password", "secret-access-key-value
"]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["ssh_key", nil]' ********** [2015-11-16T19:56:56+00:00] INFO: ********** '["revision", nil]' **********이 레시피는 여러 콘텐츠를 포함하는 데이터 백 항목에 대한 메시지를 로그에 표시합니다. 데이터 백 항목은
aws_opsworks_stack
데이터 백에 있습니다. 데이터 백 항목에는custom_cookbooks_source
라는 콘텐츠가 있습니다. 이 컨텐츠 내에는type
,url
,username
,password
,ssh_key
및revision
라는 6개의 컨텐츠가 있으며 이러한 컨텐츠의 값도 표시됩니다.
다음 단계에서는 특정 조건이 충족되는 경우에만 레시피 코드를 실행하도록 쿡북을 업데이트합니다.