14단계: 반복을 사용하도록 쿡북 업데이트 - AWS OpsWorks

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

14단계: 반복을 사용하도록 쿡북 업데이트

중요

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

레시피 코드를 여러 번 반복하는 기법인 반복을 사용하는 레시피를 추가하여 쿡북을 업데이트합니다. 이 레시피는 여러 콘텐츠를 포함하는 데이터 백 항목에 대한 메시지를 로그에 표시합니다.

인스턴스에서 쿡북을 업데이트하고 새 레시피를 실행하려면
  1. 로컬 워크스테이션에서 다음 코드를 사용하여 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']}\"]' **********")
  2. 터미널 또는 명령 프롬프트에서 tar 명령을 사용하여 opsworks_cookbook_demo 디렉터리와 업데이트된 내용 포함된 opsworks_cookbook_demo.tar.gz 파일의 새 버전을 만듭니다.

  3. 업데이트된 opsworks_cookbook_demo.tar.gz 파일을 S3 버킷에 업로드합니다.

  4. 5단계: 인스턴스에서 쿡북을 업데이트하고 레시피 실행 단원의 절차에 따라 인스턴스에서 쿡북을 업데이트하고 레시피를 실행합니다. "레시피 실행" 절차에서 실행할 레시피opsworks_cookbook_demo::iteration_demo를 입력합니다.

레시피를 테스트하려면
  1. 이전 절차의 [execute_recipes 명령 실행 중] 페이지가 표시된 상태에서 [cookbooks-demo1]의 [로그]에 대해 [표시]를 선택합니다. [execute_recipes] 로그 페이지가 표시됩니다.

  2. 로그를 아래로 스크롤하면서 다음과 유사한 항목을 찾습니다.

    [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/opsworks-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_keyrevision라는 6개의 컨텐츠가 있으며 이러한 컨텐츠의 값도 표시됩니다.

다음 단계에서는 특정 조건이 충족되는 경우에만 레시피 코드를 실행하도록 쿡북을 업데이트합니다.