

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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 プレミアムサポート](https://aws.amazon.com/support)を通じて AWS サポート チームにお問い合わせください。

このトピックでは、Amazon Elastic Compute Cloud (Amazon EC2) ノードを OpsWorks for Puppet Enterprise サーバーに自動的に追加する方法について説明します。「[Puppet マスターで管理するノードを追加する](opspup-addnodes.md)」では、`associate-node` コマンドを使用して一度に 1 つのノードを Puppet Enterprise サーバーに追加する方法について学びました。このトピックのコードは、ユーザーが介入しない方法を使用して複数のノードを自動的に追加する方法を示しています。ユーザーが介入しない (または自動での) 新しいノードの関連付けの推奨手段は、Amazon EC2 ユーザーデータを設定することです。デフォルトでは、OpsWorks for Puppet Enterprise サーバーではすでに [https://puppet.com/docs/pe/2019.8/installing_agents.html](https://puppet.com/docs/pe/2019.8/installing_agents.html) を Ubuntu、Amazon Linux、および RHEL ノードオペレーティングシステムで使用できます。

ノードの関連付けを解除する方法については、このガイドの「[OpsWorks for Puppet サーバーからノードの関連付けを切り離します](opspup-disassociate-node.md)」および OpsWorks for Puppet Enterprise API ドキュメントの[「`disassociate-node`」](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 のドキュメントの [「Using Instance Profiles」](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)(インスタンスプロファイルの使用) を参照してください。IAM ロールを作成する方法については、Amazon EC2 のドキュメントの[「Creating an IAM Role in the Console」](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#create-iam-role-console)(コンソールでの IAM ロールの作成) を参照してください。。

------
#### [ 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 インスタンスの手順の `userdata`セクション、Amazon EC2 Auto Scaling グループの起動設定、または CloudFormation テンプレートにコピーします。このスクリプトは、Ubuntu および Amazon Linux オペレーティングシステムを実行している EC2 インスタンスでのみサポートされています。ユーザーデータへのスクリプトの追加の詳細については、Amazon EC2 documentation ドキュメントの[「Running Commands on Your Linux Instance at Launch」](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html)(Linux インスタンスでの起動時のコマンドの実行) を参照してください。新規ノードを作成する最も簡単な方法は、[Amazon EC2 instance launch wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) (Amazon EC2 インスタンス起動ウィザード) を使用することです。このチュートリアルでは、「[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. [**Configure Instance Details**] ページで、[**myPuppetinstanceprofile**] を選択します。これは、「[ステップ 1: インスタンスプロファイルとして使用する IAM ロールを作成する](#opspup-create-instance-profile)」で IAM ロールとして作成したロールです。

1. [**Advanced Details**] 領域で、ステップ 1 で作成した `userdata.sh` スクリプトをアップロードします。

1. [**Add Storage**] ページで必要な変更はありません。[**Add Tags**] に進みます。

   EC2 インスタンスにタグを適用することで、`userdata.sh` の動作をカスタマイズできます。この例では、`apache_webserver` ロールをノードに適用します。これを行うには、値が **pp\$1role** である **apache\$1webserver** タグを追加します。

   ノードで `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. **[Configure Security Group]** (セキュリティグループの設定) ページで、**[Add Rule]** (ルールの追加) を選択し、**[HTTP]** タイプを選択してこの例では Apache ウェブサーバーでポート番号 8080 を開きます。

1. **Review and Launch** (確認と作成) を選択してから、**Launch** (起動) を選択します。新しいノードが開始されると、「[スターターキットの Apache の例をセットアップする](opspup-starterkit.md#opspup-post-launch-web-server)」でセットアップしたサンプルモジュールの Apache 設定が適用されます。

1. 新しいノードのパブリック DNS にリンクされたウェブページを開くと、Puppet に管理された Apache ウェブサーバーがホストするウェブサイトが表示されるはずです。