Chef Automate サーバーの作成 - AWS OpsWorks

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

Chef Automate サーバーの作成

AWS OpsWorks for Chef Automate のコンソールまたは AWS CLI を使用して、Chef サーバーを作成できます。

AWS Management Console で Chef Automate サーバーを作成する

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

  2. リポジトリの []AWS OpsWorksホームページ、[] を選択します。参照先OpsWorksChef Automate

    
                     AWS OpsWorksサービスのホーム
  3. AWS OpsWorks for Chef Automate のホームページで、[Create Chef Automate server (Chef Automate サーバーの作成)] を選択します。

    
                     Chef Automate サーバーのホーム
  4. [Set name, region, and type] ページで、サーバーの名前を指定します。Chef サーバー名は 40 文字以内で、英数字とハイフンのみを使用できます。サポートされているリージョンを選択し、管理するノード数をサポートしているインスタンスタイプを選択します。サーバーを作成した後でも、必要に応じてインスタンスタイプを変更できます。このチュートリアルでは、m5.large米国西部 (オレゴン) リージョンのインスタンスタイプ。[Next] (次へ) をクリックします。

    
                     [Set name, region, and type] ページ
  5. [Configure server (サーバーの構成)] ページで、キーペア名を指定しない場合は、[SSH key (SSH キー)] ドロップダウンリストでデフォルトの選択のままにします。

    
                     [Select an SSH key] ページ
  6. サーバーを独自のカスタムドメインで使用しない場合は、[Specify server endpoint (サーバーエンドポイントを指定)] をデフォルトの [Use an automatically-generated endpoint (自動的に生成されたエンドポイントを指定する)] のままにして、[Next (次へ)] を選択します。カスタムドメインを設定するには、次のステップに進みます。

    
                     サーバーエンドポイントの指定セクション
  7. カスタムドメインを使用するには、[Specify server endpoint (サーバーエンドポイントを指定)] で、ドロップダウンリストから [Use a custom domain (カスタムドメインを使用)] を選択します。

    
                     カスタムドメイン名を使用する
    1. [Fully qualified domain name (FQDN) (完全修飾ドメイン名 (FQDN))] で、FQDN を指定します。使用するドメイン名を所有している必要があります。

    2. [SSL certificate (SSL 証明書)] に、PEM 形式の証明書全体を貼り付けます。この証明書は –––--BEGIN CERTIFICATE----- で始まり、–––--END CERTIFICATE----- で終わります。SSL 証明書のサブジェクトは、前のステップで入力した FQDN と一致する必要があります。

    3. [SSL private key (SSL プライベートキー)] には、RSA プライベートキー全体を貼り付けます。このプライベートキーは –––--BEGIN RSA PRIVATE KEY----- で始まり、–––--END RSA PRIVATE KEY----- で終わります。SSL プライベートキーは、前のステップで入力した SSL 証明書のパブリックキーと一致する必要があります。[Next] (次へ) をクリックします。

  8. [Configure Advanced Settings (詳細設定の設定)] ページの [Network and Security (ネットワークとセキュリティ)] 領域で、VPC、サブネット、および 1 つ以上のセキュリティグループを選択します。VPC の要件を以下に示します。

    • VPC には、少なくとも 1 つのパブリックサブネットが必要です。

    • DNS 解決を有効にする必要があります。

    • [Auto-assign public IP (パブリック IP の自動割り当て)] を、パブリックサブネット上で有効にする必要があります。

    使用するセキュリティグループ、サービスロール、およびインスタンスプロファイルがまだない場合は、AWS OpsWorks でそれらを生成できます。サーバーは複数のセキュリティグループのメンバーにできます。このページから次に進んだ後に、Chef サーバーのネットワーク設定およびセキュリティ設定を変更することはできません。

    
                     [Network and Security]
  9. [System maintenance] セクションで、システムメンテナンスを開始する日付と時刻を設定します。システムメンテナンス中はサーバーがオフラインになることを想定する必要があるため、通常の営業時間内でサーバー需要が低い時刻を選択します。接続されたノードは、メンテナンスが完了するまで pending-server 状態になっています。

    メンテナンス時間は必須です。開始の日付と時間は、AWS Management Console、AWS CLI、または API を使用して後で変更できます。

    
                     [System maintenance]
  10. バックアップを設定します。デフォルトでは、自動バックアップが有効になっています。自動バックアップの頻度と開始時刻を設定し、Amazon Simple Storage Service に保存するバックアップの世代数を設定します。最大で 30 のバックアップが保持されます。最大数に達すると、AWS OpsWorks for Chef Automate は最も古いバックアップ削除して、新規バックアップ用のスペースを確保します。

    
                     [Automatic backups(自動バックアップ)]
  11. (オプション) [Tags (タグ)] で、サーバーおよび関連リソース (EC2 インスタンス、Elastic IP アドレス、セキュリティグループ、S3 バケット、バックアップなど) にタグを追加します。AWS OpsWorks for Chef Automate サーバーのタグ付けの詳細については、「AWS OpsWorks for Chef Automate リソースのタグの使用」を参照してください。

  12. 詳細設定が完了したら、[Next] を選択します。

  13. [確認] ページで選択内容を確認します。サーバーを作成する準備ができたら、[Launch] を選択します。

    Chef サーバーが AWS OpsWorks によって作成されるのを待っている間に、「スターターキットを使用して Chef サーバーを設定する」に移動して、スターターキットおよび Chef Automate ダッシュボードの認証情報をダウンロードします。これらをダウンロードするために、サーバーがオンラインになるまで待つ必要はありません。

    サーバーの作成が完了すると、AWS OpsWorks for Chef Automate のホームページで、Chef サーバーが [online] のステータスになり、利用可能になります。サーバーがオンラインになると、Chef Automate ダッシュボードがサーバーのドメインで https://your_server_name-random.region.opsworks-cm.io の形式の URL で利用できます。

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

