를 사용하여 AWS OpsWorks for Chef Automate 서버 생성 AWS CloudFormation - AWS OpsWorks

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

를 사용하여 AWS OpsWorks for Chef Automate 서버 생성 AWS CloudFormation

중요

AWS OpsWorks for Chef Automate는 2024년 5월 5일에 수명이 종료되었으며 신규 고객과 기존 고객 모두 사용할 수 없게 되었습니다. 기존 고객은 Chef SaaS 또는 대체 솔루션으로 마이그레이션하는 것이 좋습니다. 질문이 있는 경우 AWS re:Post 또는 Premium AWS Support를 통해 AWS Support 팀에 문의할 수 있습니다.

AWS OpsWorks for Chef Automate 에서 Chef Automate 서버를 실행할 수 있습니다. AWS약 15분 안에 Chef Automate 서버를 프로비저닝할 수 있습니다.

2021년 5월 3일부터 일부 Chef 오토메이트 서버 속성을 에 AWS OpsWorks for Chef Automate 저장합니다 AWS Secrets Manager. 자세한 정보는 AWS Secrets Manager와의 통합을 참조하세요.

다음 안내를 통해 스택을 AWS OpsWorks for Chef Automate 생성하여 서버를 생성할 수 있습니다. AWS CloudFormation

사전 조건 

Chef Automate 서버를 새로 만들기 전에 먼저 Chef 서버에 액세스하고 관리하는 데 필요한 리소스를 AWS OpsWorks for Chef Automate 외부에서 생성하세요. 자세한 내용은 이 설명서의 시작하기 단원에서 사전 조건 를 참조하세요.

사용 AWS CloudFormation 설명서 템플릿 참조의 OpsWorks-CM 섹션을 검토하여 서버를 만드는 데 사용하는 AWS CloudFormation 템플릿에서 지원되는 값과 필요한 값에 대해 알아보십시오.

사용자 지정 도메인을 사용하는 서버를 만드는 경우 사용자 지정 도메인, 인증서 및 프라이빗 키가 필요합니다. AWS CloudFormation 템플릿에서 이 세 가지 매개 변수의 값을 모두 지정해야 합니다. CustomDomainCustomCertificate, 및 CustomPrivateKey 매개 변수의 요구 사항에 대한 자세한 내용은 AWS OpsWorks CM API 참조를 참조하십시오 CreateServer.

