Panduan: Gunakan dengan AWS CLIRun Command - AWS Systems Manager

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

Panduan: Gunakan dengan AWS CLIRun Command

Contoh panduan berikut ini menunjukkan cara menggunakan AWS Command Line Interface (AWS CLI) untuk melihat informasi tentang perintah dan parameter perintah, cara menjalankan perintah, dan cara melihat status perintah tersebut.

penting

Hanya administrator tepercaya yang boleh diizinkan untuk menggunakan dokumen yang AWS Systems Manager telah dikonfigurasikan yang ditampilkan dalam topik ini. Perintah atau skrip yang ditentukan dalam dokumen Systems Manager dijalankan dengan izin administratif pada node yang dikelola. Jika pengguna memiliki izin untuk menjalankan salah satu dokumen Systems Manager yang telah ditentukan sebelumnya (dokumen yang dimulai denganAWS-), maka pengguna tersebut juga memiliki akses administrator ke node. Untuk semua pengguna lain, Anda harus membuat dokumen yang restriktif dan membagikannya dengan pengguna tertentu.

Langkah 1: Memulai

Anda harus memiliki izin administrator pada node yang dikelola yang ingin Anda konfigurasikan atau Anda harus telah diberikan izin yang sesuai di AWS Identity and Access Management (IAM). Mohon diperhatiakn juga, contoh ini menggunakan Region US East (Ohio) (us-east-2). Run Command tersedia di titik akhir layanan Systems Manager yang Wilayah AWS tercantum di. Referensi Umum Amazon Web Services Untuk informasi selengkapnya, lihat Menyiapkan node terkelola untuk AWS Systems Manager.

Untuk menjalankan perintah 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. Cantumkan semua dokumen yang tersedia.

    Perintah ini mencantumkan semua dokumen yang tersedia untuk akun Anda berdasarkan IAM izin.

    aws ssm list-documents
  3. Verifikasikan bahwa node yang dikelola siap untuk menerima perintah.

    Output dari perintah berikut ini menunjukkan jika node yang dikelola sedang online.

    Linux & macOS
    aws ssm describe-instance-information \ --output text --query "InstanceInformationList[*]"
    Windows
    aws ssm describe-instance-information ^ --output text --query "InstanceInformationList[*]"
  4. Jalankan perintah berikut untuk melihat detail tentang node yang dikelola tertentu.

    catatan

    Untuk menjalankan perintah dalam panduan ini, ganti instans dan perintah. IDs Untuk perangkat AWS IoT Greengrass inti terkelola, gunakan mi-ID_number ID Instans. ID perintah dikembalikan sebagai respon terhadap send-command. Instance IDs tersedia dari Fleet Manager, suatu kemampuan AWS Systems Manager..

    Linux & macOS
    aws ssm describe-instance-information \ --instance-information-filter-list key=InstanceIds,valueSet=instance-ID
    Windows
    aws ssm describe-instance-information ^ --instance-information-filter-list key=InstanceIds,valueSet=instance-ID

Langkah 2: Jalankan skrip shell untuk melihat detail sumber daya

Penggunaan Run Command dan AWS-RunShellScript dokumen, Anda dapat menjalankan perintah atau skrip pada node yang dikelola seolah-olah Anda masuk secara lokal.

Lihat deskripsi dan parameter yang tersedia

Jalankan perintah berikut untuk menampilkan deskripsi JSON dokumen Systems Manager.

Linux & macOS
aws ssm describe-document \ --name "AWS-RunShellScript" \ --query "[Document.Name,Document.Description]"
Windows
aws ssm describe-document ^ --name "AWS-RunShellScript" ^ --query "[Document.Name,Document.Description]"

Jalankan perintah berikut untuk melihat parameter yang tersedia dan detail tentang parameter tersebut.

Linux & macOS
aws ssm describe-document \ --name "AWS-RunShellScript" \ --query "Document.Parameters[*]"
Windows
aws ssm describe-document ^ --name "AWS-RunShellScript" ^ --query "Document.Parameters[*]"

Langkah 3: Kirim perintah sederhana menggunakan dokumen AWS-RunShellScript

Jalankan perintah berikut untuk mendapatkan informasi IP untuk node yang dikelola Linux.

Jika Anda menargetkan Windows Server node terkelola, ubah document-name ke AWS-RunPowerShellScript dan ubah command dari ifconfig keipconfig.

Linux & macOS
aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "IP config" \ --parameters commands=ifconfig \ --output text
Windows
aws ssm send-command ^ --instance-ids "instance-ID" ^ --document-name "AWS-RunShellScript" ^ --comment "IP config" ^ --parameters commands=ifconfig ^ --output text
Dapatkan informasi perintah dengan data respon

Perintah berikut ini menggunakan Command ID yang dikembalikan dari perintah sebelumnya untuk mendapatkan detail dan data respon eksekusi perintah. Sistem mengembalikan data respon jika perintah selesai. Jika eksekusi perintah menunjukkan "Pending" atau "InProgress" Anda menjalankan perintah ini lagi untuk melihat data respon.

