Puppet OpsWorks Enterprise에 자동으로 노드 추가 - AWS OpsWorks

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

Puppet OpsWorks Enterprise에 자동으로 노드 추가

중요

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

이 주제에서는 Puppet Enterprise 서버에 Amazon Elastic Compute Cloud (Amazon EC2) 노드를 자동으로 OpsWorks 추가하는 방법을 설명합니다. Puppet 마스터가 관리할 노드 추가에서 associate-node 명령을 사용하여 한 번에 하나씩 Puppet Enterprise 서버에 노드를 추가하는 방법을 배웠습니다. 이 주제의 코드는 무인 방식을 사용하여 자동으로 노드를 추가하는 방법을 보여 줍니다. 권장되는 새 노드의 무인(또는 자동) 연결 방법은 Amazon EC2 사용자 데이터를 구성하는 것입니다. 기본적으로 Puppet OpsWorks Enterprise용 서버는 우분투, 아마존 리눅스 및 RHEL 노드 운영 체제에서 이미 puppet-agent사용할 수 있습니다.

노드 연결을 끊는 방법에 대한 자세한 내용은 이 안내서와 Puppet 엔터프라이즈 OpsWorks 서버에서 노드 연결 끊기 Puppet Enterprise API disassociate-node설명서를 참조하십시오. OpsWorks

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

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

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

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

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

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

EC2 인스턴스를 생성하려면 스타터 키트에 포함된 사용자 데이터 스크립트를 EC2 인스턴스 지침 userdata 섹션, Amazon EC2 Auto Scaling 그룹 시작 구성 또는 템플릿에 복사할 수 있습니다. AWS CloudFormation 스크립트는 Ubuntu 및 Amazon Linux 운영 체제를 실행하는 EC2 인스턴스에만 지원됩니다. 사용자 데이터에 스크립트 추가에 대한 자세한 내용은 Amazon EC2 사용 설명서의 시작 시 Linux 인스턴스에서 명령 실행을 참조하세요. 새 노드를 생성하는 가장 쉬운 방법은 Amazon EC2 인스턴스 시작 마법사를 사용하는 것입니다. 본 안내서에서는 퍼펫 OpsWorks 엔터프라이즈용 시작하기에 설명되어 있는 Apache 웹 서버 예제 모듈 설정을 사용합니다.

  1. 스타터 키트의 사용자 데이터 스크립트는 opsworks-cm API associate-node 명령을 실행하여 새 노드를 Puppet 마스터와 연결합니다. 또한 이번 릴리스에서는 아직 대부분의 버전을 실행하고 있지 않은 경우를 대비하여 노드에 최신 버전을 설치합니다. AWS CLI up-to-date 이 스크립트를 편리한 위치에 userdata.sh로 저장합니다.

    기본적으로 새로 등록된 노드의 이름은 인스턴스 ID입니다.

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

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

  4. [고급 세부 정보] 영역에서 1단계에서 생성한 userdata.sh 스크립트를 업로드합니다.

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

    EC2 인스턴스에 태그를 적용하여 userdata.sh 동작을 사용자 지정할 수 있습니다. 이 예제에서는 apache_webserver 값과 함께 pp_role, 태그를 추가하여 노드에 apache_webserver 역할을 적용합니다.

    노드에서 pp_role 값을 설정하면 노드의 에이전트 인증서에 영구 저장된 데이터 값이 설정되어 신뢰할 수 있는 노드 분류가 가능합니다. 자세한 정보는 Puppet 플랫폼 설명서의 Extension requests(permanent certificate data) 단원을 참조하세요.

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

  7. [검토 및 시작]을 선택한 다음 [시작]을 선택합니다. 새 노드가 시작되면 스타터 키트 Apache 예제 설정에서 설정한 샘플 모듈의 Apache 구성이 적용됩니다.

  8. 새 노드의 퍼블릭 DNS에 연결된 웹 페이지를 열면 Puppet 관리형 Apache 웹 서버에서 호스팅된 웹 사이트가 나타납니다.