Menggunakan Document Builder untuk membuat runbook - AWS Systems Manager

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

Menggunakan Document Builder untuk membuat runbook

Jika runbook AWS Systems Manager publik tidak mendukung semua tindakan yang ingin Anda lakukan pada AWS sumber daya Anda, Anda dapat membuat runbook sendiri. Untuk membuat buku runbook khusus, Anda dapat membuat file lokal YAML atau JSON format secara manual dengan tindakan otomatisasi yang sesuai. Atau, Anda dapat menggunakan Document Builder di konsol Automation Systems Manager untuk membuat runbook kustom.

Menggunakan Document Builder, Anda dapat menambahkan tindakan otomatisasi ke runbook kustom Anda dan memberikan parameter yang diperlukan tanpa harus menggunakan JSON atau YAML sintaks. Setelah menambahkan langkah dan membuat buku runbook, sistem akan mengonversi tindakan yang telah ditambahkan ke dalam YAML format yang dapat digunakan Systems Manager untuk menjalankan otomatisasi.

Runbooks mendukung penggunaan penurunan harga, bahasa markup, yang memungkinkan Anda menambahkan deskripsi gaya wiki ke runbook dan langkah-langkah individual dalam runbook. Untuk informasi lebih lanjut tentang penggunaan penurunan harga, lihat Menggunakan Markdown di AWS.

Buat runbook menggunakan Document Builder

Sebelum Anda mulai

Kami menyarankan Anda membaca tentang berbagai tindakan yang dapat Anda gunakan dalam runbook. Untuk informasi selengkapnya, lihat Referensi tindakan Otomatisasi Systems Manager.

Untuk membuat runbook menggunakan Pembuat Dokumen
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih Dokumen.

  3. Pilih Buat otomatisasi.

  4. Untuk Nama, masukkan nama deskriptif untuk runbook.

  5. Untuk Deskripsi dokumen, berikan deskripsi gaya penurunan harga untuk runbook. Anda dapat memberikan petunjuk untuk menggunakan runbook, langkah-langkah bernomor, atau jenis informasi lainnya untuk menggambarkan runbook. Lihat teks default untuk informasi tentang memformat konten Anda.

    Tip

    Alihkan antara Sembunyikan pratinjau dan Tampilkan pratinjau untuk melihat seperti apa konten deskripsi Anda yang Anda tulis.

  6. (Opsional) Untuk Asumsikan peran, masukkan ARN nama atau peran layanan untuk melakukan tindakan atas nama Anda. Jika Anda tidak menentukan peran, Otomatisasi menggunakan izin akses pengguna yang menjalankan otomatisasi.

    penting

    Untuk runbook yang tidak dimiliki oleh Amazon yang menggunakan aws:executeScript tindakan, peran harus ditentukan. Untuk informasi, lihat Izin untuk menggunakan runbook.

  7. (Opsional) Untuk Keluaran, masukkan output apapun untuk otomatisasi runbook ini supaya bisa melakukan proses lainnya.

    Misalnya, jika runbook Anda membuat yang baruAMI, Anda dapat menentukan [”. CreateImage ImageId“], dan kemudian gunakan output ini untuk membuat instance baru dalam otomatisasi berikutnya.

  8. (Opsional) Perluas bagian Parameter input dan lakukan hal-hal berikut ini.

    1. Untuk Nama parameter, masukkan nama deskriptif untuk parameter runbook yang Anda buat.

    2. Untuk Jenis, pilih jenis untuk parameter, seperti String atau MapList.

    3. Untuk Yang dibutuhkan, lakukan salah satu hal berikut ini:

      • Pilih Ya jika nilai untuk parameter runbook ini harus diberikan pada saat waktu aktif.

      • Pilih Tidak jika parameter tidak diperlukan, dan masukkan nilai parameter default di Nilai default (opsional).

    4. Di Deskripsi, masukkan deskripsi untuk parameter runbook.

    catatan

    Untuk menambahkan parameter runbook lainnya, pilih Tambahkan parameter. Untuk menghapus parameter runbook, pilih tombol X (Hapus).

  9. (Opsional) Perluas Jenis target dan pilih jenis target untuk menentukan lokasi jenis sumber daya otomatisasi dapat berjalan. Misalnya, untuk menggunakan runbook pada EC2 instance, pilih. /AWS::EC2::Instance

    catatan

    Jika Anda menentukan nilai '/', runbook dapat berjalan pada semua jenis sumber daya. Untuk daftar jenis sumber daya yang valid, lihat AWS Referensi Jenis Sumber Daya di AWS CloudFormation Panduan Pengguna.

  10. Perluas bagian Tag dokumen dan masukkan satu tag kunci-nilai pasangan atau lebih untuk diterapkan ke runbook (opsional). Tag membuatnya lebih mudah untuk mengidentifikasi, mengatur, dan mencari sumber daya. Untuk informasi selengkapnya, lihat Menandai dokumen Systems Manager.

  11. Di bagian Langkah 1, berikan informasi berikut.

    • Untuk Nama langkah, masukkan nama deskriptif untuk langkah pertama otomatisasi.

    • Untuk Jenis tindakan, pilih jenis tindakan yang akan digunakan untuk langkah ini.

      Untuk daftar dan informasi tentang jenis tindakan yang tersedia, lihat Referensi tindakan Otomatisasi Systems Manager.

    • Untuk Deskripsi, masukkan deskripsi alangkah otomatisasi. Anda dapat menggunakan penurunan harga untuk memformat teks Anda.

    • Tergantung pada Jenis tindakan yang dipilih, masukkan input yang diperlukan untuk jenis tindakan di bagian Input langkah. Misalnya, jika Anda memilih tindakan aws:approve, Anda harus menentukan nilai untuk Approvers properti.

      Untuk informasi tentang bidang input langkah, lihat entri di Referensi tindakan Otomatisasi Systems Manager untuk jenis tindakan yang Anda pilih. Sebagai contoh: aws:executeStateMachine – Jalankan AWS Step Functions mesin status.

    • (Opsional) Untuk Input tambahan, berikan nilai masukan tambahan yang diperlukan untuk runbook Anda. Jenis input yang tersedia bergantung pada jenis tindakan yang Anda pilih untuk langkah tersebut. (Perhatikan bahwa beberapa jenis tindakan memerlukan nilai input.)

      catatan

      Untuk menambahkan input lainnya, pilih Tambahkan input opsional. Untuk menghapus input, pilih tombol X (Hapus).

    • (Opsional) Untuk Output, masukkan output apapun untuk langkah ini supaya bisa melakukan proses lainnya.

      catatan

      Output tidak tersedia untuk semua jenis tindakan.

    • Perluas bagian Properti umum (opsional) dan tentukan properti untuk tindakan yang umum di semua tindakan otomatisasi. Misalnya, untuk detik waktu habis, Anda dapat memberikan nilai dalam hitungan detik untuk menentukan berapa lama langkah dapat berjalan sebelum berhenti.

      Untuk informasi selengkapnya, lihat Properti dibagi oleh semua tindakan.

    catatan

    Untuk menambahkan langkah lainnya, pilih Tambahkan langkah dan ulangi prosedur untuk membuat langkah. Untuk menghapus langkah, pilih Hapus langkah.

  12. Pilih Buat Otomatisasi untuk menyimpan runbook.

