を使用して AWS OpsWorks for Puppet Enterprise マスターを作成する AWS CloudFormation - AWS OpsWorks

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

を使用して AWS OpsWorks for Puppet Enterprise マスターを作成する AWS CloudFormation

重要

この AWS OpsWorks for Puppet Enterprise サービスは 2024 年 3 月 31 日にサポート終了となり、新規および既存のお客様の両方で無効になっています。できるだけ早くワークロードを他のソリューションに移行することを強くお勧めします。移行についてご質問がある場合は、 AWS re:Post または AWS Premium Support を通じて AWS Support チームにお問い合わせください。

AWS OpsWorks for Puppet Enterprise では、 で Puppet Enterprise サーバーを実行できます AWS。約 15 分で Puppet Enterprise マスターサーバーをプロビジョニングできます。

2021 年 5 月 3 日以降、 OpsWorks for Puppet Enterprise は一部の Puppet Enterprise サーバー属性を に保存します AWS Secrets Manager。詳細については、「との統合 AWS Secrets Manager」を参照してください。

以下のチュートリアルでは、 でスタックを作成することで、 for Puppet Enterprise で OpsWorks Puppet マスターを作成する方法について説明します AWS CloudFormation。

前提条件

新しい Puppet マスターを作成する前に、Puppet マスターにアクセスして管理する必要がある OpsWorks for Puppet Enterprise の の外部にリソースを作成します。詳細については、このガイドの「はじめに」セクションにある「前提条件」を参照してください。

カスタムドメインを使用するサーバーを作成する場合は、カスタムドメイン、証明書、およびプライベートキーが必要です。 AWS CloudFormation テンプレートでは、これら 3 つのパラメータすべてに値を指定する必要があります。CustomDomain、、および CustomPrivateKeyパラメータの要件の詳細についてはCustomCertificateAWS OpsWorks CM API リファレンスCreateServer「」を参照してください。

サーバーの作成に使用するテンプレートでサポートされる値と必要な値については、AWS CloudFormation 「 ユーザーガイドテンプレートリファレンス」のOpsWorks「-CM」セクションを参照してください。 AWS CloudFormation

AWS CloudFormationで Puppet Enterprise マスターを作成する

このセクションでは、 AWS CloudFormation テンプレートを使用して、 OpsWorks for Puppet Enterprise マスターサーバーを作成するスタックを構築する方法について説明します。これを行うには、 AWS CloudFormation コンソールまたは を使用します AWS CLI。テンプレートの例 AWS CloudFormationを使用して、 OpsWorks for Puppet Enterprise サーバースタックを構築できます。サンプルテンプレートを更新するには、必ず、独自のサーバー名、IAM ロール、インスタンスプロファイル、サーバーの説明、バックアップ保持数、メンテナンスオプション、およびオプションのタグを使用してください。サーバーでカスタムドメインを使用する場合は、CustomDomain テンプレートで、CustomCertificateCustomPrivateKey および AWS CloudFormation パラメータの値を指定する必要があります。これらのオプションの詳細については、このガイドの「はじめに」セクションの「を使用して Puppet Enterprise Master を作成する AWS Management Console」を参照してください。

