Jalankan . Ansible Playbook dari GitHub - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jalankan . Ansible Playbook dari GitHub

Bagian ini mencakup prosedur untuk membantu Anda menjalankan Ansible Playbook dari GitHub dengan menggunakan konsol atau AWS Command Line Interface (AWS CLI).

Sebelum Anda mulai

Jika Anda berencana untuk menjalankan skrip yang disimpan secara pribadi GitHub repositori, buat AWS Systems Manager SecureString parameter untuk Anda GitHub token akses keamanan. Anda tidak dapat mengakses skrip secara pribadi GitHub repositori dengan meneruskan token Anda secara manual. SSH Token akses harus diteruskan sebagai parameter SecureString Systems Manager. Untuk informasi lebih lanjut tentang pembuatan parameter SecureString, lihat Membuat Parameter Store parameter di Systems Manager.

Jalankan Ansible Playbook dari GitHub (konsol)

Jalankan Ansible Playbook dari GitHub
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih Run Command.

  3. Pilih Run Command.

  4. Di daftar Dokumen perintah, pilih AWS-RunRemoteScript.

  5. Di Parameter perintah, lakukan hal berikut:

    • Di Jenis Sumber, pilih GitHub.

    • Di kotak Info sumber, masukkan informasi yang diperlukan untuk mengakses sumber dalam format berikut.

      { "owner": "owner_name", "repository": "repository_name", "getOptions": "branch:branch_name", "path": "path_to_scripts_or_directory", "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" }

      Contoh ini mengunduh sebuah file bernama webserver.yml.

      { "owner": "TestUser1", "repository": "GitHubPrivateTest", "getOptions": "branch:myBranch", "path": "scripts/webserver.yml", "tokenInfo": "{{ssm-secure:mySecureStringParameter}}" }
      catatan

      "branch"diperlukan hanya jika SSM dokumen Anda disimpan di cabang selainmaster.

      Untuk menggunakan versi skrip yang ada di melakukan tertentu di repositori anda, gunakan commitID dengan getOptions daripada branch. Sebagai contoh:

      "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",

    • Di bidang Baris Perintah, masukkan parameter untuk eksekusi skrip. Inilah contohnya.

      ansible-playbook -i “localhost,” --check -c local webserver.yml

    • (Opsional) Di bidang Direktori Kerja, masukkan nama direktori pada node tempat Anda ingin mengunduh dan menjalankan skrip.

    • (Opsional) Di Batas Waktu Eksekusi, tentukan jumlah detik bagi sistem untuk menunggu sebelum menggagalkan eksekusi perintah skrip.

  6. Di bagian Target, pilih node terkelola tempat Anda ingin menjalankan operasi ini dengan menentukan tag, memilih instance atau perangkat tepi secara manual, atau menentukan grup sumber daya.

    Tip

    Jika node terkelola yang Anda harapkan tidak terdaftar, lihat Memecahkan masalah ketersediaan node terkelola untuk tips pemecahan masalah.

  7. Untuk Parameter lainnya:

    • Untuk Komentar, ketik informasi tentang perintah ini.

    • Untuk Waktu habis (detik), tentukan jumlah detik untuk menunggu sistem sebelum gagal menjalankan perintah keseluruhan.

  8. Untuk Pengendalian rate:

    • Untuk Konkurensi, tentukan jumlah atau persentase dari simpul terkelola untuk menjalankan perintah pada saat yang sama.

      catatan

      Jika Anda memilih target dengan menentukan tag yang diterapkan pada node terkelola atau dengan menentukan grup AWS sumber daya, dan Anda tidak yakin berapa banyak node terkelola yang ditargetkan, maka batasi jumlah target yang dapat menjalankan dokumen pada saat yang sama dengan menentukan persentase.

    • Untuk Ambang kesalahan, tentukan kapan harus berhenti menjalankan perintah pada simpul terkelola lain setelah gagal pada jumlah atau persentase simpul. Misalnya, jika Anda menentukan tiga kesalahan, Systems Manager berhenti mengirim perintah ketika kesalahan keempat diterima. Node terkelola yang masih memproses perintah mungkin juga mengirim kesalahan.

  9. (Opsional) Untuk Opsi output, untuk menyimpan output perintah ke file, pilih kotak Tuliskan output perintah ke bucket S3. Masukkan nama bucket dan prefiks (folder) di kotak.

    catatan

    Izin S3 yang memberikan kemampuan untuk menulis data ke bucket S3 adalah izin profil instance (untuk EC2 instance) atau peran IAM layanan (mesin yang diaktifkan hibrida) yang ditetapkan ke instance, bukan izin pengguna yang melakukan tugas ini. IAM Untuk informasi selengkapnya, lihat Mengonfigurasi izin instans yang diperlukan untuk Systems Manager atau Membuat peran IAM layanan untuk lingkungan hibrid. Selain itu, jika bucket S3 yang ditentukan berbeda Akun AWS, pastikan bahwa profil instance atau peran IAM layanan yang terkait dengan node terkelola memiliki izin yang diperlukan untuk menulis ke bucket tersebut.

  10. Di bagian SNSnotifikasi, jika Anda ingin pemberitahuan dikirim tentang status eksekusi perintah, pilih kotak centang Aktifkan SNS pemberitahuan.

    Untuk informasi selengkapnya tentang mengonfigurasi SNS notifikasi Amazon untuk Run Command, lihat Pemantauan perubahan status Systems Manager menggunakan notifikasi Amazon SNS.

  11. Pilih Jalankan.

Jalankan Ansible Playbook dari GitHub dengan menggunakan AWS CLI

  1. Instal dan konfigurasikan AWS Command Line Interface (AWS CLI), jika Anda belum melakukannya.

    Untuk selengkapnya, lihat Menginstal atau memperbarui versi terbaru AWS CLI.

  2. Jalankan perintah berikut untuk mengunduh dan menjalankan skrip dari GitHub.

    aws ssm send-command \ --document-name "AWS-RunRemoteScript" \ --instance-ids "instance-IDs"\ --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'

    Berikut adalah contoh perintah untuk dijalankan pada mesin Linux lokal.

    aws ssm send-command \ --document-name "AWS-RunRemoteScript" \ --instance-ids "i-02573cafcfEXAMPLE" \ --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'