Menurut artikel berita New Run Perintah EC2 , AWS CLI harus mendukung sub-perintah baru untuk mengeksekusi skrip pada instance EC2 jarak jauh.
Namun saya sudah check-in aws ec2 help
, tetapi saya tidak dapat menemukan perintah yang relevan.
Saya telah menginstal aws
melalui apt-get
:
$ aws --version
aws-cli/1.14.32 Python/3.5.4 Linux/4.12.7-64 botocore/1.8.36
Sub-perintah mana yang harus saya cari dan apa sintaks yang harus dijalankan, katakanlah ipconfig
di PowerShell pada instance EC2 jarak jauh?
amazon-ec2
aws-cli
kenorb
sumber
sumber
Jawaban:
Untuk menjalankan ipconfig dari AWS Systems Manager Run Command:
Catatan: Jika Anda memiliki kesalahan, pertimbangkan untuk menentukan yang benar
--region
.Ini mengasumsikan Anda memiliki kredensial AWS dan CLI Anda dikonfigurasi dengan benar. Lihat Manajer Sistem Menjalankan Perintah Berjalan Menggunakan AWS CLI untuk informasi lebih lanjut.
Berikut ini adalah contoh perintah shell praktis untuk mengirim dan mendapatkan output perintah:
sumber
Berikut ini adalah skrip Bash pembantu yang digunakan
aws ssm send-command
untuk menjalankan perintah:Pemakaian:
Contoh:
Untuk menjalankan keluaran yang lebih besar, lihat: Bagaimana cara menghindari keluaran yang terpotong saat menjalankan perintah AWS SSM?
sumber
Ya, Anda dapat melakukan ini dengan manajer AWS Systems. AWS Systems Manager Run Command memungkinkan Anda menjalankan perintah dari jarak jauh dan aman di EC2 dan juga server di lokasi. Di bawah ini adalah langkah-langkah tingkat tinggi untuk mencapai ini.
Lampirkan peran IAM Instance: Instance EC2 harus memiliki peran IAM dengan kebijakan AmazonSSMFullAccess. Peran ini memungkinkan instance untuk berkomunikasi dengan API System Manager.
Instal SSM Agent: Contoh EC2 harus memiliki agen SSM diinstal di dalamnya. Agen SSM memproses perintah jalankan meminta & mengkonfigurasi instance sesuai perintah.
Jalankan perintah: Contoh penggunaan melalui AWS CLI:
Jalankan perintah berikut untuk mengambil layanan yang berjalan pada instance. Ganti Instance-ID dengan id contoh ec2.
Informasi lebih rinci: di sini
sumber
Ini adalah sesuatu yang sangat keren yang saya lakukan dengan AWS SSM Send-Command!
Menggunakan Apache Airflow, saya membuat EC2-Instance baru menggunakan Cloud Formation Template (atau singkatnya CFT) yang hanya berupa file JSON dengan semua nilai konfigurasi untuk EC2-Instance yang saya inginkan; juga perhatikan bahwa dalam CFT ini saya juga memiliki perintah bootstrap yang menyalin skrip Python dari lokasi S3 ke EC2-Instance baru sehingga saya dapat menjalankannya nanti menggunakan SSM Send-Command! Saya melakukan ini menggunakan Python3 dan AWS SDK untuk Python3 disebut perpustakaan Boto3. Inilah bagian dari perintah untuk membuat CFT Stack baru yang pada gilirannya menciptakan EC2-Instance baru saya:
Kemudian saya bisa mendapatkan Instance-ID EC2-Instance baru (diperlukan untuk menggunakan SSM Send-Command) menggunakan sesuatu seperti ini:
Kemudian saya bisa mendapatkan Instance-ID dari EC2-Instance server Airflow Worker saat ini dengan menjalankan perintah ini
wget -q -O - http://169.254.169.254/latest/meta-data/instance-id
melalui Python:SEKARANG!!!! UNTUK FINAL GRAND
Saya kemudian dapat menjalankan skrip pada EC2-Instance baru yang saya buat dan mengirimkan skrip itu parameter / argumen apa pun yang saya inginkan ... termasuk Instance-ID dari server yang mengirim SSM Send-Command sehingga saat skrip saya selesai berjalan pada EC2-Instance baru, ia dapat mengirim SSM Send-Command kembali ke server Airflow saya untuk memberi tahu bahwa skrip telah selesai. Ini pada tingkat yang sangat tinggi tanpa detail tetapi hanya untuk menunjukkan ide :)
Tidak yakin apakah ini membantu siapa pun tetapi ini adalah contoh keren dan MENYENANGKAN melakukan sesuatu dengan AWS SSM Send-Command! Meskipun, mungkin kode bau xD
sumber