노드를 자동으로 추가합니다. AWS OpsWorks for Chef Automate - AWS OpsWorks

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

노드를 자동으로 추가합니다. AWS OpsWorks for Chef Automate

중요

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

이 주제에서는 Amazon Elastic Compute Cloud(Amazon EC2) 노드를 Chef 서버에 자동으로 추가하는 방법을 설명합니다. 스타터 키트의 코드는 무인 방식을 사용하여 자동으로 노드를 추가하는 방법을 보여줍니다. 권장되는 새 노드의 무인(또는 자동) 연결 방법은 Chef Client 쿡북을 구성하는 것입니다. 스타터 키트의 userdata 스크립트를 사용할 수 있으며, 노드에 적용할 쿡북을 사용하여 userdata 스크립트의 run_list 섹션 또는 Policyfile.rb를 변경할 수 있습니다. chef-client 에이전트를 실행하기 전에 Chef Client 쿡북을 Chef 서버에 설치한 다음 아래 샘플 명령과 같이 예를 들면 HTTPD 역할을 사용하여 서비스 모드에서 chef-client 에이전트를 설치합니다.

chef-client -r "chef-client,role[httpd]"

Chef 서버와 통신하기 위해서는 chef-client 에이전트 소프트웨어에 클라이언트 노드의 퍼블릭 키에 대한 액세스 권한이 있어야 합니다. Amazon EC2에서 퍼블릭-프라이빗 키 쌍을 생성한 다음, 퍼블릭 키를 노드 이름과 함께 API 호출에 AWS OpsWorks associate-node 전달할 수 있습니다. 스타터 키트에 포함된 스크립트는 조직 이름, 서버 이름, 서버 엔드포인트를 자동으로 수집합니다. 이렇게 하면 노드가 Chef 서버에 연결되며, 노드에서 실행되는 chef-client 에이전트는 프라이빗 키 일치 후에 서버와 통신할 수 있습니다.

AWS OpsWorks for Chef Automate 서버와 관련된 노드에서 지원되는 최소 chef-client 버전은 13.x입니다. 안정적인 최신 버전을 실행하는 것이 좋습니다. chef-client

노드 연결을 끊는 방법에 대한 자세한 서버에서 노드 연결 끊기 AWS OpsWorks for Chef Automate 내용은 이 안내서와 AWS OpsWorks for Chef Automate API 설명서를 참조하십시오. disassociate-node

지원되는 운영 체제

현재 노드에 지원되는 운영 체제 목록은 Chef 웹 사이트를 참조하세요.

1단계: 인스턴스 프로파일로 사용할 IAM 역할 생성

EC2 인스턴스 프로필로 사용할 AWS Identity and Access Management (IAM) 역할을 생성하고 다음 정책을 IAM 역할에 연결합니다. 이 정책은 노드 등록 중에 AWS OpsWorks for Chef Automate (opsworks-cm) API가 EC2 인스턴스와 통신하도록 허용합니다. 인스턴스 프로파일에 대한 자세한 내용은 Amazon EC2 설명서의 인스턴스 프로파일 사용하기를 참조하세요. IAM 역할을 생성하는 방법에 대한 자세한 내용은 Amazon EC2 설명서의 콘솔에서 IAM 역할 생성을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", ], "Resource": "*", "Effect": "Allow" } ] }

AWS OpsWorks 이전 정책 설명으로 IAM 역할을 생성하는 데 사용할 수 있는 AWS CloudFormation 템플릿을 제공합니다. 다음 AWS CLI 명령은 이 템플릿을 사용하여 인스턴스 프로필 역할을 생성합니다. 기본 지역에 새 AWS CloudFormation 스택을 생성하려는 경우 --region 파라미터를 생략할 수 있습니다.

aws cloudformation --region region ID create-stack --stack-name myChefAutomateinstanceprofile --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-nodes-roles.yaml --capabilities CAPABILITY_IAM

2단계: Chef Client 쿡북 설치

아직 수행하지 않은 경우, (대체 방법) Berkshelf를 사용하여 원격 소스에서 쿡북 가져오기의 단계에 따라 Berksfile 또는 Policyfile.rb 파일이 Chef Client 쿡북을 참조하고 쿡북을 설치하는지 확인합니다.

3단계: 무인 연결 스크립트를 사용하여 인스턴스 생성

  1. EC2 인스턴스를 생성하려면 스타터 userdata 키트의 스크립트를 EC2 인스턴스 지침 userdata 섹션, Amazon EC2 Auto Scaling 그룹 시작 구성 또는 템플릿으로 복사할 수 있습니다. AWS CloudFormation 사용자 데이터에 스크립트 추가에 대한 자세한 내용은 Amazon EC2 사용 설명서의 시작 시 Linux 인스턴스에서 명령 실행을 참조하세요.

    이 스크립트는 opsworks-cm API associate-node 명령을 실행하여 새 노드를 Chef 서버와 연결합니다.

    기본적으로 새로 등록된 노드의 이름은 인스턴스 ID인데 userdata 스크립트에서 NODE_NAME 변수의 값을 수정하여 이 이름을 변경할 수 있습니다. Chef 콘솔 UI에서는 현재 조직 이름을 변경할 수 없기 때문에 CHEF_AUTOMATE_ORGANIZATIONdefault로 설정된 상태로 둡니다.

  2. EC2 설명서의 인스턴스 시작 단원에 나와 있는 절차를 따릅니다(여기에서 수정). EC2 인스턴스 시작 마법사에서 Amazon Linux AMI를 선택합니다.

  3. 인스턴스 세부 정보 구성 페이지에서 1단계: 인스턴스 프로파일로 사용할 IAM 역할 생성에서 IAM 역할로 생성한 역할을 선택합니다.

  4. Advanced Details(고급 정보) 영역에서, 이 절차 앞부분에서 생성한 userdata.sh 스크립트를 업로드합니다.

  5. [스토리지 추가] 페이지에서 변경해야 할 사항은 없습니다. [태그 추가]로 이동합니다.

  6. 이 예제에서는 보안 그룹 구성 페이지에서 규칙 추가를 선택한 후 HTTP를 입력하여 Apache 웹 서버에서 443 포트와 80 포트를 엽니다.

  7. [검토 및 시작]을 선택한 다음 [시작]을 선택합니다. 새 노드가 시작되면 노드는 RUN_LIST 파라미터에 지정한 레시피에 지정된 구성을 적용합니다.

  8. 선택 사항: nginx 쿡북을 실행 목록에 추가한 경우, 새 노드의 퍼블릭 DNS에 연결된 웹 페이지를 열면 nginx 웹 서버가 호스팅하는 웹 사이트가 표시되어야 합니다.

그 밖의 chef-client 반복 실행 자동화 방법

구현하기가 더 어렵고 권장되지는 않지만 이 항목의 스크립트를 독립형 인스턴스 사용자 데이터의 일부로만 실행하거나, AWS CloudFormation 템플릿을 사용하여 새 인스턴스 사용자 데이터에 추가하거나, 스크립트를 정기적으로 실행하도록 cron 작업을 구성하거나, 서비스 내에서 실행할 수 있습니다. chef-client 하지만 다른 자동화 기법에는 몇 가지 단점이 있기 때문에 Chef Client Cookbook 방법을 사용하는 것이 좋습니다.

chef-client에 제공할 수 있는 파라미터의 완전한 목록은 Chef 설명서를 참조하세요.

다음 AWS 블로그 게시물은 Auto Scaling 그룹을 사용하거나 여러 계정 내에서 노드를 Chef Automate 서버에 자동으로 연결하는 방법에 대한 자세한 정보를 제공합니다.