로컬로 쿡북 종속성 패키징 - AWS OpsWorks

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

로컬로 쿡북 종속성 패키징

중요

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

Berkshelf를 사용하면 쿡북 종속성을 로컬로 패키징하고, Amazon S3에 패키지를 업로드하며, Amazon S3에서 패키지를 쿡북 소스로 사용하도록 스택을 수정할 수 있습니다. Amazon S3 버킷에 전달한 콘텐츠에는 고객 콘텐츠가 포함될 수 있습니다. 중요 데이터 제거에 관한 자세한 내용은 S3 버킷을 비우려면 어떻게 해야 합니까? 또는 S3 버킷을 삭제하려면 어떻게 해야 합니까?를 참조하세요.

다음 안내에서는 쿡북과 해당 종속성을.zip 파일로 미리 패키징한 다음.zip 파일을 Stacks의 Linux 인스턴스용 쿡북 소스로 사용하는 방법을 설명합니다. AWS OpsWorks 첫 번째 안내서에서는 1개의 쿡북을 패키징하는 방법을 설명합니다. 두 번째 안내서에서는 여러 쿡북을 패키징하는 방법을 설명합니다.

시작하기 전에 Chef 커뮤니티가 만든 도구 모음인 Chef Development Kit(Chef DK라고도 함)를 설치하세요. chef 명령줄 도구를 사용하려면 이 키트가 필요합니다.

Chef 12에서 로컬로 종속성 패키징

Chef 12 Linux에서는 더 이상 Berkshelf가 스택 인스턴스에 기본적으로 설치되지 않습니다. 로컬 개발 시스템에서 Berkshelf를 설치한 후 사용하여 로컬에서 쿡북 종속성을 패키징하는 것이 좋습니다. 종속성이 포함된 패키지를 Amazon S3로 업로드합니다. 마지막으로 쿡북 소스로 업로드된 패키지를 사용하도록 Chef 12 Linux 스택을 수정합니다. Chef 12에서 쿡북을 패키징하는 경우 다음과 같은 차이점이 있습니다.

  1. 로컬 컴퓨터에서 chef 명령줄 도구를 실행하여 쿡북을 생성합니다.

    chef generate cookbook "server-app"

    이 명령은 쿡북, Berksfile, metadata.rb 파일 및 레시피 디렉터리를 생성해 쿡북과 이름이 같은 폴더에 저장합니다. 다음 예제는 생성된 항목의 구조를 보여줍니다.

    server-app <-- the cookbook you've just created └── Berksfile ├── metadata.rb └── recipes
  2. 텍스트 편집기에서 server-app 쿡북이 종속될 쿡북을 가리키도록 Berksfile을 편집합니다. 이 예제에서는 server-app이 Chef Supermarket의 java 쿡북에 종속되도록 합니다. 버전 1.50.0 이상 마이너 버전을 지정하지만 작은 따옴표 안에 게시된 버전은 어떤 것이든 입력할 수 있습니다. 변경 내용을 저장하고 파일을 닫습니다.

    source 'https://supermarket.chef.io' cookbook 'java', '~> 1.50.0'
  3. metadata.rb 파일을 편집하여 종속성을 추가합니다. 변경 내용을 저장하고 파일을 닫습니다.

    depends 'java' , '~> 1.50.0'
  4. Chef에서 자동으로 생성된 server-app 쿡북 디렉터리로 변경한 다음 package 명령을 실행하여 쿡북의 tar 파일을 만듭니다. 여러 쿡북을 패키징하는 경우 모든 쿡북이 저장된 루트 디렉터리에서 이 명령을 실행합니다. 단일 쿡북을 패키징하려면 쿡북 디렉터리 레벨에서 이 명령을 실행합니다. 이 예에서는 server-app 디렉터리에서 이 명령을 실행합니다.

    berks package cookbooks.tar.gz

    다음과 유사하게 출력됩니다. tar.gz file 파일이 로컬 디렉터리에 생성됩니다.

    Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
  5. 에서 AWS CLI방금 생성한 패키지를 Amazon S3에 업로드합니다. 스택 설정에 필요하므로 S3에 업로드한 후 쿡북 패키지의 새 URL을 적어 둡니다.

    aws s3 cp cookbooks.tar.gz s3://bucket-name/

    다음과 유사하게 출력됩니다.

    upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
  6. AWS OpsWorks Stacks에서 업로드한 패키지를 쿡북 소스로 사용하도록 스택을 수정하십시오.

    1. [사용자 지정 Chef 쿡북 사용] 설정을 []로 설정합니다.

    2. [리포지토리 유형]을 [S3 아카이브]로 설정합니다.

    3. [리포지토리 URL]에 5단계에서 업로드한 쿡북 패키지의 URL을 붙여 넣습니다.

    스택 변경 내용을 저장합니다.

로컬로 종속성 패키징(1개 쿡북)

  1. 로컬 컴퓨터에서 chef 명령줄 도구를 사용하여 쿡북을 생성합니다.

    chef generate cookbook "server-app"

    이 명령은 쿡북 및 Berksfile을 생성해 쿡북과 이름이 같은 폴더에 저장합니다.

  2. Chef에서 자동으로 생성된 쿡북 디렉터리로 변경한 후 다음 명령을 실행하여 모든 항목을 패키징합니다.

    berks package cookbooks.tar.gz

    출력은 다음과 같습니다.

    Cookbook(s) packaged to /Users/username/tmp/berks/cookbooks.tar.gz
  3. 에서 AWS CLI방금 생성한 패키지를 Amazon S3에 업로드합니다.

    aws s3 cp cookbooks.tar.gz s3://bucket-name/

    출력은 다음과 같습니다.

    upload: ./cookbooks.tar.gz to s3://bucket-name/cookbooks.tar.gz
  4. AWS OpsWorks Stacks에서 업로드한 패키지를 쿡북 소스로 사용하도록 스택을 수정하십시오.

로컬로 종속성 패키징(여러 쿡북)

이 예제는 2개의 쿡북을 생성하고 종속성을 패키징합니다.

  1. 로컬 컴퓨터에서 다음 chef 명령을 실행하여 쿡북을 2개 생성합니다.

    chef generate cookbook "server-app" chef generate cookbook "server-utils"

    이 예제에서는 server-app 쿡북이 Java 구성을 수행하므로 Java에서 종속성을 추가해야 합니다.

  2. community Java 쿡북에 대한 종속성을 추가하도록 server-app/metadata.rb를 편집합니다.

    maintainer "The Authors" maintainer_email "you@example.com" license "all_rights" description "Installs/Configures server-app" long_description "Installs/Configures server-app" version "0.1.0" depends "java"
  3. 쿡북 루트 디렉터리에서 Berksfile 파일을 다음과 같이 편집하여 Berkshelf에 패키징할 항목을 알립니다.

    source "https://supermarket.chef.io" cookbook "server-app", path: "./server-app" cookbook "server-utils", path: "./server-utils"

    이제 파일 구조가 아래와 같이 표시될 것입니다.

    .. └── Berksfile ├── server-app └── server-utils
  4. 마지막으로 zip 패키지를 생성하여 Amazon S3에 업로드하고 새 쿡북 소스를 사용하도록 AWS OpsWorks Stacks 스택을 수정합니다. 이렇게 하려면 로컬로 종속성 패키징(1개 쿡북) 단원의 2~4단계를 따릅니다.

추가적인 리소스

쿡북 종속성 패키징에 대한 자세한 정보는 다음 문서를 참조하세요.