Puppet Enterprise マスターの作成 - AWS OpsWorks

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

Puppet Enterprise マスターの作成

重要

AWS OpsWorks for Puppet Enterprise は新規顧客を受け付けていません。2024 年 3 月 31 日にサービスが利用できなくなるまで、既存のお客様には影響はありません。既存のお客様は、可能な限り早急に他のソリューションに移行することをお勧めします。詳細については、AWS OpsWorks for Puppet Enterprise サポート終了に関する FAQ および OpsWorks for Puppet Enterprise サーバーを Amazon Elastic Compute Cloud (Amazon EC2) に移行する方法 を参照してください。

OpsWorks for Puppet Enterprise のコンソールまたは AWS CLI を使用して、Puppet マスターを作成することができます。

AWS Management Consoleを使用して Puppet Enterprise Master を作成する

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

  2. AWS OpsWorks のホームページで [Go to OpsWorks for Puppet Enterprise] を選択します。

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

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

    
                     [Set name, region, and type] ページ
  5. [Configure server (サーバーの構成)] ページで、キーペア名を指定しない場合は、[SSH key (SSH キー)] ドロップダウンリストでデフォルトの選択のままにします。[Configure Puppet Code Manager] 領域の [r10k remote] フィールドで、Git リモートの有効な SSH URL 値 を指定します。[r10k private key] フィールドに、r10k リモートリポジトリにアクセスするために AWS OpsWorks が使用できる SSH プライベートキーを貼り付けます。これはプライベートリポジトリを作成するときに Git によって提供されますが、HTTPS 認証を使用してコントロールリポジトリアクセスしている場合は必要ありません。[Next] (次へ) をクリックします。

    
                     サーバーの設定ページ
  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. [詳細設定の設定] ページの [ネットワークとセキュリティ] 領域で、VPC、サブネット、および 1 つ以上のセキュリティグループを選択します。使用するセキュリティグループ、サービスロール、およびインスタンスプロファイルがまだない場合は、AWS OpsWorks でそれらを生成できます。サーバーは複数のセキュリティグループのメンバーにできます。このページから次に進んだ後に、Puppet マスターのネットワーク設定およびセキュリティ設定を変更することはできません。

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

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

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

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

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

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

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

    サーバーの作成が完了すると、OpsWorks for Puppet Enterprise のホームページで、Puppet マスターが [online] (オンライン) のステータスになり、利用可能になります。サーバーがオンラインになると、Puppet Enterprise コンソールがサーバーのドメインで https://your_server_name-randomID.region.opsworks-cm.io の形式の URL で利用できます。

AWS CLIを使用して Puppet Enterprise Master を作成する

重要

AWS OpsWorks for Puppet Enterprise は新規顧客を受け付けていません。2024 年 3 月 31 日にサービスが利用できなくなるまで、既存のお客様には影響はありません。既存のお客様は、可能な限り早急に他のソリューションに移行することをお勧めします。詳細については、AWS OpsWorks for Puppet Enterprise サポート終了に関する FAQ および OpsWorks for Puppet Enterprise サーバーを Amazon Elastic Compute Cloud (Amazon EC2) に移行する方法 を参照してください。

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

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

  1. 前提条件」を必ず完了してください。Puppet マスターを作成するには、サブネット ID が必要になるため、VPC が必要です。

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

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

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

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

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

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

    { "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" } ] } } ] },
  5. create-server コマンドを実行して、OpsWorks for Puppet Enterprise マスターを作成します。

    • --engine 値は Puppet で、--engine-modelMonolithic です。また、--engine-version2019 または 2017 になり得ます。

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

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

    • 有効なインスタンスタイプは m5.xlargec5.2xlarge、または c5.4xlarge です。これらのインスタンスタイプの仕様についての詳細は、「Amazon EC2 User Guide」(Amazon EC2 ユーザーガイド) の「Instance Types」(インスタンスタイプ) を参照してください。

    • --engine-attributes パラメータはオプションです。Puppet 管理者パスワードを指定しない場合、サーバー作成プロセスで生成されます。--engine-attributes を追加する場合は、PUPPET_ADMIN_PASSWORD を指定します。これは、Puppet Enterprise コンソールウェブページにサインインする管理者パスワードです。パスワードに使用できる文字数は 8~32 文字 (ASCII) です。

    • SSH キーペアはオプションですが、コンソール管理者パスワードをリセットする必要がある場合に Puppet マスターに接続することができます。SSH キーペアの作成の詳細については、「Amazon EC2 User Guide」(Amazon EC2 ユーザーガイド) の「Amazon EC2 Key Pairs」(Amazon EC2 キーペア) を参照してください。

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

      • --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 "Puppet" --engine-model "Monolithic" --engine-version "2019" --server-name "server_name" --instance-profile-arn "instance_profile_ARN" --instance-type "instance_type" --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"ASCII_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 "Puppet" --engine-model "Monolithic" --engine-version "2019" --server-name "puppet-02" --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" --instance-type "m5.xlarge" --engine-attributes '{"PUPPET_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::111122223333:role/service-role/aws-opsworks-cm-service-role" --subnet-ids subnet-383daa71

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

    aws opsworks-cm create-server \ --engine "Puppet" \ --engine-model "Monolithic" \ --engine-version "2019" \ --server-name "puppet-02" \ --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.xlarge" \ --engine-attributes '{"PUPPET_ADMIN_PASSWORD":"zZZzDj2DLYXSZFRv1d"}' \ --custom-domain "my-puppet-master.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::111122223333:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-383daa71

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

    aws opsworks-cm create-server \ --engine "Puppet" \ --engine-model "Monolithic" \ --engine-version "2019" \ --server-name "puppet-02" \ --instance-profile-arn "arn:aws:iam::111122223333:instance-profile/aws-opsworks-cm-ec2-role" \ --instance-type "m5.xlarge" \ --engine-attributes '{"PUPPET_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::111122223333:role/service-role/aws-opsworks-cm-service-role" \ --subnet-ids subnet-383daa71 \ --tags [{\"Key\":\"Stage\",\"Value\":\"Production\"},{\"Key\":\"Department\",\"Value\":\"Marketing\"}]
  6. OpsWorks for Puppet Enterprise が新しいサーバーを作成するには約 15 分かかります。create-server コマンドの出力を閉じたり、シェルセッションを閉じたりしないでください。今後表示されない重要な情報が出力に含まれている場合があります。create-server の結果からパスワードとスターターキットを取得するには、次のステップに進みます。

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

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

    #Get the Puppet password: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "PUPPET_ADMIN_PASSWORD") | .Value' #Get the Puppet Starter Kit: cat resp.json | jq -r '.Server.EngineAttributes[] | select(.Name == "PUPPET_STARTER_KIT") | .Value' | base64 -D > starterkit.zip
    注記

    AWS Management Console で新しい Puppet マスタースターターキットを再生成することはできません。AWS CLI を使用して Puppet マスターを作成する場合、前述の jq コマンドを実行して、create-server の結果の base64 でエンコードされたスターターキットを ZIP ファイルとして保存できます。

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

  9. 次のセクション「スターターキットを使用して Puppet マスターを設定する」に進みます。