CHEF_AUTOMATE_ADMIN_PASSWORD 엔진 속성에 대한 암호 값을 생성합니다. 암호 길이는 최소 8자이며, 최대 32자입니다. 암호는 문자, 숫자 및 특수 문자 (!/@#$%^+=_)를 포함할 수 있습니다. 암호에는 소문자, 대문자, 숫자 및 특수 문자가 각각 1개 이상 포함되어야 합니다. AWS CloudFormation 템플릿에서 이 비밀번호를 지정하거나 스택을 생성할 때 CHEF_AUTOMATE_ADMIN_PASSWORD 파라미터의 값으로 지정합니다.

에서 Chef 오토메이트 서버 생성을 시작하기 전에 base64로 인코딩된 RSA 키 쌍을 생성하세요. AWS CloudFormation이 쌍의 공개 키는 API에서 가져온 Chef CHEF_AUTOMATE_PIVOTAL_KEY 고유의 값입니다. EngineAttributesCreateServer 이 키는 AWS CloudFormation 콘솔 또는 의 create-stack 명령에서 Parameters 값으로 제공됩니다 AWS CLI. 이 키를 생성할 때 다음 방법을 사용하는 것이 좋습니다.

  • Linux 기반 컴퓨터에서는 다음 OpenSSL 명령을 실행하여 이 키를 생성할 수 있습니다.

    openssl genrsa -out pivotal_key_file_name.pem 2048

    그런 다음, 페어의 RSA 퍼블릭 키 부분을 파일로 내보냅니다. 퍼블릭 키가 CHEF_AUTOMATE_PIVOTAL_KEY의 값이 됩니다.

    openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  • Windows 기반 컴퓨터에서는 PuTTYgen 유틸리티를 사용하여 base64 인코딩 RSA 키 페어를 생성할 수 있습니다. 자세한 내용은 SSH.com.에서 PuTTYgen - Windows에서 PuTTY용 키 생성을 참조하세요.

AWS CloudFormation에서 Chef Automate 서버 만들기

이 섹션에서는 AWS CloudFormation 템플릿을 사용하여 AWS OpsWorks for Chef Automate 서버를 생성하는 스택을 구축하는 방법을 설명합니다. AWS CloudFormation 콘솔이나 를 사용하여 이 작업을 수행할 수 AWS CLI있습니다. AWS OpsWorks for Chef Automate 서버 스택을 구축하는 데 사용할 수 있는 예제 AWS CloudFormation 템플릿이 있습니다. 예제 템플릿을 서버 이름, IAM 역할, 인스턴스 프로파일, 서버 설명, 백업 보존 수, 유지 관리 옵션 및 옵션 태그로 업데이트하세요. 서버에서 사용자 지정 도메인을 사용할 경우 AWS CloudFormation 템플릿의 CustomDomainCustomCertificate, 및 CustomPrivateKey 매개 변수 값을 지정해야 합니다. AWS CloudFormation 템플릿에서 CHEF_AUTOMATE_ADMIN_PASSWORDCHEF_AUTOMATE_PIVOTAL_KEY 엔진 속성과 해당 값을 지정하거나 속성만 제공한 다음 스택 AWS CloudFormation 생성 마법사 또는 create-stack 명령에서 속성 값을 지정할 수 있습니다. 이러한 속성에 대한 자세한 내용은 이 설명서의 시작하기 단원에서에서 Chef 오토메이트 서버를 생성하십시오. AWS Management Console 항목을 참조하세요.

AWS CloudFormation 을 사용하여 Chef Automate 서버 만들기(콘솔)

  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/cloudformation 에서 AWS CloudFormation 콘솔을 엽니다.

  2. AWS CloudFormation 홈페이지에서 스택 생성을 선택합니다.

  3. 예제 템플릿을 사용하는 경우 사전 요구 사항 - 템플릿 준비에서 AWS CloudFormation 템플릿 준비 완료를 선택합니다.

  4. 템플릿 지정에서 템플릿의 소스를 선택합니다. 이 안내에서는 템플릿 파일 업로드를 선택하고 Chef Automate 서버를 생성하는 AWS CloudFormation 템플릿을 업로드하세요. 템플릿 파일을 찾은 후 다음을 선택합니다.

    AWS CloudFormation 템플릿은 YAML 또는 JSON 형식일 수 있습니다. 예제 AWS CloudFormation 템플릿을 사용할 수 있습니다. 예제 값을 직접 만든 것으로 바꿔야 합니다. AWS CloudFormation 템플릿 디자이너를 사용하여 새 템플릿을 만들거나 기존 템플릿을 검증할 수 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 AWS CloudFormation 사용 설명서AWS CloudFormation 디자이너 인터페이스 개요를 참조하세요.

    CloudFormation 스택 페이지 생성
  5. 스택 세부 정보 지정 페이지에서 스택의 이름을 입력합니다. 이것은 서버 이름이 아니고 스택 이름입니다. 사전 조건 에서 만든 값을 매개변수 영역에 붙여넣습니다. 암호에 암호를 입력합니다.

    RSA 키 파일의 내용을 붙여넣습니다. PivotalKey AWS CloudFormation 콘솔에서 다음 스크린샷과 같이 피벗 키 값의 각 줄 끝에 줄 바꿈 (\n) 문자를 추가해야 합니다. 다음을 선택합니다.

    스택 세부 정보 페이지를 다음에서 지정하십시오. CloudFormation
  6. 스택 옵션 구성 페이지에서, 스택을 사용하여 생성할 서버에 태그를 추가하고, 템플릿에서 사용할 IAM 역할을 아직 지정하지 않은 경우 리소스 생성을 위한 IAM 역할을 선택할 수 있습니다. 옵션 지정을 마쳤으면 다음을 선택합니다. 롤백 트리거와 같은 고급 옵션에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS CloudFormation 스택 옵션 설정을 참조하십시오.

  7. [검토] 페이지에서 선택 사항을 검토합니다. 서버 스택을 생성할 준비가 되면 스택 생성을 선택합니다.

    스택 생성을 기다리는 동안 AWS CloudFormation 스택 생성 상태를 확인하십시오. 스택 생성이 실패하면 콘솔에 표시된 오류 메시지를 검토하여 문제를 해결할 수 있습니다. AWS CloudFormation 스택의 오류 문제 해결에 대한 자세한 내용은 AWS CloudFormation 사용 설명서오류 문제 해결을 참조하세요.

    서버 생성이 끝나면 AWS OpsWorks for Chef Automate 홈 페이지에서 Chef Automate 서버를 확인할 수 있으며, 상태는 온라인입니다. 서버의 속성 페이지에서 새로운 스타터 키트와 Chef Automate 대시보드 자격 증명을 생성합니다. 서버가 온라인 상태가 되면 https://your_server_name-randomID.region.opsworks-cm.io 형식의 URL을 가진 서버 도메인에서 Chef Automate 대시보드를 사용할 수 있습니다.

    참고

    서버의 사용자 지정 도메인, 인증서 및 개인 키를 지정한 경우, 엔터프라이즈의 DNS 관리 도구에서 사용자 지정 도메인을 서버에 AWS OpsWorks for Chef Automate 자동으로 생성된 엔드포인트에 매핑하는 CNAME 항목을 생성하십시오. 생성된 엔드포인트를 사용자 지정 도메인 값으로 매핑할 때까지 서버를 관리하거나 서버에 대한 Chef Automate 대시보드에 연결할 수 없습니다.

    생성된 엔드포인트 값을 가져오려면 서버가 온라인 상태가 된 후 다음 AWS CLI 명령을 실행하십시오.

    aws opsworks describe-servers --server-name server_name

AWS CloudFormation 를 사용하여 Chef Automate 서버 만들기(CLI)

로컬 컴퓨터에서 이 (가) 아직 실행되고 있지 않은 경우 AWS CLI, AWS 명령줄 인터페이스 사용 설명서의 설치 지침에 따라 다운로드 및 설치하십시오. AWS CLI 이 단원에서는 create-stack 명령과 함께 사용할 수 있는 모든 파라미터를 다 설명하지는 않습니다. create-stack 파라미터에 대한 자세한 내용은 AWS CLI 레퍼런스create-stack를 참조하세요.

  1. AWS OpsWorks for Chef Automate 서버 생성에 대한 사전 조건 를 완료해야 합니다.

  2. 서비스 역할과 인스턴스 프로필을 생성합니다. AWS OpsWorks 두 가지를 모두 생성하는 데 사용할 수 있는 AWS CloudFormation 템플릿을 제공합니다. 다음 AWS CLI 명령을 실행하여 서비스 역할 및 인스턴스 프로필을 생성하는 AWS CloudFormation 스택을 생성합니다.

    aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM

    스택 생성을 AWS CloudFormation 완료한 후 계정에서 서비스 역할의 ARN을 찾아 복사합니다.

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    list-roles 명령의 결과에서 다음과 비슷한 서비스 역할 및 인스턴스 프로파일을 찾아봅니다. 서비스 역할 및 인스턴스 프로필의 ARN을 기록해 두고 서버 스택을 생성하는 데 사용하는 AWS CloudFormation 템플릿에 추가합니다.

    { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
  3. create-stack명령을 다시 실행하여 AWS OpsWorks for Chef Automate 서버를 생성합니다.

    • stack_name을 스택 이름으로 바꿉니다. 이것은 AWS CloudFormation 스택의 이름이지 Chef Automate 서버가 아닙니다. Chef 오토메이트 서버 이름은 ServerName AWS CloudFormation 템플릿의 값입니다.

    • template을 해당 템플릿 파일의 경로로 바꾸고 yaml 또는 json 확장명을 .yaml 또는 .json으로 적절히 바꿉니다.

    • 의 값은 CreateServerAPI의 EngineAttributes값과 --parameters 일치합니다. Chef의 경우, 서버를 생성하기 위해 사용자가 제공하는 엔진 속성은 사전 조건 에서 설명한 유틸리티를 사용하여 생성한 base64 인코딩 형식의 RSA 퍼블릭 키 CHEF_AUTOMATE_PIVOTAL_KEY와, 8-32자로 생성한 암호인 CHEF_AUTOMATE_ADMIN_PASSWORD입니다. CHEF_AUTOMATE_ADMIN_PASSWORD에 대한 자세한 내용은 다음을 사용하여 Chef 오토메이트 서버를 만드십시오. AWS CLI 섹션을 참조하세요. 예제에 나와 있는 것처럼, PivotalKey 파라미터의 값으로 해당 값을 포함하는 PEM 파일에 대한 포인터를 제공할 수 있습니다. 템플릿에 CHEF_AUTOMATE_ADMIN_PASSWORD 과 값이 CHEF_AUTOMATE_PIVOTAL_KEY 지정되지 않은 경우 AWS CLI 명령에 값을 제공해야 합니다.

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=PivotalKey,ParameterValue="base64_encoded_RSA_public_key_value"

    다음은 CHEF_AUTOMATE_ADMIN_PASSWORDCHEF_AUTOMATE_PIVOTAL_KEY 속성의 샘플 값을 보여 주는 예제입니다. AWS CloudFormation 템플릿에서 이러한 속성의 값을 지정하지 않은 경우 비슷한 명령을 실행하십시오.

    aws cloudformation create-stack --stack-name "OpsWorksCMChefServerStack" --template-body file://opsworkscm-server.yaml --parameters ParameterKey=PivotalKey,ParameterValue="$(openssl rsa -in "pivotalKey.pem" -pubout)" ParameterKey=Password,ParameterValue="SuPer\$ecret890"
  4. 스택 생성이 완료되면 AWS OpsWorks for Chef Automate 콘솔에서 새 서버의 속성 페이지를 열고 스타터 키트를 다운로드합니다. 새 스타터 키트를 다운로드하면 Chef Automate 대시보드 관리자 암호를 재설정합니다.

  5. 서버에서 사용자 지정 도메인, 인증서 및 프라이빗 키를 사용할 경우 (선택 사항) 사용자 지정 도메인을 사용하도록 knife 구성의 구성 knife.rb 단계를 수행한 다음 7단계로 이동하세요.

    사용자 지정 도메인을 사용하지 않는 경우 루트 인증 기관(CA) 인증서를 다음 Amazon S3 버킷 위치에서 다운로드합니다 https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem. 인증서 파일을 안전하면서도 사용하기 편리한 위치에 저장합니다. 이 인증서는 다음 단계에서 knife.rb를 구성하는 데 필요합니다.

  6. 새로운 서버에서 knife 명령을 사용하여 Chef knife.rb 구성 파일 설정을 업데이트합니다. 스타터 키트에는 knife.rb 예제 파일이 포함되어 있습니다. 다음 예제에서는 사용자 지정 도메인을 사용하지 않는 서버에서의 knife.rb 설정 방법을 보여줍니다. 사용자 지정 도메인을 사용하는 경우 (선택 사항) 사용자 지정 도메인을 사용하도록 knife 구성에서 knife 구성 지침을 참조하세요.

    • ENDPOINT를 서버의 엔드포인트 값으로 바꿉니다. 이것은 스택 생성 작업 출력의 일부입니다. 다음 명령을 실행하여 엔드포인트를 확인할 수 있습니다.

      aws cloudformation describe-stacks --stack-name stack_name
    • client_key 구성의 key_pair_file.pem을 서버를 만드는 데 사용한 CHEF_AUTOMATE_PIVOTAL_KEY이 들어 있는 PEM 파일 이름으로 바꾸세요.

      base_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..') log_level :info log_location STDOUT node_name 'pivotal' client_key File.join(base_dir, '.chef', 'key_pair_file.pem') syntax_check_cache_path File.join(base_dir, '.chef', 'syntax_check_cache') cookbook_path [File.join(base_dir, 'cookbooks')] chef_server_url 'ENDPOINT/organizations/default' ssl_ca_file File.join(base_dir, '.chef', 'ca_certs', 'opsworks-cm-ca-2020-root.pem') trusted_certs_dir File.join(base_dir, '.chef', 'ca_certs')
  7. 서버 생성 프로세스가 완료되면 Starter Kit를 사용하여 Chef 서버 구성 단원을 진행합니다. 스택 생성이 실패하면 콘솔에 표시된 오류 메시지를 검토하여 문제를 해결할 수 있습니다. AWS CloudFormation 스택의 오류 문제 해결에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 오류 문제 해결을 참조하십시오.