

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

# OpsWorks for Puppet Enterprise에서 자동으로 노드 추가
<a name="opspup-unattend-assoc"></a>

**중요**  
이 AWS OpsWorks for Puppet Enterprise 서비스는 2024년 3월 31일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

이 주제에서는 Amazon Elastic Compute Cloud(Amazon EC2) 노드를 OpsWorks for Puppet Enterprise 서버에 자동으로 추가하는 방법을 설명합니다. [Puppet 마스터가 관리할 노드 추가](opspup-addnodes.md)에서 `associate-node` 명령을 사용하여 한 번에 하나씩 Puppet Enterprise 서버에 노드를 추가하는 방법을 배웠습니다. 이 주제의 코드는 무인 방식을 사용하여 자동으로 노드를 추가하는 방법을 보여 줍니다. 권장되는 새 노드의 무인(또는 자동) 연결 방법은 Amazon EC2 사용자 데이터를 구성하는 것입니다. 기본적으로 OpsWorks for Puppet Enterprise 서버는 Ubuntu, Amazon Linux 및 RHEL 노드 운영 체제에서 이미 [https://puppet.com/docs/pe/2019.8/installing_agents.html](https://puppet.com/docs/pe/2019.8/installing_agents.html)가 지원되고 있습니다.

노드 연결을 끊는 방법에 대한 자세한 내용은 이 안내서의 [OpsWorks for Puppet Enterprise 서버를 노드에서 분리](opspup-disassociate-node.md)와 OpsWorks for Puppet Enterprise API 설명서의 [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_DisassociateNode.html)를 참조하세요.

## 1단계: 인스턴스 프로파일로 사용할 IAM 역할 생성
<a name="opspup-create-instance-profile"></a>

EC2 인스턴스 프로파일로 사용할 AWS Identity and Access Management (IAM) 역할을 생성하고 다음 정책을 IAM 역할에 연결합니다. 이 정책은 노드 등록 중에 `opsworks-cm` API가 EC2 인스턴스와 통신하도록 허용합니다. 인스턴스 프로파일에 대한 자세한 내용은 Amazon EC2 설명서의 [인스턴스 프로파일 사용하기](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)를 참조하세요. IAM 역할을 생성하는 방법에 대한 자세한 내용은 Amazon EC2 설명서의 [콘솔에서 IAM 역할 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role-console)을 참조하세요.

------
#### [ JSON ]

****  

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

------

## 2단계: 무인 연결 스크립트를 사용하여 인스턴스 생성
<a name="opspup-unattend-script"></a>

EC2 인스턴스를 생성하려면 [스타터 키트](opspup-starterkit.md)에 포함된 사용자 데이터 스크립트를 EC2 인스턴스 지침, Amazon EC2 Auto Scaling 그룹 시작 구성 또는 CloudFormation 템플릿의 `userdata` 섹션에 복사할 수 있습니다. 스크립트는 Ubuntu 및 Amazon Linux 운영 체제를 실행하는 EC2 인스턴스에만 지원됩니다. 사용자 데이터에 스크립트 추가에 대한 자세한 내용은 Amazon EC2 사용 설명서의 [시작 시 Linux 인스턴스에서 명령 실행](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html)을 참조하세요. 새 노드를 생성하는 가장 쉬운 방법은 [Amazon EC2 인스턴스 시작 마법사](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html)를 사용하는 것입니다. 본 안내서에서는 [OpsWorks for Puppet Enterprise 시작하기](gettingstarted-opspup.md)에 설명되어 있는 Apache 웹 서버 예제 모듈 설정을 사용합니다.

1. 스타터 키트의 사용자 데이터 스크립트는 `opsworks-cm` API [https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_AssociateNode.html) 명령을 실행하여 새 노드를 Puppet 마스터와 연결합니다. 이 릴리스에서는 최신 버전을 아직 실행하지 않는 경우 노드 AWS CLI 에의 현재 up-to-date 버전도 설치합니다. 이 스크립트를 편리한 위치에 `userdata.sh`로 저장합니다.

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

1. EC2 설명서의 [인스턴스 시작](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) 단원에 나와 있는 절차를 따릅니다(여기에서 수정). EC2 인스턴스 시작 마법사에서 Amazon Linux AMI를 선택합니다.

1. **인스턴스 세부 정보 구성** 페이지에서 IAM 역할로 [1단계: 인스턴스 프로파일로 사용할 IAM 역할 생성](#opspup-create-instance-profile)에서 생성한 역할인 **MyPuppetInstanceProfile을** 선택합니다. 

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

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

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

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

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

1. [**검토 및 시작**]을 선택한 다음 [**시작**]을 선택합니다. 새 노드가 시작되면 [스타터 키트 Apache 예제 설정](opspup-starterkit.md#opspup-post-launch-web-server)에서 설정한 샘플 모듈의 Apache 구성이 적용됩니다.

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