を使用して AWS OpsWorks for Chef Automate サーバーを作成する AWS CloudFormation - AWS OpsWorks

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

を使用して AWS OpsWorks for Chef Automate サーバーを作成する AWS CloudFormation

重要

AWS OpsWorks for Chef Automate は 2024 年 5 月 5 日にサポートが終了し、新規および既存のお客様の両方で無効になっています。既存のお客様は、 Chef SaaS または代替ソリューションに移行することをお勧めします。ご質問がある場合は、 AWS re:Post または AWS Premium Support を通じて AWS Support チームにお問い合わせください。

AWS OpsWorks for Chef Automate では、 で Chef Automate サーバーを実行できます AWS。約 15 分で Chef Automate サーバーをプロビジョニングできます。

2021 年 5 月 3 日以降、 は一部の Chef Automate サーバー属性を に AWS OpsWorks for 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 つのパラメータすべてに値を指定する必要があります。CustomDomain、、および CustomPrivateKeyパラメータの要件の詳細についてはCustomCertificateAWS OpsWorks CM API リファレンスCreateServer「」を参照してください。

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

で Chef Automate サーバーの作成を開始する前に、base64 でエンコードされた RSA キーペアを生成します AWS CloudFormation。ペアのパブリックキーはCHEF_AUTOMATE_PIVOTAL_KEYCreateServer API EngineAttributesから Chef 固有の の値です。このキーは、 AWS CloudFormation コンソールの Parameters の値、または の create-stack コマンドの値として提供されます AWS CLI。このキーを生成するには、次の方法をお勧めします。

  • 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 CloudFormation テンプレートを使用して、 AWS OpsWorks for Chef Automate サーバースタックを構築できます。サンプルテンプレートを更新するには、必ず、独自のサーバー名、IAM ロール、インスタンスプロファイル、サーバーの説明、バックアップ保持数、メンテナンスオプション、およびオプションのタグを使用してください。サーバーがカスタムドメインを使用する場合は、 AWS CloudFormation テンプレートで CustomDomainCustomCertificate、および CustomPrivateKeyパラメータの値を指定する必要があります。 AWS CloudFormation テンプレートで CHEF_AUTOMATE_ADMIN_PASSWORDおよび CHEF_AUTOMATE_PIVOTAL_KEY エンジン属性とその値を指定するか、属性のみを指定し、 AWS CloudFormation スタックの作成ウィザードまたはcreate-stackコマンドで属性の値を指定できます。これらの属性の詳細については、このガイドの「はじめに」セクションの「で Chef Automate サーバーを作成する AWS Management Console」を参照してください。

AWS CloudFormation (コンソール) を使用して Chef Automate サーバーを作成する

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

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

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

  4. [Specify template] 内で、テンプレートのソースを選択します。このチュートリアルでは、テンプレートファイル をアップロードを選択し、Chef Automate サーバーを作成する 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 (パラメータ)] 領域に、「前提条件」で作成した値を貼り付けます。[Password] にパスワードを入力します。

    RSA キーファイルの内容を に貼り付けますPivotalKey。次のスクリーンショットに示すように、 AWS CloudFormation コンソールでは、ピボットキー値の各行の末尾に改行 (\n) 文字を追加する必要があります。[次へ] をクリックします。

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

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

    がスタックを作成する AWS CloudFormation のを待っている間に、スタックの作成ステータスを表示します。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 AWS CloudFormation スタックのエラーのトラブルシューティングについての詳細は、AWS CloudFormation ユーザーガイドの「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

AWS CloudFormation (CLI) を使用して Chef Automate サーバーを作成する

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

  1. 必ず [前提条件] を実行して AWS OpsWorks for Chef Automate サーバーを作成してください。

  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 を書き留めて、サーバースタックの作成に使用している 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 コマンドを再度実行して AWS OpsWorks for Chef Automate サーバーを作成します。

    • stack_name をスタックの名前に置き換えます。これは、Chef Automate サーバーではなく、 AWS CloudFormation スタックの名前です。Chef Automate サーバー名は、 AWS CloudFormation テンプレートServerName内の の値です。

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

    • の値は CreateServer API EngineAttributesから --parametersに対応します。Chef の場合、サーバーを作成するためにユーザーが指定するエンジン属性は、CHEF_AUTOMATE_PIVOTAL_KEY (「前提条件」で説明されているユーティリティを使用して生成する base64 でエンコードされた RSA パブリックキー) と CHEF_AUTOMATE_ADMIN_PASSWORD (ユーザーが作成する 8~32 文字のパスワード) です。CHEF_AUTOMATE_ADMIN_PASSWORD の詳細については、「を使用して Chef Automate サーバーを作成する AWS 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 属性のサンプル値が含まれている例を以下に示します。 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"
  4. スタックの作成が完了したら、 AWS OpsWorks for Chef Automate コンソールで新しいサーバーのプロパティページを開き、スターターキットをダウンロードします。新しいスターターキットをダウンロードすると、Chef Automate ダッシュボードの管理者パスワードがリセットされます。

  5. サーバーでカスタムドメイン、証明書、およびプライベートキーを使用する場合は、(オプション) カスタムドメインを使用するように 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 を設定するために必要です。

  6. 新しいサーバーで knife コマンドを使用するには、Chef knife.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')
  7. サーバーの作成プロセスが完了したら、「スターターキットを使用して Chef サーバーを設定する」に進みます。スタックの作成に失敗した場合、コンソールに表示されるエラーメッセージを確認し、問題を解決します。 AWS CloudFormation スタックのエラーのトラブルシューティングの詳細については、「 AWS CloudFormation ユーザーガイド」の「エラーのトラブルシューティング」を参照してください。