Linux & macOS
aws ssm list-command-invocations \ --command-id $sh-command-id \ --details
Windows
aws ssm list-command-invocations ^ --command-id $sh-command-id ^ --details

Identifikasi pengguna

Perintah berikut ini menampilkan pengguna default yang menjalankan perintah.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux managed node" \ --parameters commands=whoami \ --output text \ --query "Command.CommandId")
Dapatkan status perintah

Perintah berikut ini menggunakan Command ID untuk mendapatkan status eksekusi perintah pada node yang dikelola. Contoh ini menggunakan Command ID yang dikembalikan pada perintah sebelumnya.

Linux & macOS
aws ssm list-commands \ --command-id "command-ID"
Windows
aws ssm list-commands ^ --command-id "command-ID"
Dapatkan detail perintah

Perintah berikut ini menggunakan Command ID dari perintah sebelumnya untuk mendapatkan status eksekusi perintah pada basis per node yang dikelola.

Linux & macOS
aws ssm list-command-invocations \ --command-id "command-ID" \ --details
Windows
aws ssm list-command-invocations ^ --command-id "command-ID" ^ --details
Dapatkan informasi perintah dengan data respon untuk node yang dikelola tertentu

Perintah berikut ini mengembalikan output dari aws ssm send-command permintaan asli untuk node dikelola tertentu.

Linux & macOS
aws ssm list-command-invocations \ --instance-id instance-ID \ --command-id "command-ID" \ --details
Windows
aws ssm list-command-invocations ^ --instance-id instance-ID ^ --command-id "command-ID" ^ --details

Tampilkan versi Python

Perintah berikut ini mengembalikan versi Python yang berjalan pada sebuah node.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux Instances" \ --parameters commands='python -V' \ --output text --query "Command.CommandId") \ sh -c 'aws ssm list-command-invocations \ --command-id "$sh_command_id" \ --details \ --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'

Langkah 4: Jalankan skrip Python sederhana menggunakan Run Command

Perintah berikut ini menjalankan skrip Python “Hello World” sederhana menggunakan Run Command.

Linux & macOS
sh_command_id=$(aws ssm send-command \ --instance-ids "instance-ID" \ --document-name "AWS-RunShellScript" \ --comment "Demo run shell script on Linux Instances" \ --parameters '{"commands":["#!/usr/bin/python","print \"Hello World from python\""]}' \ --output text \ --query "Command.CommandId") \ sh -c 'aws ssm list-command-invocations \ --command-id "$sh_command_id" \ --details \ --query "CommandInvocations[].CommandPlugins[].{Status:Status,Output:Output}"'

Langkah 5: Jalankan skrip Bash menggunakan Run Command

Contoh dalam bagian ini menunjukkan cara menjalankan skrip bash berikut ini menggunakan Run Command.

Untuk contoh penggunaan Run Command untuk menjalankan skrip yang disimpan di lokasi jarak jauh, lihat Menjalankan skrip dari Amazon S3 danMenjalankan skrip dari GitHub.

#!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install chmod +x ./install ./install auto

Skrip ini menginstal AWS CodeDeploy agen di Amazon Linux dan Red Hat Enterprise Linux (RHEL) instance, seperti yang dijelaskan dalam Buat EC2 instance Amazon untuk CodeDeploy di Panduan AWS CodeDeploy Pengguna.

Skrip tersebut menginstal CodeDeploy agen dari bucket S3 yang AWS dikelola di tiga Region US East (Ohio) (us-east-2),. aws-codedeploy-us-east-2

Jalankan skrip bash dalam perintah AWS CLI

Contoh berikut ini menunjukkan cara menyertakan skrip bash dalam CLI perintah menggunakan opsi. --parameters

Linux & macOS
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets '[{"Key":"InstanceIds","Values":["instance-id"]}]' \ --parameters '{"commands":["#!/bin/bash","yum -y update","yum install -y ruby","cd /home/ec2-user","curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install","chmod +x ./install","./install auto"]}'

Jalankan skrip bash dalam file JSON

Pada contoh berikut ini, konten dari skrip bash disimpan dalam JSON file, dan file tersebut disertakan dalam perintah menggunakan --cli-input-json opsi.

Linux & macOS
aws ssm send-command \ --document-name "AWS-RunShellScript" \ --targets "Key=InstanceIds,Values=instance-id" \ --cli-input-json file://installCodeDeployAgent.json
Windows
aws ssm send-command ^ --document-name "AWS-RunShellScript" ^ --targets "Key=InstanceIds,Values=instance-id" ^ --cli-input-json file://installCodeDeployAgent.json

Konten dari file installCodeDeployAgent.json yang direferensikan ini ditampilkan dalam contoh berikut.

{ "Parameters": { "commands": [ "#!/bin/bash", "yum -y update", "yum install -y ruby", "cd /home/ec2-user", "curl -O https://aws-codedeploy-us-east-2.s3.amazonaws.com/latest/install", "chmod +x ./install", "./install auto" ] } }