

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

# を使用して AWS OpsWorks for Puppet Enterprise マスターを作成する CloudFormation
<a name="opspup-create-server-cfn"></a>

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

AWS OpsWorks for Puppet Enterprise では、[Puppet Enterprise](https://puppet.com/products/puppet-enterprise) サーバーを で実行できます AWS。約 15 分で Puppet Enterprise マスターサーバーをプロビジョニングできます。

2021 年 5 月 3 日から、OpsWorks for Puppet Enterprise は Puppet Enterprise サーバー属性をいくつか AWS Secrets Managerに保存します。詳細については、「[との統合 AWS Secrets Manager](data-protection.md#data-protection-secrets-manager)」を参照してください。

以下のウォークスルーは、 CloudFormationでスタックを作成することにより、OpsWorks for Puppet Enterprise の Puppet マスターの作成に役立ちます。

**Topics**
+ [前提条件](#opspup-create-server-cfn-prereqs)
+ [CloudFormationで Puppet Enterprise マスターを作成する](#opspup-create-server-cfn-main)

## 前提条件
<a name="opspup-create-server-cfn-prereqs"></a>

新しい Puppet マスターを作成する前に、Puppet マスターにアクセスして管理するために必要なリソースを OpsWorks for Puppet Enterprise の外部で作成してください。詳細については、このガイドの「はじめに」セクションにある「[前提条件](gettingstarted-opspup.md#gettingstarted-opspup-prereqs)」を参照してください。

カスタムドメインを使用するサーバーを作成する場合は、カスタムドメイン、証明書、およびプライベートキーが必要です。 CloudFormation テンプレートで、これら 3 つのパラメータすべてに値を指定する必要があります。`CustomDomain`、`CustomCertificate`、および `CustomPrivateKey` パラメータの要件の詳細については、OpsWorks CM API リファレンス の[サーバーの作成](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_CreateServer.html) を参照してください

*CloudFormation ユーザーガイド*テンプレートリファレンスの [OpsWorks-CM セクション](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html)で、サーバーの作成に使用する CloudFormation テンプレートでサポートされている値と必要な値について説明します。

## CloudFormationで Puppet Enterprise マスターを作成する
<a name="opspup-create-server-cfn-main"></a>

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

**Topics**
+ [(コンソール) を使用して Puppet Enterprise Master CloudFormation を作成する](#opspup-create-server-cfn-console)
+ [( CloudFormation CLI) を使用して Puppet Enterprise Master を作成する](#opspup-create-server-cfn-cli)

### (コンソール) を使用して Puppet Enterprise Master CloudFormation を作成する
<a name="opspup-create-server-cfn-console"></a>

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) で CloudFormation コンソールを開きます。

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

1. **前提条件 - テンプレートの準備**では、[example CloudFormation template](samples/opsworkscm-puppet-server.zip) (テンプレートのサンプル) を使用している場合、**テンプレートの準備完了** を選択します。

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

    CloudFormation テンプレートは YAML 形式または JSON 形式のいずれかです。[サンプル CloudFormation テンプレート](samples/opsworkscm-puppet-server.zip)を使用できます。サンプル値は必ず独自の値に置き換えてください。 CloudFormation テンプレートデザイナーを使用して、新しいテンプレートを構築したり、既存のテンプレートを検証したりできます。これを行う方法については、CloudFormation ユーザーガイド の[CloudFormation 「Designer Interface Overview](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer-overview.html) (Designer インターフェイスの概要) を参照してください。  
![\[CloudFormation の [Create stack] (スタックの作成) ページ\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/cfn_select_template.png)

1. [**Specify stack details**] ページでスタックの名前を入力します。これは、サーバーの名前と同じ名前にしないでください。スタック名にすぎません。[**Parameters (パラメータ)**] 領域で、Puppet Enterprise コンソールウェブページにサインインする管理者パスワードを入力します。パスワードに使用できる文字数は 8～32 文字 (ASCII) です。[**次へ**] を選択します。  
![\[CloudFormation の [Specify Details] (詳細の指定) ページ\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/cfn_template_params.png)

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

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

   がスタックを作成する CloudFormation のを待っている間に、スタックの作成ステータスを表示します。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 CloudFormation スタックのエラーのトラブルシューティングについての詳細は、CloudFormation ユーザーガイドの[「Troubleshooting Errors」](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors) (エラーのトラブルシューティング) を参照してください。

   サーバーの作成が完了すると、OpsWorks for Puppet Enterprise のホームページで、Puppet マスターが **[online]** (オンライン) のステータスになり、利用可能になります。サーバーがオンラインになると、Puppet Enterprise コンソールがサーバーのドメインで `https://your_server_name-randomID.region.opsworks-cm.io` の形式の URL で利用できます。
**注記**  
サーバーのカスタムドメイン、証明書、プライベートキーを指定した場合は、エンタープライズの DNS 管理ツールで OpsWorks for Puppet Enterprise によってサーバー用に自動的に生成されたエンドポイントに、カスタムドメインをマッピングする CNAME エントリを作成します。生成されたエンドポイントをカスタムドメイン値にマッピングするまで、サーバーを管理したり、サーバーの Puppet Enterprise 管理 Web サイトに接続したりすることはできません。  
生成されたエンドポイント値を取得するには、サーバーがオンラインになった後に次の AWS CLI コマンドを実行します。  

   ```
   aws opsworks describe-servers --server-name server_name
   ```

### ( CloudFormation CLI) を使用して Puppet Enterprise Master を作成する
<a name="opspup-create-server-cfn-cli"></a>

ローカルコンピュータで がまだ実行されていない場合は AWS CLI、*AWS コマンドラインインターフェイスユーザーガイド* AWS CLI [のインストール手順に従って](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)、 をダウンロードしてインストールします。このセクションでは、**create-stack** コマンドで使用できるパラメータのすべては説明しません。**create-stack** パラメータの詳細については、[**create-stack** リファレンス](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack.html)の「*AWS CLI *」を参照してください。

1. OpsWorks for Puppet Enterprise マスターを作成するために「[前提条件](gettingstarted-opspup.md#gettingstarted-opspup-prereqs)」を必ず完了してください。

1. サービスロールとインスタンスプロファイルを作成します。

   アカウントでサービスロールの ARNs を検索してコピーします。

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

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

1. **create-stack** コマンドを再度実行して、OpsWorks for Puppet Enterprise マスターを作成します。
   + *stack\$1name* をスタックの名前に置き換えます。これは Puppet マスターではなく、 CloudFormation スタックの名前です。Puppet マスター名は、`ServerName` テンプレートにおける CloudFormation の値です。
   + *template* をテンプレートファイルへのパスに置き換え、*yaml または json* を必要に応じて `.yaml` または `.json` に置き換えます。
   + `--parameters` の値は、[[CreateServer]](https://docs.aws.amazon.com/opsworks-cm/latest/APIReference/API_CreateServer.html) (サーバーの作成) API からの [[EngineAttributes]](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-opsworkscm-server.html#cfn-opsworkscm-server-engineattributes) (エンジンの属性) に対応しています。Puppet の場合、サーバーを作成するためにユーザーが指定するエンジン属性は以下のとおりです。r10k エンジン属性は、Puppet マスターをコードリポジトリに接続してサーバーの環境設定を管理します。r10k エンジン属性の詳細については、Puppet Enterprise ドキュメントの「[r10k でのコードの管理](https://puppet.com/docs/pe/2019.8/r10k.html)」を参照してください。
     + `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\$1R10K\$1PRIVATE\$1KEY を追加して 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 エンジン属性が CloudFormation テンプレートで指定されていない場合に、パラメータとして r10k エンジン属性を指定します。r10k エンジン属性 `puppet-server-param-attributes.yaml` が含まれるサンプルテンプレートは、[サンプル CloudFormation テンプレート](samples/opsworkscm-puppet-server.zip)に含まれています。

   ```
   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)"
   ```

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

   ```
   aws cloudformation create-stack --stack-name MyPuppetStack --template-body file://puppet-server-in-file-attributes.yaml
   ```

1. (オプション) スタックの作成状況を取得するには、次のコマンドを実行します。

   ```
   aws cloudformation describe-stacks --stack-name stack_name 
   ```

1. スタックの作成が終了したら、次のセクション「[スターターキットを使用して Puppet マスターを設定する](opspup-starterkit.md)」に移動します。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 CloudFormation スタックのエラーのトラブルシューティングの詳細については、*CloudFormation 「 ユーザーガイド*」の[「エラーのトラブルシューティング](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors)」を参照してください。