Buat runbook yang menjalankan skrip

Prosedur berikut menunjukkan cara menggunakan Document Builder di konsol AWS Systems Manager Automation untuk membuat runbook kustom yang menjalankan skrip.

Langkah pertama runbook yang Anda buat menjalankan skrip untuk meluncurkan instans Amazon Elastic Compute Cloud EC2 (Amazon). Langkah kedua menjalankan skrip lain untuk memantau pemeriksaan status instans untuk mengubah ke ok. Kemudian, status keseluruhan Success dilaporkan untuk otomatisasi.

Sebelum Anda mulai

Pastikan Anda telah menyelesaikan langkah-langkah berikut:

  • Verifikasi bahwa Anda memiliki hak administrator, atau bahwa Anda telah diberikan izin yang sesuai untuk mengakses Systems Manager di AWS Identity and Access Management ()IAM.

    Untuk informasi, lihat Memverifikasi akses pengguna untuk runbook.

  • Verifikasi bahwa Anda memiliki peran IAM layanan untuk Otomasi (juga dikenal sebagai peran asumsi) di Anda Akun AWS. Peran ini diperlukan karena panduan ini menggunakan aws:executeScript tindakan.

    Untuk informasi lebih lanjut tentang pembuatan peran, lihat Mengonfigurasi akses peran layanan (peran asumsi) untuk otomatisasi.

    Untuk informasi tentang persyaratan peran IAM layanan untuk menjalankanaws:executeScript, lihatIzin untuk menggunakan runbook.

  • Verifikasi bahwa Anda memiliki izin untuk meluncurkan EC2 instance.

    Untuk informasi, lihat IAMdan Amazon EC2 di Panduan EC2 Pengguna Amazon.

