OpsWorks for Puppet Enterprise でのノードを自動的に追加します - AWS OpsWorks

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

OpsWorks for Puppet Enterprise でのノードを自動的に追加します

重要

AWS OpsWorks for Puppet Enterprise は新規顧客を受け付けていません。2024 年 3 月 31 日にサービスが利用できなくなるまで、既存のお客様には影響はありません。既存のお客様は、可能な限り早急に他のソリューションに移行することをお勧めします。詳細については、AWS OpsWorks for Puppet Enterprise サポート終了に関する FAQ および OpsWorks for Puppet Enterprise サーバーを Amazon Elastic Compute Cloud (Amazon EC2) に移行する方法 を参照してください。

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

ノードの関連付けを解除する方法については、このガイドの「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" } ] }

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 インスタンスを作成するには、[Starter Kit] (コンソールでの IAM ロールの作成) に含まれているユーザーデータスクリプトを 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 ウェブサーバーのサンプルモジュールのセットアップを使用します。

  1. スターターキットのユーザーデータスクリプトは、opsworks-cm API の associate-node コマンドを実行して、新しいノードを Puppet マスターに関連付けます。このリリースでは、最新バージョンの AWS CLI が実行されていない場合には、そのノードに最新バージョンの &CLI; もインストールされます。このスクリプトを便利な場所に userdata.sh として保存します。

    デフォルトでは、新しく登録されたノードの名前はインスタンス ID です。

  2. EC2 ドキュメントのインスタンスの作成の手順に従い、ここで説明する変更を加えます。EC2 インスタンス起動ウィザードで、Amazon Linux AMI を選択します。

  3. [Configure Instance Details] ページで、[myPuppetinstanceprofile] を選択します。これは、「ステップ 1: インスタンスプロファイルとして使用する IAM ロールを作成する」で IAM ロールとして作成したロールです。

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

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

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

    ノードで pp_role の値をノードのエージェント証明書に永続的に保存されているデータ値に設定することで、ノードを信頼されたものとして分類できます。詳細については、Puppet プラットフォームドキュメントの「Extension requests (permanent certificate data)」を参照してください。

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

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

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