

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

# を使用して AWS OpsWorks for Chef Automate サーバーを作成する CloudFormation
<a name="opscm-create-server-cfn"></a>

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

AWS OpsWorks for Chef Automate では、[Chef Automate](https://www.chef.io/automate/) サーバーを で実行できます AWS。約 15 分で Chef Automate サーバーをプロビジョニングできます。

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

次のチュートリアルは、 でスタックを作成 AWS OpsWorks for Chef Automate することで、 でサーバーを作成するのに役立ちます CloudFormation。

**Topics**
+ [前提条件](#opscm-create-server-cfn-prereqs)
+ [CloudFormationで Chef Automate サーバーを作成する](#opscm-create-server-cfn-main)

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

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

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

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

`CHEF_AUTOMATE_ADMIN_PASSWORD` エンジン属性のパスワード値を作成します。パスワードの最小の長さは 8 文字、最大は 32 文字です。パスワードには、文字、数字、および特殊文字 (`(!/@#$%^+=_)`) を使用できます。パスワードは、少なくとも 1 つの小文字、1 つの大文字、1 つの数字、および 1 つの特殊文字を含む必要があります。テンプレートでこのパスワードを指定するか CloudFormation 、スタックの作成時に `CHEF_AUTOMATE_ADMIN_PASSWORD`パラメータの値として指定します。

Chef Automate サーバーの作成を開始する前に、base64 でエンコードされた RSA キーペアを生成します CloudFormation。ペアの公開キーは `CHEF_AUTOMATE_PIVOTAL_KEY` の値で、[[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) (エンジンの属性) です。このキーは、 CloudFormation コンソールの **Parameters** の値、または の **create-stack** コマンドの値として提供されます AWS CLI。このキーを生成するには、次の方法をお勧めします。
+ Linux ベースのコンピュータで、次の [OpenSSL](https://www.openssl.org/) コマンドを実行してこのキーを生成できます。

  ```
  openssl genrsa -out pivotal_key_file_name.pem 2048
  ```

  生成したら、鍵ペアの RSA 公開鍵部分をファイルにエクスポートします。公開鍵は、`CHEF_AUTOMATE_PIVOTAL_KEY` の値となります。

  ```
  openssl rsa -in pivotal_key_file_name.pem -pubout -out public.pem -outform PEM
  ```
+ Windows ベースのコンピュータでは、PuTTYgen ユーティリティを使用して base64 でエンコードされた RSA キーペアを生成できます。詳細については、SSH.com で「[PuTTYgen - Key Generator for PuTTY on Windows](https://www.ssh.com/ssh/putty/windows/puttygen)」を参照してください。

## CloudFormationで Chef Automate サーバーを作成する
<a name="opscm-create-server-cfn-main"></a>

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

**Topics**
+ [CloudFormation (コンソール) を使用して Chef Automate サーバーを作成する](#opscm-create-server-cfn-console)
+ [CloudFormation (CLI) を使用して Chef Automate サーバーを作成する](#opscm-create-server-cfn-cli)

### CloudFormation (コンソール) を使用して Chef Automate サーバーを作成する
<a name="opscm-create-server-cfn-console"></a>

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

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

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

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

    CloudFormation テンプレートは YAML 形式または JSON 形式のいずれかです。[サンプル CloudFormation テンプレート](samples/opsworkscm-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 (パラメータ)**] 領域に、「[前提条件](#opscm-create-server-cfn-prereqs)」で作成した値を貼り付けます。[**Password**] にパスワードを入力します。

   RSA キーファイルのコンテンツを [**PivotalKey**] 内に貼り付けます。 CloudFormation コンソールでは、次のスクリーンショットに示すように、ピボットキー値の各行の末尾に改行 (**\$1n**) 文字を追加する必要があります。[**次へ**] を選択します。  
![\[CloudFormation の [Specify stack details] (スタックの詳細を指定) ページ\]](http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/images/cfn_template_params_opscm.png)

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

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

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

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

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

### CloudFormation (CLI) を使用して Chef Automate サーバーを作成する
<a name="opscm-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. 必ず [[前提条件](gettingstarted-opscm.md#gettingstarted-opscm-prereq)] を実行して AWS OpsWorks for Chef Automate サーバーを作成してください。

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

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

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

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

1. **create-stack** コマンドを再度実行して AWS OpsWorks for Chef Automate サーバーを作成します。
   + *stack\$1name* をスタックの名前に置き換えます。これは、Chef Automate サーバーではなく、 CloudFormation スタックの名前です。Chef Automate サーバー名は、 CloudFormation テンプレート`ServerName`内の の値です。
   + *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) (エンジンの属性) に対応しています。Chef の場合、サーバーを作成するためにユーザーが指定するエンジン属性は、`CHEF_AUTOMATE_PIVOTAL_KEY` (「[前提条件](#opscm-create-server-cfn-prereqs)」で説明されているユーティリティを使用して生成する base64 でエンコードされた RSA パブリックキー) と `CHEF_AUTOMATE_ADMIN_PASSWORD` (ユーザーが作成する 8～32 文字のパスワード) です。`CHEF_AUTOMATE_ADMIN_PASSWORD` の詳細については、「[を使用して Chef Automate サーバーを作成する AWS CLI](gettingstarted-opscm-create.md#gettingstarted-opscm-create-cli)」を参照してください。例に示すように、`PivotalKey` パラメータの値として重要なキーが含まれている PEM ファイルへのポインターを指定できます。`CHEF_AUTOMATE_ADMIN_PASSWORD` と の値がテンプレートで指定されていない場合`CHEF_AUTOMATE_PIVOTAL_KEY`は、 AWS CLI コマンドで値を指定する必要があります。

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

   `CHEF_AUTOMATE_ADMIN_PASSWORD` 属性と `CHEF_AUTOMATE_PIVOTAL_KEY` 属性のサンプル値が含まれている例を以下に示します。 CloudFormation テンプレートでこれらの属性の値を指定しなかった場合は、同様のコマンドを実行します。

   ```
   aws cloudformation create-stack --stack-name "OpsWorksCMChefServerStack" --template-body file://opsworkscm-server.yaml --parameters ParameterKey=PivotalKey,ParameterValue="$(openssl rsa -in "pivotalKey.pem" -pubout)" ParameterKey=Password,ParameterValue="SuPer\$ecret890"
   ```

1. スタックの作成が完了したら、 AWS OpsWorks for Chef Automate コンソールで新しいサーバーのプロパティページを開き、スターターキットをダウンロードします。新しいスターターキットをダウンロードすると、Chef Automate ダッシュボードの管理者パスワードがリセットされます。

1. サーバーでカスタムドメイン、証明書、およびプライベートキーを使用する場合は、[(オプション) カスタムドメインを使用するように `knife` を設定します。](opscm-starterkit.md#opscm-starterkit-customdomain) に `knife.rb` を設定のステップに従い、ステップ 7 に進みます。

1. 新しいサーバーで `knife` コマンドを使用するには、Chef `knife.rb` 設定ファイルの設定を更新します。サンプル `knife.rb` ファイルは、スターターキットに含まれています。次の例は、カスタムドメインを使用しないサーバーで `knife.rb` を設定する方法を示しています。カスタムドメインを使用している場合は、`knife` 設定手順の [(オプション) カスタムドメインを使用するように `knife` を設定します。](opscm-starterkit.md#opscm-starterkit-customdomain) を参照してください。
   + *ENDPOINT* をサーバーのエンドポイント値で置き換えます。これは、スタック作成オペレーションの出力の一部です。エンドポイントを取得するには、次のコマンドを実行します。

     ```
     aws cloudformation describe-stacks --stack-name stack_name 
     ```
   + `client_key` の設定の *key\$1pair\$1file.pem* を、サーバーの作成に使用した `CHEF_AUTOMATE_PIVOTAL_KEY` を含む PEM ファイルの名前に置き換えます。

     ```
     base_dir = File.join(File.dirname(File.expand_path(__FILE__)), '..')
     
     log_level                :info
     log_location             STDOUT
     node_name                'pivotal'
     client_key               File.join(base_dir, '.chef', 'key_pair_file.pem')
     syntax_check_cache_path  File.join(base_dir, '.chef', 'syntax_check_cache')
     cookbook_path            [File.join(base_dir, 'cookbooks')]
     
     chef_server_url          'ENDPOINT/organizations/default'
     ssl_ca_file              File.join(base_dir, '.chef', 'ca_certs', 'opsworks-cm-ca-2020-root.pem')
     trusted_certs_dir        File.join(base_dir, '.chef', 'ca_certs')
     ```

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