を使用して Puppet Enterprise Master を作成する AWS CloudFormation (コンソール)

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  2. AWS CloudFormation ホームページで、スタックの作成 を選択します。

  3. 前提条件 - テンプレートの準備では、example AWS CloudFormation template (テンプレートのサンプル) を使用している場合、テンプレートの準備完了 を選択します。

  4. [Specify template] 内で、テンプレートのソースを選択します。このチュートリアルでは、テンプレートファイル をアップロードを選択し、Puppet Enterprise サーバーを作成する AWS CloudFormation テンプレートをアップロードします。テンプレートファイルを参照し、[Next] を選択します。

    AWS CloudFormation テンプレートは YAML 形式または JSON 形式のいずれかです。サンプル AWS CloudFormation テンプレートを使用できます。サンプル値は必ず独自の値に置き換えてください。 AWS CloudFormation テンプレートデザイナーを使用して、新しいテンプレートを構築したり、既存のテンプレートを検証したりできます。これを行う方法については、AWS CloudFormation ユーザーガイド のAWS CloudFormation 「Designer Interface Overview (Designer インターフェイスの概要) を参照してください。

    CloudFormation スタックの作成ページ
  5. [Specify stack details] ページでスタックの名前を入力します。これは、サーバーの名前と同じ名前にしないでください。スタック名にすぎません。[Parameters (パラメータ)] 領域で、Puppet Enterprise コンソールウェブページにサインインする管理者パスワードを入力します。パスワードに使用できる文字数は 8~32 文字 (ASCII) です。[次へ] をクリックします。

    の詳細ページを指定する CloudFormation
  6. [Options] (オプション) ページで、スタックを使用して作成するサーバーにタグを追加し、テンプレートで使用する IAM ロールをまだ指定していない場合は、リソースを作成するための IAM ロールを選択できます。オプションの指定を終了したら、[Next (次へ)] を選択します。ロールバックトリガーなどの高度なオプションの詳細については、「 AWS CloudFormation ユーザーガイド」の AWS CloudFormation 「スタックオプションの設定」を参照してください。

  7. [確認] ページで選択内容を確認します。サーバースタックを作成する準備ができたら、[Create (作成)] を選択します。

    がスタックを作成する AWS CloudFormation のを待っている間に、スタックの作成ステータスを表示します。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 AWS CloudFormation スタックのエラーのトラブルシューティングについての詳細は、AWS CloudFormation ユーザーガイドの「Troubleshooting Errors」 (エラーのトラブルシューティング) を参照してください。

    サーバーの作成が完了すると、Puppet マスターは OpsWorks for Puppet Enterprise のホームページでオンライン のステータスになります。サーバーがオンラインになると、Puppet Enterprise コンソールがサーバーのドメインで https://your_server_name-randomID.region.opsworks-cm.io の形式の URL で利用できます。

    注記

    サーバーのカスタムドメイン、証明書、プライベートキーを指定した場合は、エンタープライズの DNS 管理ツールで CNAME エントリを作成します。このエントリは、カスタムドメインを Puppet Enterprise OpsWorks がサーバーに自動的に生成したエンドポイントにマッピングします。生成されたエンドポイントをカスタムドメイン値にマッピングするまで、サーバーを管理したり、サーバーの Puppet Enterprise 管理 Web サイトに接続したりすることはできません。

    生成されたエンドポイント値を取得するには、サーバーがオンラインになった後に次の AWS CLI コマンドを実行します。

    aws opsworks describe-servers --server-name server_name

AWS CloudFormation (CLI) を使用して Puppet Enterprise Master を作成する

