チュートリアル: Jenkins でオートメーションを使用する - AWS Systems Manager

チュートリアル: Jenkins でオートメーションを使用する

CI/CD のパイプラインで Jenkins ソフトウェアを使用する組織では、オートメーションをビルド後のステップとして追加して、アプリケーションリリースを Amazon Machine Images (AMIs) に事前インストールできます。オートメーションは の一機能ですAWS Systems Manager Jenkins のスケジューリング機能を使用して、自動化を呼び出し、独自のオペレーティングシステム (OS) への定期的なパッチ適用を作成することもできます。

次の例は、オンプレミスまたは Amazon Elastic Compute Cloud (Amazon EC2) のいずれかで実行している Jenkins サーバーから Automation を呼び出す方法を示しています。認証するために、Jenkins サーバーは、この例で作成した AWS Identity and Access Management (IAM) ユーザーに基づく AWS 認証情報を使用します。Jenkins サーバーが Amazon EC2 で実行されている場合、IAM インスタンスプロファイルのロールを使用して認証することもできます。

注記

インスタンスを設定するときは、Jenkins のセキュリティについてのベストプラクティスに従ってください。

開始する前に

Jenkins を使用して Automation を設定する前に、次のタスクを完了します。

  • チュートリアル: Automation、AWS Lambda、Parameter Store を使用して AMI のパッチ適用を簡素化する の例を完了します。次の例では、この例で作成された UpdateMyLatestWindowsAmi ランブックを使用します。

  • オートメーションの IAM ロールを設定します。Systems Manager には、オートメーションを処理するためのインスタンスプロファイルのロールおよびサービスロールの ARN が必要です。詳細については、「」を参照してくださいオートメーションの設定

  • オートメーションの IAM ロールを設定した後、Jenkins サーバーの IAM ユーザーアカウントを作成するために、次の手順を使用します。オートメーションでは、IAM ユーザーアカウントのアクセスキーおよびシークレットキーを使用して、オートメーション中に Jenkins サーバーを認証します。

Jenkins サーバーのユーザーアカウントを作成するには

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

  2. ナビゲーションペインで、[Policies] を選択し、次に [Create policy] を選択します。

  3. [JSON] タブを選択します。

  4. デフォルトコンテンツを以下のものと置き換えます。us-west-2 および 123456789012 を、使用するリージョンとアカウントに置き換えてください。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:StartAutomationExecution", "Resource": [ "arn:aws:ssm:us-west-2:123456789012:document/UpdateMyLatestWindowsAmi", "arn:aws:ssm:us-west-2:123456789012:automation-definition/UpdateMyLatestWindowsAmi:$DEFAULT" ] } ] }
  5. [ポリシーの確認] を選択します。

  6. [Review policy (ポリシーの確認)] ページで、[Name (名前)] にインラインポリシーの名前を入力します (JenkinsPolicy など)。

  7. [Create policy] を選択します。

  8. ナビゲーションペインで [ユーザー] を選択します。

  9. [ユーザーを追加] を選択します。

  10. [Set user details] セクションで、ユーザー名を指定します (たとえば、Jenkins)。

  11. [Select AWS access type (AWS のアクセスタイプを選択)] のセクションで、[Programmatic Access] (プログラムによるアクセス) を選択します。

  12. [Next: Permissions] を選択します。

  13. [Set permissions for] セクションで、[Attach existing policies directly] を選択します。

  14. フィルターフィールドに、先に作成したポリシーの名前を入力します。

  15. ポリシーの横にあるチェックボックスをオンにして、[Next: Tags (次の手順: タグ)] を選択します。

  16. (オプション) 1 つ以上のタグ/値ペアを追加して、このユーザーのアクセスを整理、追跡、または制御し、[次へ: 確認] を選択します。

  17. 詳細を確認し、[Create] を選択します。

  18. アクセスキーおよびシークレットキーをテキストファイルにコピーします。次の手順でこれらの認証情報を指定します。

Jenkins サーバーで AWS CLI を設定するには、次の手順を使用します。

自動化用に Jenkins サーバーを設定するには

  1. 管理インターフェイスにアクセスするには、ご使用のブラウザを使用してポート 8080 で Jenkins サーバーに接続します。

  2. /var/lib/jenkins/secrets/initialAdminPassword で見つかったパスワードを入力します。パスワードを表示するには、次のコマンドを実行します。

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  3. Jenkins インストールスクリプトでは、[Customize Jenkins (Jenkins のカスタマイズ)] ページが表示されます。[Install suggested plugins (推奨プラグインをインストール)] を選択します。

  4. インストールが完了したら、[Administrator Credentials (管理者認証情報)] を選択し、[Save Credentials (認証情報の保存)] を選択してから、[Start Using Jenkins (Jenkins の使用を開始)] を選択します。

  5. 左側のナビゲーションペインで、[Manage Jenkins (Jenkins の管理)] を選択し、[Manage Plugins (プラグインの管理)] を選択します。

  6. [Available (使用可能)] タブを選択し、Amazon EC2 plugin と入力します。

  7. Amazon EC2 plugin のチェックボックスをオンにし、[Install without restart (再起動せずにインストール)] を選択します。

  8. インストールが完了したら、[Go back to the top page (トップページに戻る)]を選択します。

  9. [Manage Jenkins (Jenkins の管理)] を選択し、[Configure System (システムの構成)] を選択します。

  10. [Cloud (クラウド)] セクションで [Add a new cloud (新しいクラウドを追加)] を選択し、[Amazon EC2] を選択します。

  11. 残りのフィールドに情報を入力します。[Add Credentials (認証情報の追加)] フィールドに AWS 認証情報を入力する必要があります。

自動化を呼び出すように Jenkins プロジェクトを設定するには、次の手順を使用します。

自動化を呼び出すように Jenkins サーバー を設定するには

  1. ウェブブラウザで Jenkins コンソールを開きます。

  2. Automation を使用して設定するプロジェクトを選択し、[Configure] を選択します。

  3. [Build] タブで、[Add Build Step] を選択します。

  4. [Execute shell] または [Execute Windows batch command] (オペレーティングシステムによって異なります) を選択します。

  5. [Command (コマンド)] ボックスで、以下のような AWS CLI コマンドを実行します。

    aws --region the AWS リージョン of your source AMI ssm start-automation-execution --document-name your runbook name --parameters parameters for the runbook

    以下のサンプルコマンドは、UpdateMyLatestWindowsAmi ランブックや、latestAmi で作成された Systems Manager Parameter チュートリアル: Automation、AWS Lambda、Parameter Store を使用して AMI のパッチ適用を簡素化する を使用しています。

    aws --region region-id ssm start-automation-execution \ --document-name UpdateMyLatestWindowsAmi \ --parameters \ "sourceAMIid='{{ssm:latestAmi}}'"

    Jenkins では、コマンドは次のスクリーンショットの例のようになります。

    
                            Jenkins 情報
  6. Jenkins のプロジェクトでは、[Build Now] を選択します。Jenkins が次の例のような出力を返します。

    
                            Jenkins 情報