AWS CLI コマンドの実行による AWS OpsWorks for Chef Automate サーバーの作成は、コンソールでのサーバーの作成とは異なります。コンソールでは、使用するサービスロールおよびセキュリティグループに既存のものを指定しない場合は、AWS OpsWorks がそれらを生成します。AWS CLI では、セキュリティグループを指定しない場合は AWS OpsWorks で作成できますが、サービスロールは自動的に作成されません。サービスロール ARN を create-server コマンドの一部として指定する必要があります。コンソールでは、Chef Automate サーバーが AWS OpsWorks によって作成される間に、Chef Automate スターターキットおよび Chef Automate ダッシュボードの認証情報をダウンロードします。AWS CLI を使用して AWS OpsWorks for Chef Automate サーバーを作成する場合はこれを実行できないため、新しい AWS OpsWorks for Chef Automate サーバーがオンラインになった後、JSON プロセスユーティリティを使用し、create-server コマンドの結果としてサインイン認証情報とスターターキットを取得する必要があります。または、新しい AWS OpsWorks for Chef Automate サーバーがオンラインになった後、コンソールでサインイン認証情報の新しいセットと新しいスターターキットを生成できます。

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

  1. 必ず前提条件、特に「VPC のセットアップ」を満たしてください。または、使用する既存の VPC があることを確認してください。Chef Automate サーバーを作成するには、サブネット ID が必要です。

  2. 必要に応じて、Chef の中枢キーを OpenSSL を使用して作成し、そのキーをローカルコンピュータ上の安全で便利なファイルに保存してください。中枢キーは、create-server コマンドで指定しない場合は、サーバー作成プロセスの一部として自動的に生成されます。このステップをスキップする場合は、代わりに、create-server コマンドにより生成される Chef Automate 主要キーを取得できます。Chef Automate 主要キーの値は、RSA キーペアの公開鍵に相当するため、下記のコマンドを使用して主要キーを生成する場合は、必ず -pubout パラメータを含めてください。詳細については、ステップ 6 を参照してください。

    umask 077 openssl genrsa -out "pivotal" 2048 openssl rsa -in "pivotal" -pubout
  3. サービスロールとインスタンスプロファイルを作成します。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
  4. AWS CloudFormation によるスタックの作成が完了したら、アカウントのサービスロールの ARN を見つけてコピーします。

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

    list-roles コマンドの結果内で、次のようなサービスロール ARN のエントリを探します。サービスロール ARN を書き留めます。Chef Automate サーバーを作成するにはこれらの値が必要です。

    { "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" }
  5. アカウントでインスタンスプロファイルの ARN を検索してコピーします。

    aws iam list-instance-profiles --no-paginate

    list-instance-profiles コマンドの結果内で、次のようなインスタンスプロファイル ARN のエントリを探します。インスタンスプロファイルの ARN を書き留めます。Chef Automate サーバーを作成するにはこれらの値が必要です。

    { "Path": "/", "InstanceProfileName": "aws-opsworks-cm-ec2-role", "InstanceProfileId": "EXAMPLEDC6UR3LTUW7VHK", "Arn": "arn:aws:iam::123456789012:instance-profile/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "Roles": [ { "Path": "/service-role/", "RoleName": "aws-opsworks-cm-ec2-role", "RoleId": "EXAMPLEE4STNUQG6R22HC", "Arn": "arn:aws:iam::123456789012:role/service-role/aws-opsworks-cm-ec2-role", "CreateDate": "2017-01-05T20:42:20Z", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } ] },
  6. create-server コマンドを実行して AWS OpsWorks for Chef Automate サーバーを作成します。

    • --engine の値は ChefAutomate--engine-modelSingle--engine-version12 です。

    • サーバー名はリージョンごとに AWS アカウント内で一意である必要があります。サーバー名は文字で始める必要があります。その後は文字、数字、またはハイフン (-) を最大 40 文字まで使用できます。

    • ステップ 4 と 5 でコピーしたインスタンスプロファイル ARN とサービスロール ARN を使用します。

    • 有効なインスタンスタイプは m5.larger5.xlarge、または r5.2xlarge です。これらのインスタンスタイプの仕様については、「」を参照してください。インスタンスタイプAmazon EC2 ユーザーガイド

    • --engine-attributes パラメータはオプションです。いずれかまたは両方の値を指定しない場合、サーバー作成プロセスで値が生成されます。--engine-attributes を追加する場合は、ステップ 2 で生成した CHEF_AUTOMATE_PIVOTAL_KEY 値、CHEF_AUTOMATE_ADMIN_PASSWORD、またはその両方を指定します。

      CHEF_AUTOMATE_ADMIN_PASSWORD の値を設定しない場合、create-server レスポンスの一部としてパスワードが生成され返されます。コンソールでスターターキットをもう一度ダウンロードして、このパスワードを再生成することもできます。パスワードの最小の長さは 8 文字、最大は 32 文字です。パスワードには、文字、数字、および特殊文字 (!/@#$%^+=_) を使用できます。パスワードは、少なくとも 1 つの小文字、1 つの大文字、1 つの数字、および 1 つの特殊文字を含む必要があります。

    • SSH キーペアはオプションですが、Chef Automate ダッシュボードの管理者パスワードをリセットする必要がある場合に Chef Automate サーバーに接続することができます。SSH key pair 作成の詳細については、「」を参照してください。Amazon EC2 のキーペアAmazon EC2 ユーザーガイド

    • カスタムドメインを使用するには、コマンドに以下のパラメータを追加します。それ以外の場合は、Chef Automate サーバー作成プロセスによって自動的にエンドポイントが生成されます。カスタムドメインを構成するには、3 つのパラメータすべてが必要です。これらのパラメータを使用するための追加要件については、「」を参照してください。CreateServerのAWS OpsWorksCM API リファレンス。

      • --custom-domain - サーバーのオプションのパブリックエンドポイント (https://aws.my-company.com など)。

      • --custom-certificate - PEM 形式の HTTPS 証明書。値には、単一の自己署名証明書、または証明書チェーンを指定できます。

      • --custom-private-key - HTTPS を使用してサーバーに接続するための PEM 形式のプライベートキー。プライベートキーは暗号化しないでください。パスワードやパスフレーズで保護することはできません。

    • 週 1 回のシステムメンテナンスが必要です。次の形式で有効な値を指定する必要があります。DDD:HH:MM。 指定時刻は協定世界時 (UTC) です。--preferred-maintenance-window の値を指定しない場合、火曜日、水曜日、または金曜日の 1 時間がランダムでデフォルト値になります。

    • --preferred-backup-window の有効な値は次の形式のいずれかで指定する必要があります: 日次バックアップの場合は HH:MM、週次バックアップの場合は DDD:HH:MM。指定時刻は UTC です。デフォルト値は日次で開始時間はランダムです。自動バックアップを無効にするには、代わりにパラメータ --disable-automated-backup を追加します。

    • --security-group-ids に、1 つ以上のセキュリティグループ ID をスペースで区切って入力します。

    • --subnet-ids には、サブネット ID を入力します。

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "server_name" --instance-profile-arn "instance_profile_ARN" --instance-type "instance_type" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"pivotal_key","CHEF_AUTOMATE_ADMIN_PASSWORD":"password"}' --key-pair "key_pair_name" --preferred-maintenance-window "ddd:hh:mm" --preferred-backup-window "ddd:hh:mm" --security-group-ids security_group_id1 security_group_id2 --service-role-arn "service_role_ARN" --subnet-ids subnet_ID

    次に例を示します。

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" --server-name "automate-06" --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" --instance-type "m5.large" --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' --key-pair "amazon-test" --preferred-maintenance-window "Mon:08:00" --preferred-backup-window "Sun:02:00" --security-group-ids sg-b00000001 sg-b0000008 --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" --subnet-ids subnet-300aaa00

    次の例では、カスタムドメインを使用する Chef Automate サーバーを作成します。

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-custom-domain-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-chef-automate-server.my-corp.com" \ --custom-certificate "-----BEGIN CERTIFICATE----- EXAMPLEqEXAMPLE== -----END CERTIFICATE-----" \ --custom-private-key "-----BEGIN RSA PRIVATE KEY----- EXAMPLEqEXAMPLE= -----END RSA PRIVATE KEY-----" \ --key-pair "amazon-test" \ --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00

    以下の例では、2 つのタグ Stage: Production および Department: Marketing を追加する Chef Automate サーバーを作成します。AWS OpsWorks for Chef Automate サーバーでのタグの追加と管理の詳細については、このガイドの「AWS OpsWorks for Chef Automate リソースのタグの使用」を参照してください。

    aws opsworks-cm create-server --engine "ChefAutomate" --engine-model "Single" --engine-version "12" \ --server-name "my-test-chef-server" \ --instance-profile-arn "arn:aws:iam::12345678912:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.large" \ --engine-attributes '{"CHEF_AUTOMATE_PIVOTAL_KEY":"MZZE...Wobg","CHEF_AUTOMATE_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --key-pair "amazon-test" \ --preferred-maintenance-window "Mon:08:00" \ --preferred-backup-window "Sun:02:00" \ --security-group-ids sg-b00000001 sg-b0000008 \ --service-role-arn "arn:aws:iam::12345678912:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-300aaa00 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
  7. AWS OpsWorks for Chef Automate によって新しいサーバーが作成されるまで約 15 分かかります。create-server コマンドの出力を閉じたり、シェルセッションを閉じたりしないでください。今後表示されない重要な情報が出力に含まれている場合があります。create-server の結果からパスワードとスターターキットを取得するには、次のステップに進みます。

    サーバーでカスタムドメインを使用している場合は、create-server コマンドの出力で Endpoint 属性の値をコピーします。次に例を示します。

    "Endpoint": "automate-07-exampleexample.opsworks-cm.us-east-1.amazonaws.com"
  8. AWS OpsWorks for Chef Automate でキーとパスワードを生成するように選択した場合、create-server jq などの JSON プロセッサーを使用して の結果から使用可能な形式で抽出できます。jq をインストールした後、以下のコマンドを実行して中枢キー、Chef Automate ダッシュボード管理者パスワード、およびスターターキットを抽出できます。ステップ 4 で独自の中枢キーとパスワードを指定しなかった場合は、抽出した中枢キーと管理者パスワードを使いやすく安全な場所に保存してください。

    #Get the Chef password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_ADMIN_PASSWORD") | .Value' #Get the Chef Pivotal Key: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_AUTOMATE_PIVOTAL_KEY") | .Value' #Get the Chef Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "CHEF_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
  9. 必要に応じて、create-server コマンドの結果からスターターキットを抽出していない場合、新しいスターターキットを AWS OpsWorks for Chef Automate コンソールのサーバーのプロパティページからダウンロードできます。新しいスターターキットをダウンロードすると、Chef Automate ダッシュボードの管理者パスワードがリセットされます。

  10. カスタムドメインを使用していない場合は、次のステップに進みます。サーバーでカスタムドメインを使用している場合は、エンタープライズの DNS 管理ツールで CNAME エントリを作成し、ステップ 7 でコピーした AWS OpsWorks for Chef Automate エンドポイントにカスタムドメインをポイントします。このステップを完了するまで、カスタムドメインを使用するサーバーにアクセスしたりサインインしたりすることはできません。

  11. サーバーの作成プロセスが完了したら、「スターターキットを使用して Chef サーバーを設定する」に進みます。