翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OpsWorks for Puppet Enterprise でのノードを自動的に追加します
重要
この AWS OpsWorks for Puppet Enterprise サービスは 2024 年 3 月 31 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、AWS re:Post
このトピックでは、Amazon Elastic Compute Cloud (Amazon EC2) ノードを OpsWorks for Puppet Enterprise サーバーに自動的に追加する方法について説明します。「Puppet マスターで管理するノードを追加する」では、associate-node
コマンドを使用して一度に 1 つのノードを Puppet Enterprise サーバーに追加する方法について学びました。このトピックのコードは、ユーザーが介入しない方法を使用して複数のノードを自動的に追加する方法を示しています。ユーザーが介入しない (または自動での) 新しいノードの関連付けの推奨手段は、Amazon EC2 ユーザーデータを設定することです。デフォルトでは、OpsWorks for Puppet Enterprise サーバーではすでに puppet-agent
ノードの関連付けを解除する方法については、このガイドの「OpsWorks for Puppet サーバーからノードの関連付けを切り離します」および OpsWorks for Puppet Enterprise API ドキュメントの「disassociate-node
」を参照してください。
ステップ 1: インスタンスプロファイルとして使用する IAM ロールを作成する
EC2 インスタンスプロファイルとして使用する AWS Identity and Access Management (IAM) ロールを作成し、次のポリシーを IAM ロールにアタッチします。このポリシーでは、ノード登録時に、opsworks-cm
API を使用した EC2 インスタンスとの通信が許可されています。インスタンスプロファイルの詳細については、Amazon EC2 のドキュメントの 「Using Instance Profiles」(インスタンスプロファイルの使用) を参照してください。IAM ロールを作成する方法については、Amazon EC2 のドキュメントの「Creating an IAM Role in the Console」(コンソールでの IAM ロールの作成) を参照してください。。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "opsworks-cm:AssociateNode", "opsworks-cm:DescribeNodeAssociationStatus", "opsworks-cm:DescribeServers", "ec2:DescribeTags" ], "Resource": "*", "Effect": "Allow" } ] }
ステップ 2: 自動関連付けスクリプトを使用してインスタンスを作成する
EC2 インスタンスを作成するには、スターターキットに含まれているユーザーデータスクリプトを EC2 インスタンスの手順の userdata
セクション、Amazon EC2 Auto Scaling グループの起動設定、または AWS CloudFormation テンプレートにコピーします。このスクリプトは、Ubuntu および Amazon Linux オペレーティングシステムを実行している EC2 インスタンスでのみサポートされています。ユーザーデータへのスクリプトの追加の詳細については、Amazon EC2 documentation ドキュメントの「Running Commands on Your Linux Instance at Launch」(Linux インスタンスでの起動時のコマンドの実行) を参照してください。新規ノードを作成する最も簡単な方法は、Amazon EC2 instance launch wizard (Amazon EC2 インスタンス起動ウィザード) を使用することです。このチュートリアルでは、「OpsWorks for Puppet Enterprise の使用を開始する」で説明された Apache ウェブサーバーのサンプルモジュールのセットアップを使用します。
-
スターターキットのユーザーデータスクリプトは、
opsworks-cm
API のassociate-node
コマンドを実行して、新しいノードを Puppet マスターに関連付けます。このリリースでは、最新バージョンの がまだ実行されていない場合に備えて、ノード AWS CLI にup-to-dateの もインストールされます。このスクリプトを便利な場所にuserdata.sh
として保存します。デフォルトでは、新しく登録されたノードの名前はインスタンス ID です。
-
EC2 ドキュメントのインスタンスの作成の手順に従い、ここで説明する変更を加えます。EC2 インスタンス起動ウィザードで、Amazon Linux AMI を選択します。
-
[Configure Instance Details] ページで、[myPuppetinstanceprofile] を選択します。これは、「ステップ 1: インスタンスプロファイルとして使用する IAM ロールを作成する」で IAM ロールとして作成したロールです。
-
[Advanced Details] 領域で、ステップ 1 で作成した
userdata.sh
スクリプトをアップロードします。 -
[Add Storage] ページで必要な変更はありません。[Add Tags] に進みます。
EC2 インスタンスにタグを適用することで、
userdata.sh
の動作をカスタマイズできます。この例では、apache_webserver
ロールをノードに適用します。これを行うには、値がpp_role
であるapache_webserver
タグを追加します。ノードで
pp_role
の値をノードのエージェント証明書に永続的に保存されているデータ値に設定することで、ノードを信頼されたものとして分類できます。詳細については、Puppet プラットフォームドキュメントの「Extension requests (permanent certificate data)」を参照してください。 -
[Configure Security Group] (セキュリティグループの設定) ページで、[Add Rule] (ルールの追加) を選択し、[HTTP] タイプを選択してこの例では Apache ウェブサーバーでポート番号 8080 を開きます。
-
Review and Launch (確認と作成) を選択してから、Launch (起動) を選択します。新しいノードが開始されると、「スターターキットの Apache の例をセットアップする」でセットアップしたサンプルモジュールの Apache 設定が適用されます。
-
新しいノードのパブリック DNS にリンクされたウェブページを開くと、Puppet に管理された Apache ウェブサーバーがホストするウェブサイトが表示されるはずです。