翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CloudFormation を使用して AWS OpsWorks for Chef Automate サーバーを作成する
重要
AWS OpsWorksfor Chef Automateは新規のお客様の受け入れを終了しました。既存のお客様は、2024 年 5 月 5 日まで影響を受けません。この時点で、サービスは利用できなくなります。既存のお客様には、Chef SaaS または代替ソリューションに移行することをお勧めします。詳細については、「AWS OpsWorksシェフオートメイトのサポート終了に関するよくある質問用」を参照してください。
AWS OpsWorks for Chef Automate を使用すると、AWS で Chef Automate
2021 年 5 月 3 日より、AWS OpsWorks for Chef Automate は一部のChef Automate サーバー属性を AWS Secrets Manager に保存します。詳細については、「AWS Secrets Manager との統合」を参照してください。
以下のウォークスルーでは、AWS OpsWorks for Chef Automate でスタックを作成することにより、AWS CloudFormation でサーバーを作成でき ます。
前提条件
新しい Chef Automate サーバーを作成する前に、Chef サーバーにアクセスして管理するために必要なリソースを AWS OpsWorks for Chef Automate の外部で作成してください。詳細については、このガイドの「はじめる」セクションにある「前提条件」を参照してください。
AWS CloudFormationユーザーガイドテンプレートリファレンスのOpsWorks -CM セクションを参照して、AWS CloudFormationサーバーの作成に使用するテンプレートでサポートされる値と必須の値を確認してください。
カスタムドメインを使用するサーバーを作成する場合は、カスタムドメイン、証明書、およびプライベートキーが必要です。AWS CloudFormation テンプレートでこれら 3 つのパラメータすべてに値を指定する必要があります。、CustomPrivateKey
およびパラメータの要件の詳細についてはCustomDomain
CustomCertificate
、AWS OpsWorksCM API CreateServerリファレンスのを参照してください。
CHEF_AUTOMATE_ADMIN_PASSWORD
エンジン属性のパスワード値を作成します。パスワードの最小の長さは 8 文字、最大は 32 文字です。パスワードには、文字、数字、および特殊文字 ((!/@#$%^+=_)
) を使用できます。パスワードは、少なくとも 1 つの小文字、1 つの大文字、1 つの数字、および 1 つの特殊文字を含む必要があります。このパスワードは、AWS CloudFormation テンプレートで指定するか、スタックの作成時に CHEF_AUTOMATE_ADMIN_PASSWORD
パラメータの値として指定します。
AWS CloudFormation で Chef Automate サーバーの作成を開始する前に、base64 でエンコードされた RSA キーペアを生成します。ペアの公開鍵はCHEF_AUTOMATE_PIVOTAL_KEY
、CreateServerAPI の Chef EngineAttributes固有の値です。このキーは、AWS CloudFormation コンソールまたは AWS CLI の create-stack コマンドで [Parameters (パラメータ)] の値として提供されます。このキーを生成するには、次の方法をお勧めします。
-
Linux ベースのコンピュータで、次の OpenSSL
コマンドを実行してこのキーを生成できます。 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
」を参照してください。
AWS CloudFormation で Chef Automate サーバーを作成する
このセクションでは、AWS CloudFormation テンプレートを使用して、AWS OpsWorks for Chef Automate サーバーを作成するスタックを構築する方法について説明します。これを行うには、AWS CloudFormation コンソールまたは AWS CLI を使用します。AWS CloudFormationAWS OpsWorks for Chef Automateサーバースタックの構築に使用できるサンプルテンプレートが用意されています。サンプルテンプレートを更新するには、必ず、独自のサーバー名、IAM ロール、インスタンスプロファイル、サーバーの説明、バックアップ保持数、メンテナンスオプション、およびオプションのタグを使用してください。サーバーでカスタムドメインを使用する場合は、CustomDomain
テンプレートで、CustomCertificate
、CustomPrivateKey
、および AWS CloudFormation パラメータの値を指定する必要があります。AWS CloudFormation テンプレートで CHEF_AUTOMATE_ADMIN_PASSWORD
および CHEF_AUTOMATE_PIVOTAL_KEY
エンジン属性とその値を指定するか、属性だけを指定した後、AWS CloudFormation の [Create Stack] (スタックの作成) ウィザードまたは create-stack コマンドで属性の値を指定できます。これらの属性の詳細については、このガイドの「はじめに」セクションの「AWS Management Console で Chef Automate サーバーを作成する」を参照してください。
トピック
AWS CloudFormation (コンソール) を使用して Chef Automate サーバーを作成する
AWS Management Console にサインインし、AWS CloudFormationコンソール (https://console.aws.amazon.com/cloudformation
) を開きます。 -
AWS CloudFormation ホームページでは、[スタックの作成] を選択します。
-
サンプルテンプレートを使用している場合は、「前提条件-テンプレートの準備」で、「AWS CloudFormationテンプレート準備完了」を選択します。
-
[Specify template] 内で、テンプレートのソースを選択します。このウォークスルーでは、[Upload a template file] を選択し、Chef Automate サーバを生成する AWS CloudFormation テンプレートをアップロードします。テンプレートファイルを参照し、[Next] を選択します。
AWS CloudFormation テンプレートは YAML 形式または JSON 形式のいずれかで使用できます。サンプル AWS CloudFormation テンプレートを使用できます。必ず、サンプル値を独自の値に置き換えてください。AWS CloudFormation テンプレートデザイナーを使用すると、新しいテンプレートを構築したり、既存のテンプレートを検証したりすることができます。この方法の詳細については、AWS CloudFormationユーザーガイドの「AWS CloudFormationDesigner インターフェイスの概要」を参照してください。
-
[Specify stack details] ページでスタックの名前を入力します。これは、サーバーの名前と同じ名前にしないでください。スタック名にすぎません。[Parameters (パラメータ)] 領域に、「前提条件」で作成した値を貼り付けます。[Password] にパスワードを入力します。
RSA キーファイルの内容を貼り付けますPivotalKey。AWS CloudFormation コンソールでは、下記のスクリーンショットにあるように、主要キー値の各行の末尾に改行 (
\n
) 文字を追加する必要があります。[Next] (次へ) を選択します。 -
[Configure stack options] (スタックオプションの設定) ページでは、スタックを使用して作成するサーバーにタグを追加することができ、テンプレートで使用する IAM ロールをまだ指定していない場合には、リソースを作成するための IAM ロールを選択できます。オプションの指定を終了したら、[Next (次へ)] を選択します。ロールバックトリガーなどの詳細オプションの詳細については、AWS CloudFormationユーザーガイドの「AWS CloudFormationスタックオプションを設定する」を参照してください。
-
[確認] ページで選択内容を確認します。サーバースタックを作成する準備ができたら、[Create stack] を選択します。
AWS CloudFormation がスタックを作成している間、スタックの作成状況が表示されます。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。AWS CloudFormationスタックのエラーのトラブルシューティングの詳細については、AWS CloudFormationユーザーガイドの「エラーのトラブルシューティング」を参照してください。
サーバーの作成が完了すると、AWS OpsWorks for Chef Automate のホームページで、Chef Automate サーバーが [online] のステータスになり、利用可能になります。サーバーの [Properties (プロパティ)] ページで、新しいスターターキットと Chef Automate ダッシュボードの認証情報を生成します。サーバーがオンラインになると、Chef Automate ダッシュボードがサーバーのドメインで
https://
の形式の URL で利用できます。your_server_name
-randomID
.region
.opsworks-cm.io注記
サーバーのカスタムドメイン、証明書、プライベートキーを指定した場合は、エンタープライズの DNS 管理ツールで CNAME エントリを作成します。このエントリは、AWS OpsWorks for Chef Automate によってサーバー用に自動的に生成されたエンドポイントに、カスタムドメインをマッピングします。生成されたエンドポイントをカスタムドメイン値にマッピングするまで、サーバーを管理したり、サーバーの Chef Automate ダッシュボードに接続したりできません。
生成されたエンドポイント値を取得するには、サーバーがオンラインになった後に次の AWS CLI コマンドを実行します。
aws opsworks describe-servers --server-name
server_name
AWS CloudFormation (CLI) を使用して Chef Automate サーバーを作成する
ローカルコンピュータで AWS CLI を実行していない場合は、「AWS コマンドラインインターフェイスのユーザーガイド」の「インストール手順」の指示に従って AWS CLI をダウンロードおよびインストールします。このセクションでは、create-stack コマンドで使用できるパラメータのすべては説明しません。create-stack パラメータの詳細については、「create-stackリファレンス」の「AWS CLI」を参照してください。
-
必ず [前提条件] を実行して AWS OpsWorks for Chef Automate サーバーを作成してください。
-
サービスロールとインスタンスプロファイルを作成します。AWS OpsWorks では、両方の作成に使用できる AWS CloudFormation テンプレートが提供されています。次の 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 によるスタックの作成が完了したら、アカウントのサービスロールの ARN を見つけてコピーします。
aws iam list-roles --path-prefix "/service-role/" --no-paginate
list-roles
コマンドの結果内で、次のようなサービスロールとインスタンスプロファイルのエントリを探します。サービスロールとインスタンスプロファイルの ARN を書き留め、サーバースタックの作成に使用する 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" }
-
create-stack コマンドをもう一度実行して AWS OpsWorks for Chef Automate サーバーを作成します。
-
stack_name
をスタックの名前に置き換えます。これは、Chef Automate サーバーではなく、AWS CloudFormation スタックの名前です。Chef Automate サーバー名は、ServerName
テンプレートにおける AWS CloudFormation の値です。 -
template
をテンプレートファイルへのパスに置き換え、yaml または json
を必要に応じて.yaml
または.json
に置き換えます。 -
の値は CreateServerAPI
--parameters
EngineAttributesからの値に対応しています。Chef の場合、サーバーを作成するためにユーザーが指定するエンジン属性は、CHEF_AUTOMATE_PIVOTAL_KEY
(「前提条件」で説明されているユーティリティを使用して生成する base64 でエンコードされた RSA パブリックキー) とCHEF_AUTOMATE_ADMIN_PASSWORD
(ユーザーが作成する 8~32 文字のパスワード) です。CHEF_AUTOMATE_ADMIN_PASSWORD
の詳細については、「AWS CLI を使用して Chef Automate サーバーを作成する」を参照してください。例に示すように、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
属性のサンプル値が含まれている例を以下に示します。AWS 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"
-
-
スタックの作成が完了したら、AWS OpsWorks for Chef Automate コンソールで新しいサーバーの [Properties] (プロパティ) ページを開き、スターターキットをダウンロードします。新しいスターターキットをダウンロードすると、Chef Automate ダッシュボードの管理者パスワードがリセットされます。
-
サーバーでカスタムドメイン、証明書、およびプライベートキーを使用する場合は、(オプション) カスタムドメインを使用するように knife を設定します。 に
knife.rb
を設定のステップに従い、ステップ 7 に進みます。カスタムドメインを使用していない場合は、次の Amazon S3 バケットの場所からルート認証局 (CA) 証明書をダウンロードします: https://s3.amazonaws.com/opsworks-cm-us-east-1-prod-default-assets/misc/opsworks-cm-ca-2020-root.pem
。証明書ファイルを安全かつ便利な場所に保存します。この証明書は、次のステップで knife.rb
を設定するために必要です。 -
新しいサーバーで
knife
コマンドを使用するには、Chefknife.rb
設定ファイルの設定を更新します。サンプルknife.rb
ファイルは、スターターキットに含まれています。次の例は、カスタムドメインを使用しないサーバーでknife.rb
を設定する方法を示しています。カスタムドメインを使用している場合は、knife
設定手順の (オプション) カスタムドメインを使用するように knife を設定します。 を参照してください。-
ENDPOINT
をサーバーのエンドポイント値で置き換えます。これは、スタック作成オペレーションの出力の一部です。エンドポイントを取得するには、次のコマンドを実行します。aws cloudformation describe-stacks --stack-name
stack_name
-
client_key
の設定のkey_pair_file.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')
-
-
サーバーの作成プロセスが完了したら、「スターターキットを使用して Chef サーバーを設定する」に進みます。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。AWS CloudFormationスタックのエラーのトラブルシューティングの詳細については、AWS CloudFormationユーザーガイドの「エラーのトラブルシューティング」を参照してください。