ローカルコンピュータでまだ を実行していない場合は AWS CLI、AWS コマンドラインインターフェイスユーザーガイド AWS CLI のインストール手順に従って をダウンロードしてインストールします。このセクションでは、create-stack コマンドで使用できるパラメータのすべては説明しません。create-stack パラメータの詳細については、「create-stackリファレンス」の「AWS CLI 」を参照してください。

  1. OpsWorks for Puppet Enterprise マスターを作成前提条件するための を必ず完了してください。

  2. サービスロールとインスタンスプロファイルを作成します。 は、両方を作成するために使用できる AWS CloudFormation テンプレート AWS OpsWorks を提供します。次の AWS CLI コマンドを実行して、サービスロールとインスタンスプロファイルを作成する AWS CloudFormation スタックを作成します。

    aws cloudformation create-stack --stack-name OpsWorksCMRoles --template-url https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-roles.yaml --capabilities CAPABILITY_NAMED_IAM

    がスタックの作成 AWS CloudFormation を完了したら、アカウント内のサービスロールARNs を検索してコピーします。

    aws iam list-roles --path-prefix "/service-role/" --no-paginate

    list-roles コマンドの結果内で、次のようなサービスロールとインスタンスプロファイルのエントリを探します。サービスロールとインスタンスプロファイルの ARNs を書き留めて、Puppet マスターサーバースタックの作成に使用している AWS CloudFormation テンプレートに追加します。

    { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZQG6R22HC", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-ec2-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-ec2-role" }, { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "opsworks-cm.amazonaws.com" } } ] }, "RoleId": "AROZZZZZZZZZZZZZZZ6QE", "CreateDate": "2018-01-05T20:42:20Z", "RoleName": "aws-opsworks-cm-service-role", "Path": "/service-role/", "Arn": "arn:aws:iam::000000000000:role/service-role/aws-opsworks-cm-service-role" }
  3. create-stack コマンドを再度実行して OpsWorks 、 for Puppet Enterprise マスターを作成します。

    • stack_name をスタックの名前に置き換えます。これは、Puppet マスターではなく、 AWS CloudFormation スタックの名前です。Puppet マスター名は、ServerName テンプレートにおける AWS CloudFormation の値です。

    • template をテンプレートファイルへのパスに置き換え、yaml または json を必要に応じて .yaml または .json に置き換えます。

    • の値は、 CreateServer API EngineAttributes から --parametersに対応します。Puppet の場合、サーバーを作成するためにユーザーが指定するエンジン属性は以下のとおりです。r10k エンジン属性は、Puppet マスターをコードリポジトリに接続してサーバーの環境設定を管理します。r10k エンジン属性の詳細については、Puppet Enterprise ドキュメントの「r10k でのコードの管理」を参照してください。

      • PUPPET_ADMIN_PASSWORD: Puppet Enterprise コンソールウェブページにサインインするための管理者パスワードです。パスワードには、8~32 文字の ASCII 文字を使用し、少なくとも 1 つの大文字、1 つの小文字、1 つの数字、1 つの特殊文字を含める必要があります。

      • PUPPET_R10K_REMOTE: コントロールリポジトリの URL です (例: ssh://git@your.git-repo.com:user/control-repo.git)。r10k リモートを指定すると、TCP ポート 8170 が開きます。

      • PUPPET_R10K_PRIVATE_KEY。プライベート Git リポジトリを使用している場合、PUPPET_R10K_PRIVATE_KEY を追加して SSH URL と PEM でエンコードされたプライベート SSH キーを指定します。

    aws cloudformation create-stack --stack-name stack_name --template-body file://template.yaml or json --parameters ParameterKey=AdminPassword,ParameterValue="password"

    次に例を示します。

    aws cloudformation create-stack --stack-name "OpsWorksCMPuppetServerStack" --template-body file://opsworkscm-puppet-server.json --parameters ParameterKey=AdminPassword,ParameterValue="09876543210Ab#"

    次の例では、r10k エンジン属性が AWS CloudFormation テンプレートで指定されていない場合、パラメータとして指定します。r10k エンジン属性 puppet-server-param-attributes.yaml が含まれるサンプルテンプレートは、サンプル AWS CloudFormation テンプレートに含まれています。

    aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-param-attributes.yaml --parameters ParameterKey=AdminPassword,ParameterValue="superSecret1%3" ParameterKey=R10KRemote,ParameterValue="https://www.yourRemote.com" ParameterKey=R10KKey,ParameterValue="$(cat puppet-r10k.pem)"

    次の例では、 AWS CloudFormation テンプレートで r10k エンジン属性とその値を指定します。コマンドは、テンプレートファイルのみポイントする必要があります。--template-body の値として指定されるテンプレート puppet-server-in-file-attributes.yaml は、サンプル AWS CloudFormation テンプレートに含まれています。

    aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-in-file-attributes.yaml
  4. (オプション) スタックの作成状況を取得するには、次のコマンドを実行します。

    aws cloudformation describe-stacks --stack-name stack_name
  5. スタックの作成が終了したら、次のセクション「スターターキットを使用して Puppet マスターを設定する」に移動します。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 AWS CloudFormation スタックのエラーのトラブルシューティングの詳細については、「 AWS CloudFormation ユーザーガイド」の「エラーのトラブルシューティング」を参照してください。