Untuk membuat runbook kustom yang menjalankan skrip menggunakan Document Builder
  1. Buka AWS Systems Manager konsol di https://console.aws.amazon.com/systems-manager/.

  2. Di panel navigasi, pilih Dokumen.

  3. Pilih Buat otomatisasi.

  4. Untuk Nama, ketik nama deskriptif ini untuk runbook:. LaunchInstanceAndCheckStatus

  5. (Opsional) Untuk Deskripsi dokumen, ganti teks default dengan deskripsi untuk runbook ini, menggunakan Markdown. Berikut adalah contohnya.

    ##Title: LaunchInstanceAndCheckState ----- **Purpose**: This runbook first launches an EC2 instance using the AMI ID provided in the parameter ```imageId```. The second step of this runbook continuously checks the instance status check value for the launched instance until the status ```ok``` is returned. ##Parameters: ----- Name | Type | Description | Default Value ------------- | ------------- | ------------- | ------------- assumeRole | String | (Optional) The ARN of the role that allows Automation to perform the actions on your behalf. | - imageId | String | (Optional) The AMI ID to use for launching the instance. The default value uses the latest Amazon Linux AMI ID available. | {{ ssm:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2 }}
  6. Untuk peran Asumsikan, masukkan peran IAM layanan untuk Otomasi (Asumsikan peran) untuk otomatisasi, dalam formatarn:aws:iam::111122223333:role/AutomationServiceRole. ARN Ganti Akun AWS ID Anda dengan 111122223333.

    Peran yang Anda tentukan digunakan untuk memberikan izin yang diperlukan untuk memulai otomatisasi.

    penting

    Untuk runbook yang tidak dimiliki oleh Amazon yang menggunakan aws:executeScript tindakan, peran harus ditentukan. Untuk informasi, lihat Izin untuk menggunakan runbook.

  7. Perluas Parameter input dan lakukan hal berikut.

    1. Untuk Nama parameter, masukkan imageId.

    2. Untuk Jenis, pilih String.

    3. Untuk yang diperlukan, pilih No.

    4. Untuk Nilai default, masukkan berikut ini.

      {{ ssm:/aws/service/ami-amazon-linux-latest/amzn-ami-hvm-x86_64-gp2 }}
      catatan

      Nilai ini meluncurkan EC2 instans Amazon menggunakan ID Amazon Linux 1 Amazon Machine Image (AMI) terbaru. Jika Anda ingin menggunakan yang berbeda AMI, ganti nilai dengan AMI ID.

    5. Untuk Deskripsi, masukkan yang berikut ini.

      (Optional) The AMI ID to use for launching the instance. The default value uses the latest released Amazon Linux AMI ID.
  8. Pilih Tambahkan parameter untuk membuat parameter kedua, tagValue, dan masukkan yang berikut ini.

    1. Untuk Nama parameter, masukkan tagValue.

    2. Untuk Jenis, pilih String.

    3. Untuk yang diperlukan, pilih No.

    4. Untuk Nilai default, masukkan LaunchedBySsmAutomation. Ini menambahkan nilai kunci-pasangan tag Name:LaunchedBySsmAutomation ke instans.

    5. Untuk Deskripsi, masukkan yang berikut ini.

      (Optional) The tag value to add to the instance. The default value is LaunchedBySsmAutomation.
  9. Pilih Tambahkan parameter untuk membuat parameter ketiga, instanceType, dan masukkan informasi berikut ini.

    1. Untuk Nama parameter, masukkan instanceType.

    2. Untuk Jenis, pilih String.

    3. Untuk yang diperlukan, pilih No.

    4. Untuk Nilai default, masukkan t2.micro.

    5. Untuk Deskripsi parameter, masukkan yang berikut ini.

      (Optional) The instance type to use for the instance. The default value is t2.micro.
  10. Perluas Jenis target dan pilih "/".

  11. (Opsional) Perluas Tag dokumen untuk menerapkan tag sumber daya ke runbook Anda. Untuk Kunci tag, masukkan Purpose, dan untuk Nilai tag, masukkan LaunchInstanceAndCheckState.

  12. Di bagian Langkah 1, selesaikan langkah berikut.

    1. Untuk Nama langkah, masukkan nama langkah deskriptif untuk langkah pertama otomatisasi: LaunchEc2Instance.

    2. Untuk Jenis tindakan, pilih Jalankan skrip (aws:executeScript).

    3. Untuk Deskripsi, masukkan deskripsi langkah otomatisasi, seperti berikut.

      **About This Step** This step first launches an EC2 instance using the ```aws:executeScript``` action and the provided script.
    4. Perluas input.

    5. Untuk Waktu aktif, pilih bahasa waktu aktif untuk digunakan dalam menjalankan skrip yang disediakan.

    6. Untuk Handler, masukkan launch_instance. Ini adalah nama fungsi yang dinyatakan dalam skrip berikut.

      catatan

      Ini tidak diperlukan untuk PowerShell.

    7. Untuk Skrip, ganti isi default dengan berikut ini. Pastikan untuk mencocokkan skrip dengan nilai waktu aktif yang sesuai.

      Python
      def launch_instance(events, context): import boto3 ec2 = boto3.client('ec2') image_id = events['image_id'] tag_value = events['tag_value'] instance_type = events['instance_type'] tag_config = {'ResourceType': 'instance', 'Tags': [{'Key':'Name', 'Value':tag_value}]} res = ec2.run_instances(ImageId=image_id, InstanceType=instance_type, MaxCount=1, MinCount=1, TagSpecifications=[tag_config]) instance_id = res['Instances'][0]['InstanceId'] print('[INFO] 1 EC2 instance is successfully launched', instance_id) return { 'InstanceId' : instance_id }
      PowerShell
      Install-Module AWS.Tools.EC2 -Force Import-Module AWS.Tools.EC2 $payload = $env:InputPayload | ConvertFrom-Json $imageid = $payload.image_id $tagvalue = $payload.tag_value $instanceType = $payload.instance_type $type = New-Object Amazon.EC2.InstanceType -ArgumentList $instanceType $resource = New-Object Amazon.EC2.ResourceType -ArgumentList 'instance' $tag = @{Key='Name';Value=$tagValue} $tagSpecs = New-Object Amazon.EC2.Model.TagSpecification $tagSpecs.ResourceType = $resource $tagSpecs.Tags.Add($tag) $res = New-EC2Instance -ImageId $imageId -MinCount 1 -MaxCount 1 -InstanceType $type -TagSpecification $tagSpecs return @{'InstanceId'=$res.Instances.InstanceId}
    8. Perluas Input tambahan.

    9. Untuk nama Input, pilih InputPayload. Untuk nilai Input, masukkan YAML data berikut.

      image_id: "{{ imageId }}" tag_value: "{{ tagValue }}" instance_type: "{{ instanceType }}"
  13. Perluas Output dan lakukan hal berikut:

    • Untuk Nama, masukkan payload.

    • Untuk Pemilih, masukkan $.Payload.

    • Untuk Jenis, pilih StringMap.

  14. Pilih Tambahkan langkah untuk menambahkan langkah kedua untuk runbook. Langkah kedua mengkueri status instans yang diluncurkan pada Langkah 1 dan menunggu sampai status kembali ok.

  15. Di bagian Langkah 2, lakukan hal berikut.

    1. Untuk Nama langkah, masukkan nama deskriptif ini untuk langkah kedua otomatisasi: WaitForInstanceStatusOk.

    2. Untuk Jenis tindakan, pilih Jalankan skrip (aws:executeScript).

    3. Untuk Deskripsi, masukkan deskripsi langkah otomatisasi, seperti berikut.

      **About This Step** The script continuously polls the instance status check value for the instance launched in Step 1 until the ```ok``` status is returned.
    4. Untuk Waktu aktif, pilih bahasa waktu aktif yang akan digunakan untuk mengeksekusi skrip yang disediakan.

    5. Untuk Handler, masukkan poll_instance. Ini adalah nama fungsi yang dinyatakan dalam skrip berikut.

      catatan

      Ini tidak diperlukan untuk PowerShell.

    6. Untuk Skrip, ganti isi default dengan berikut ini. Pastikan untuk mencocokkan skrip dengan nilai waktu aktif yang sesuai.

      Python
      def poll_instance(events, context): import boto3 import time ec2 = boto3.client('ec2') instance_id = events['InstanceId'] print('[INFO] Waiting for instance status check to report ok', instance_id) instance_status = "null" while True: res = ec2.describe_instance_status(InstanceIds=[instance_id]) if len(res['InstanceStatuses']) == 0: print("Instance status information is not available yet") time.sleep(5) continue instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status'] print('[INFO] Polling to get status of the instance', instance_status) if instance_status == 'ok': break time.sleep(10) return {'Status': instance_status, 'InstanceId': instance_id}
      PowerShell
      Install-Module AWS.Tools.EC2 -Force $inputPayload = $env:InputPayload | ConvertFrom-Json $instanceId = $inputPayload.payload.InstanceId $status = Get-EC2InstanceStatus -InstanceId $instanceId while ($status.Status.Status -ne 'ok'){ Write-Host 'Polling get status of the instance', $instanceId Start-Sleep -Seconds 5 $status = Get-EC2InstanceStatus -InstanceId $instanceId } return @{Status = $status.Status.Status; InstanceId = $instanceId}
    7. Perluas Input tambahan.

    8. Untuk nama Input, pilih InputPayload. Untuk Nilai input, masukkan berikut ini:

      {{ LaunchEc2Instance.payload }}
  16. Pilih Buat Otomatisasi untuk menyimpan runbook.