AWS::CloudFormation::Init - AWS CloudFormation

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

AWS::CloudFormation::Init

Gunakan AWS::CloudFormation::Init tipe untuk menyertakan metadata pada EC2 instance Amazon untuk skrip pembantu cfn-init. Jika templat Anda memanggil skrip cfn-init, skrip mencari metadata sumber daya yang di-root di AWS::CloudFormation::Init kunci metadata. Untuk informasi selengkapnya tentang cfn-init, lihat cfn-init.

cfn-init men-support semua jenis metadata untuk sistem Linux. Mendukung jenis metadata untuk Windows dengan kondisi yang dijelaskan di bagian yang mengikuti.

Untuk contoh penggunaan AWS::CloudFormation::Init dan skrip pembantu cfn-init untuk membuat tumpukan Linux, lihat. Menyebarkan aplikasi di Amazon EC2 Untuk contoh tumpukan Windows, lihatBootstrapping AWS CloudFormation Tumpukan Windows.

Sintaks

Konfigurasi dipisahkan menjadi beberapa bagian. Cuplikan template berikut menunjukkan bagaimana Anda dapat melampirkan metadata untuk cfn-init ke sumber daya instance dalam EC2 template.

Metadata diatur ke dalam kunci konfigurasi, yang dapat Anda kelompokkan ke dalam set konfigurasi. Anda dapat menentukan configset saat memanggil template cfn-init Anda. Jika Anda tidak menentukan configset, cari cfn-init satu kunci konfigurasi bernama config.

catatan

Skrip cfn-init pembantu memproses bagian konfigurasi ini dalam urutan berikut: paket, grup, pengguna, sumber, file, perintah, dan kemudian layanan. Jika Anda memerlukan urutan yang berbeda, pisahkan bagian Anda ke kunci konfigurasi yang berbeda, dan kemudian gunakan configset yang menentukan urutan di mana kunci konfigurasi harus diproses.

JSON

"Resources": { "MyInstance": { "Type": "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : { "packages" : { : }, "groups" : { : }, "users" : { : }, "sources" : { : }, "files" : { : }, "commands" : { : }, "services" : { : } } } }, "Properties": { : } } }

YAML

Resources: MyInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: packages: : groups: : users: : sources: : files: : commands: : services: : Properties: :
catatan

Bagian berikut berisi contoh skrip yang ditulis dalam bahasa skrip shell mirip Unix, seperti Bash. Untuk membuat skrip PowerShell sebagai gantinya, pastikan Anda terbiasa dengan PowerShell bahasa tersebut. PowerShell sintaks berbeda dari shell mirip Unix, jadi Anda harus memiliki keakraban dengan PowerShell cara melakukan sesuatu.

Set konfigurasi

Jika Anda ingin membuat lebih dari satu kunci konfigurasi dan cfn-init memprosesnya dalam urutan tertentu, buat configset yang berisi kunci konfigurasi dalam urutan yang diinginkan.

Konfigurasi set tunggal

Potongan templat berikut membuat set konfigurasi bernama ascending dan descending bahwa masing-masing berisi dua kunci konfigurasi.

JSON

"AWS::CloudFormation::Init" : { "configSets" : { "ascending" : [ "config1" , "config2" ], "descending" : [ "config2" , "config1" ] }, "config1" : { "commands" : { "test" : { "command" : "echo \"$CFNTEST\" > test.txt", "env" : { "CFNTEST" : "I come from config1." }, "cwd" : "~" } } }, "config2" : { "commands" : { "test" : { "command" : "echo \"$CFNTEST\" > test.txt", "env" : { "CFNTEST" : "I come from config2" }, "cwd" : "~" } } } }

YAML

AWS::CloudFormation::Init: configSets: ascending: - "config1" - "config2" descending: - "config2" - "config1" config1: commands: test: command: "echo \"$CFNTEST\" > test.txt" env: CFNTEST: "I come from config1." cwd: "~" config2: commands: test: command: "echo \"$CFNTEST\" > test.txt" env: CFNTEST: "I come from config2" cwd: "~"

cfn-initPanggilan terkait

Contoh berikut memanggil untuk cfn-init merujuk ke contoh configsets sebelumnya. Contoh panggilan disingkat untuk kejelasan. Lihat cfn-init sintaks lengkapnya.

  • Jika panggilan untuk cfn-init menentukan ascending configset:

    cfn-init -c ascending

    Proses skrip config1 dan kemudian proses config2 dan test.txt file akan berisi teksI come from config2.

  • Jika panggilan untuk cfn-init menentukan descending configset:

    cfn-init -c descending

    Proses skrip config2 dan kemudian proses config1 dan test.txt file akan berisi teksI come from config1.

Beberapa set konfigurasi

Anda dapat membuat beberapa configsets, dan memanggil serangkaian konfigurasi menggunakan skrip Andacfn-init. Setiap set konfigurasu dapat berisi daftar kunci konfigurasi atau referensi ke konfigurasi set lainnya. Sebagai contoh, cuplikan templat berikut membuat tiga set konfigurasi. Set konfigurasi pertama, test1, berisi satu kunci konfigurasi bernama 1. Set konfigurasi kedua, test2, berisi referensi ke test1 set konfigurasi dan satu kunci konfigurasi bernama 2. Konfigurasi set ketiga, default, berisi referensi ke set konfigurasi test2.

JSON

"AWS::CloudFormation::Init" : { "configSets" : { "test1" : [ "1" ], "test2" : [ { "ConfigSet" : "test1" }, "2" ], "default" : [ { "ConfigSet" : "test2" } ] }, "1" : { "commands" : { "test" : { "command" : "echo \"$MAGIC\" > test.txt", "env" : { "MAGIC" : "I come from the environment!" }, "cwd" : "~" } } }, "2" : { "commands" : { "test" : { "command" : "echo \"$MAGIC\" >> test.txt", "env" : { "MAGIC" : "I am test 2!" }, "cwd" : "~" } } } }

YAML

AWS::CloudFormation::Init: 1: commands: test: command: "echo \"$MAGIC\" > test.txt" env: MAGIC: "I come from the environment!" cwd: "~" 2: commands: test: command: "echo \"$MAGIC\" >> test.txt" env: MAGIC: "I am test 2!" cwd: "~" configSets: test1: - "1" test2: - ConfigSet: "test1" - "2" default: - ConfigSet: "test2"

cfn-initPanggilan terkait

Panggilan berikut untuk cfn-init merujuk ke yang configSets dideklarasikan dalam cuplikan template sebelumnya. Contoh panggilan disingkat untuk kejelasan. Lihat cfn-init sintaks lengkapnya.

  • Jika Anda menentukan test1 saja:

    cfn-init -c test1

    cfn-initmemproses kunci konfigurasi 1 saja.

  • Jika Anda menentukan test2 saja:

    cfn-init -c test2

    cfn-initmemproses kunci konfigurasi 1 dan kemudian memproses kunci konfigurasi. 2

  • Jika Anda menentukan default set konfigurasi (atau bukan set konfigurasi sama sekali):

    cfn-init -c default

    Anda akan mendapatkan perilaku yang sama yang Anda lakukan jika Anda menentukan set konfigurasi test2.

Commands

Anda dapat menggunakan tombol perintah untuk menjalankan perintah pada EC2 instance. Perintah dijalankan sebagai dalam urutan abjad berdasarkan nama.

Kunci Wajib Deskripsi

perintah

Diperlukan

Array atau string yang menentukan perintah yang akan dijalankan. Jika Anda menggunakan array, Anda tidak perlu menghindari karakter spasi atau melampirkan parameter perintah pada kutipan. Jangan gunakan array untuk menentukan beberapa perintah.

env

Opsional

Atur variabel lingkungan untuk perintah. Properti ini menimpa, alih-alih menambahkan, lingkungan yang ada.

cwd

Opsional

Direktori kerja saat ini.

pengujian

Opsional

Perintah uji yang menentukan apakah cfn-init menjalankan perintah yang ditentukan dalam tombol perintah. Jika tes lulus, cfn-init jalankan perintah. cfn-initScript menjalankan tes dalam interpreter perintah, seperti Bash atau. cmd.exe Apakah tes berlalu tergantung pada kode keluar bahwa interpreter kembali.

Untuk Linux, perintah tes harus mengembalikan kode keluar dari 0 agar bisa lulus tes. Untuk Windows, perintah uji harus mengembalikan%ERRORLEVEL% dari0.

ignoreErrors

Opsional

Nilai Boolean yang menentukan apakah cfn-init terus berjalan jika perintah yang terkandung dalam kunci perintah gagal (mengembalikan nilai bukan nol). Setel ke true jika Anda cfn-init ingin terus berjalan meskipun perintah gagal. Setel ke false jika Anda cfn-init ingin berhenti berjalan jika perintah gagal. Nilai default-nya adalah false.

waitAfterCompletion

Opsional

Untuk sistem Windows saja. Menentukan berapa lama menunggu (dalam detik) setelah perintah selesai dalam hal perintah menyebabkan reboot. Nilai default adalah 60 detik dan nilai “selamanya” mengarahkan cfn-init untuk keluar dan melanjutkan hanya setelah reboot selesai. Tetapkan nilai ini ke 0 Jika Anda tidak ingin menunggu setiap perintah.

Contoh

Contoh cuplikan berikut memanggil perintah echo jika ~/test.txt file tidak ada.

JSON

"commands" : { "test" : { "command" : "echo \"$MAGIC\" > test.txt", "env" : { "MAGIC" : "I come from the environment!" }, "cwd" : "~", "test" : "test ! -e ~/test.txt", "ignoreErrors" : "false" }, "test2" : { "command" : "echo \"$MAGIC2\" > test2.txt", "env" : { "MAGIC2" : "I come from the environment!" }, "cwd" : "~", "test" : "test ! -e ~/test2.txt", "ignoreErrors" : "false" } }

YAML

commands: test: command: "echo \"$MAGIC\" > test.txt" env: MAGIC: "I come from the environment!" cwd: "~" test: "test ! -e ~/test.txt" ignoreErrors: "false" test2: command: "echo \"$MAGIC2\" > test2.txt" env: MAGIC2: "I come from the environment!" cwd: "~" test: "test ! -e ~/test2.txt" ignoreErrors: "false"

Berkas

Anda dapat menggunakan files kunci untuk membuat file pada EC2 instance. Konten dapat berupa inline dalam template atau konten dapat ditarik dari file. URL File ditulis ke disk dalam urutan leksikografis. Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

content

Entah string atau JSON objek yang diformat dengan benar. Jika Anda menggunakan JSON objek sebagai konten Anda, JSON akan ditulis ke file pada disk. Setiap fungsi intrinsik seperti Fn::GetAtt atau Ref dievaluasi sebelum JSON objek ditulis ke disk. Saat Anda membuat symlink, tentukan target symlink sebagai konten.

catatan

Jika Anda membuat symlink, skrip pembantu memodifikasi izin dari file target. Saat ini, Anda tidak dapat membuat symlink tanpa mengubah izin dari file target.

sumber

A URL untuk memuat file dari. Opsi ini tidak dapat ditentukan dengan kunci konten.

encoding

Format pengkodean. Hanya digunakan jika konten adalah string. Pengkodean tidak diterapkan jika Anda menggunakan sumber.

Nilai yang valid: plain | base64

grup

Nama grup yang memiliki file ini. Tidak mendukung sistem Windows.

owner

Nama pengguna yang memiliki file ini. Tidak mendukung sistem Windows.

Mode

Nilai oktal enam digit yang mewakili mode untuk file ini. Tidak mendukung sistem Windows. Gunakan tiga digit pertama untuk symlink dan tiga digit terakhir untuk pengaturan izin. Untuk membuat symlink, tentukan 120xxx, tempat xxx mendefinisikan izin file target. Untuk menentukan izin file, gunakan tiga digit terakhir, seperti 000644.

autentikasi

Nama metode autentikasi yang akan digunakan. Ini menimpa autentikasi default apapun. Anda dapat menggunakan properti ini untuk memilih metode auentikasi yang Anda tentukan dengan AWS::CloudFormation::Authentication sumber daya.

konteks

Menentukan konteks untuk file yang akan diproses sebagai Templat mustache. Untuk menggunakan kunci ini, Anda harus menginstal aws-cfn-bootstrap 1.3 —11 atau yang lebih baru selain pystache.

Contoh

Contoh cuplikan berikut membuat file bernama setup.mysql sebagai bagian dari instalasi yang lebih besar.

JSON

"files" : { "/tmp/setup.mysql" : { "content" : { "Fn::Join" : ["", [ "CREATE DATABASE ", { "Ref" : "DBName" }, ";\n", "CREATE USER '", { "Ref" : "DBUsername" }, "'@'localhost' IDENTIFIED BY '", { "Ref" : "DBPassword" }, "';\n", "GRANT ALL ON ", { "Ref" : "DBName" }, ".* TO '", { "Ref" : "DBUsername" }, "'@'localhost';\n", "FLUSH PRIVILEGES;\n" ]]}, "mode" : "000644", "owner" : "root", "group" : "root" } }

YAML

files: /tmp/setup.mysql: content: !Sub | CREATE DATABASE ${DBName}; CREATE USER '${DBUsername}'@'localhost' IDENTIFIED BY '${DBPassword}'; GRANT ALL ON ${DBName}.* TO '${DBUsername}'@'localhost'; FLUSH PRIVILEGES; mode: "000644" owner: "root" group: "root"

Template lengkap tersedia di: https://s3.amazonaws.com/cloudformation-templates-us-east-1/Drupal_single_instance.Template.

Contoh potongan berikut membuat symlink /tmp/myfile2.txt yang menunjuk pada file yang ada /tmp/myfile1.txt. Izin file target /tmp/myfile1.txt didefinisikan oleh nilai modus 644.

JSON

"files" : { "/tmp/myfile2.txt" : { "content" : "/tmp/myfile1.txt", "mode" : "120644" } }

YAML

files: /tmp/myfile2.txt: content: "/tmp/myfile1.txt" mode: "120644"

Templat kumis digunakan terutama untuk membuat file konfigurasi. Misalnya, Anda dapat menyimpan file konfigurasi dalam bucket S3 dan menginterpolasi Refs dan GetAtts dari template, alih-alih menggunakan. Fn::Join Contoh cuplikan output Content for test9 berikut ke. /tmp/test9.txt

JSON

"files" : { "/tmp/test9.txt" : { "content" : "Content for {{name}}", "context" : { "name" : "test9" } } }

YAML

files: /tmp/test9.txt: content: "Content for {{name}}" context: name: "test9"

Saat bekerja dengan templat kumis, perhatikan hal berikut ini:

  • Kunci konteks harus hadir untuk file yang akan diproses.

  • Kunci konteks harus menjadi peta nilai kunci, tetapi dapat bersarang.

  • Anda dapat memproses file dengan konten inline menggunakan kunci konten dan file remote dengan menggunakan kunci sumber.

  • Dukungan kumis tergantung pada versi pystache. Versi 0.5.2 mendukung Spesifikasi mustache 1.1.2.

Grup

Anda dapat menggunakan kunci grup untuk membuat Linux/ UNIX grup dan menetapkan grup. IDs Kunci grup tidak didukung untuk sistem Windows.

Untuk membuat grup, tambahkan pasangan nilai kunci baru yang memetakan nama grup baru untuk ID grup opsional. Kunci grup dapat berisi satu nama grup atau beberapa. Tabel berikut menjelaskan kunci yang tersedia.

Kunci Deskripsi

gid

Nomor ID grup.

Jika ID grup ditentukan, dan grup sudah ada berdasarkan nama, pembuatan grup akan gagal. Jika grup lain memiliki ID grup tertentu, OS dapat menolak pembuatan grup.

Contoh: { "gid" : "23" }

Contoh potongan

Potongan berikut menentukan grup bernama groupOne tanpa menetapkan ID grup dan grup bernama groupTwo yang menentukan nilai ID grup 45.

JSON

"groups" : { "groupOne" : {}, "groupTwo" : { "gid" : "45" } }

YAML

groups: groupOne: {} groupTwo: gid: "45"

Paket

Anda dapat menggunakan kunci untuk mengunduh dan memasang aplikasi dan komponen yang telah dikemas sebelumnya. Pada sistem Windows, kunci paket hanya mendukung MSI penginstal.

Format paket yang didukung

cfn-initScript saat ini mendukung format paket berikut: apt, msi, python, rpm, rubygems, yum, dan Zypper. Paket diproses dalam urutan sebagai berikut: rpm, yum/apt/zypper, dan kemudian rubygems dan python. Tidak ada pemesanan antara rubygems dan python, dan paket dalam setiap manajer paket tidak dijamin akan diinstal dalam urutan apapun.

Menentukan versi

Dalam setiap manajer paket, setiap paket ditetapkan sebagai nama paket dan daftar versi. Versi ini bisa berupa string, daftar versi, atau string atau daftar kosong. String atau daftar kosong menunjukkan bahwa Anda menginginkan versi terbaru. Untuk manajer rpm, versi ditentukan sebagai jalur ke file pada disk atau fileURL.

Jika Anda menentukan versi paket, cfn-init akan mencoba untuk menginstal versi itu bahkan jika versi yang lebih baru dari paket sudah diinstal pada instance. Beberapa manajer paket men-support beberapa versi, tetapi yang lain mungkin tidak. Verifikasi dokumentasi manajer paket Anda untuk informasi selengkapnya. Jika Anda tidak menentukan versi dan versi paket sudah diinstal, cfn-init skrip tidak akan menginstal versi baru — itu akan menganggap bahwa Anda ingin menyimpan dan menggunakan versi yang ada.

Contoh potongan

RPM, yum, Rubygems, dan Zypper

Cuplikan berikut menentukan versi URL untuk rpm, meminta versi terbaru dari yum dan Zypper, dan versi 0.10.2 koki dari rubygems:

JSON
"rpm" : { "epel" : "http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm" }, "yum" : { "httpd" : [], "php" : [], "wordpress" : [] }, "rubygems" : { "chef" : [ "0.10.2" ] }, "zypper" : { "git" : [] }
YAML
rpm: epel: "http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm" yum: httpd: [] php: [] wordpress: [] rubygems: chef: - "0.10.2" zypper: git: []

MSIpaket

Cuplikan berikut menentukan URL untuk sebuah paket: MSI

JSON
"msi" : { "awscli" : "https://s3.amazonaws.com/aws-cli/AWSCLI64.msi" }
YAML
msi: awscli: "https://s3.amazonaws.com/aws-cli/AWSCLI64.msi"

Layanan

Anda dapat menggunakan kunci layanan untuk menentukan layanan mana yang harus diaktifkan atau dinonaktifkan ketika instans diluncurkan. Pada sistem Linux, kunci ini didukung dengan menggunakan sysvinit atau systemd. Pada sistem Windows, didukung dengan menggunakan manajer layanan Windows.

Kunci layanan juga memungkinkan Anda untuk menentukan dependensi pada sumber, paket, dan file sehingga jika restart diperlukan karena file yang diinstal, cfn-init akan mengurus layanan restart. Misalnya, jika Anda mengunduh paket Apache HTTP Server, instalasi paket akan secara otomatis memulai Apache HTTP Server selama proses pembuatan tumpukan. Namun, jika konfigurasi Apache HTTP Server diperbarui nanti dalam proses pembuatan tumpukan, pembaruan tidak akan berlaku kecuali server Apache dimulai ulang. Anda dapat menggunakan kunci layanan untuk memastikan bahwa HTTP layanan Apache dimulai ulang.

Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

ensureRunning

Setel ke true untuk memastikan bahwa layanan berjalan setelah cfn-init selesai.

Setel ke false untuk memastikan bahwa layanan tidak berjalan setelah cfn-init selesai.

Abaikan kunci ini untuk tidak membuat perubahan pada status layanan.

diaktifkan

Atur ke betul untuk memastikan layanan dimulai secara otomatis setelah boot.

Atur ke salah untuk memastikan layanan dimulai secara otomatis setelah boot.

Abaikan kunci ini untuk tidak membuat perubahan pada properti ini.

file

Daftar file. Jika cfn-init mengubahnya secara langsung melalui blok file, layanan ini akan dimulai ulang.

sumber

Daftar direktori. Jika cfn-init memperluas arsip ke salah satu direktori ini, layanan ini akan dimulai ulang.

paket

Peta manajer paket akan mendata nama paket. Jika cfn-init menginstal atau memperbarui salah satu paket ini, layanan ini akan dimulai ulang.

perintah

Daftar nama perintah. Jika cfn-init menjalankan perintah yang ditentukan, layanan ini akan dimulai ulang.

Contoh

Linux

Potongan Linux berikut mengonfigurasi layanan sebagai berikut:

  • Layanan nginx akan dimulai ulang jika /etc/nginx/nginx.conf salah satu atau dimodifikasi oleh. /var/www/html cfn-init

  • Layanan php-fastcgi akan dimulai ulang jika cfn-init menginstal atau memperbarui php atau spawn-fcgi menggunakan yum.

  • Layanan sendmail akan dihentikan dan dinonaktifkan menggunakan systemd.

JSON
"services" : { "sysvinit" : { "nginx" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["/etc/nginx/nginx.conf"], "sources" : ["/var/www/html"] }, "php-fastcgi" : { "enabled" : "true", "ensureRunning" : "true", "packages" : { "yum" : ["php", "spawn-fcgi"] } } }, "systemd": { "sendmail" : { "enabled" : "false", "ensureRunning" : "false" } } }
YAML
services: sysvinit: nginx: enabled: "true" ensureRunning: "true" files: - "/etc/nginx/nginx.conf" sources: - "/var/www/html" php-fastcgi: enabled: "true" ensureRunning: "true" packages: yum: - "php" - "spawn-fcgi" systemd: sendmail: enabled: "false" ensureRunning: "false"

Untuk menggunakan systemd dengan layanan, layanan harus memiliki file unit systemd yang dikonfigurasi. File unit berikut memungkinkan systemd untuk memulai dan menghentikan cfn-hup daemon di target layanan multi-pengguna:

[Unit] Description=cfn-hup daemon [Service] ExecStart=/usr/bin/cfn-hup -v PIDFile=/var/run/cfn-hup.pid [Install] WantedBy=multi-user.target

Konfigurasi ini mengasumsikan bahwa cfn-hup diinstal di bawah direktori /usr/bin. Namun, lokasi sebenarnya di mana cfn-hup diinstal mungkin berbeda pada platform yang berbeda. Anda dapat mengganti konfigurasi ini dengan membuat file override di /etc/systemd/system/cfn-hup.service.d/override.conf sebagai berikut:

# In this example, cfn-hup executable is available under /usr/local/bin [Service] ExecStart= ExecStart=/usr/local/bin/cfn-hup -v

Windows

Potongan Windows berikut memulai cfn-hup layanan, mengaturnya ke otomatis, dan memulai ulang layanan jika cfn-init memodifikasi file konfigurasi yang ditentukan:

JSON
"services" : { "windows" : { "cfn-hup" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["c:\\cfn\\cfn-hup.conf", "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"] } } }
YAML
services: windows: cfn-hup: enabled: "true" ensureRunning: "true" files: - "c:\\cfn\\cfn-hup.conf" - "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"

Sumber

Anda dapat menggunakan kunci sumber untuk mengunduh file arsip dan membongkarnya di direktori target pada EC2 instance. Kunci ini didukung sepenuhnya untuk sistem Linux dan Windows.

Format yang didukung

Format yang didukung adalah:

  • tar

  • tar+gzip

  • tar+bz2

  • zip

Contoh

GitHub

Jika Anda menggunakan GitHub sebagai sistem kontrol sumber, Anda dapat menggunakan cfn-init dan mekanisme paket sumber untuk menarik versi tertentu dari aplikasi Anda. GitHub memungkinkan Anda untuk membuat .zip atau .tar dari versi tertentu melalui URL sebagai berikut:

https://github.com/<your directory>/(zipball|tarball)/<version>

Sebagai contoh, potongan berikut menarik ke bawah versi utama sebagai .tar file.

JSON
"sources" : { "/etc/puppet" : "https://github.com/user1/cfn-demo/tarball/main" }
YAML
sources: /etc/puppet: "https://github.com/user1/cfn-demo/tarball/main"

Bucket S3

Contoh berikut mengunduh tarball dari bucket S3 dan membongkarnya menjadi: /etc/myapp

catatan

Anda dapat menggunakan kredensial autentikasi untuk sumber. Namun, Anda tidak dapat menempatkan kunci autentikasi di blok sumber. Sebagai gantinya, sertakan kunci bucket di S3AccessCreds blok. Untuk informasi selengkapnya tentang kredensyal autentikasi Amazon S3, lihat. AWS::CloudFormation::Authentication

Sebagai contoh, lihat https://s3.amazonaws.com/cloudformation-templates-us-east-1/SourceAuthS3Bucket_ .template.

JSON
"sources" : { "/etc/myapp" : "https://s3.amazonaws.com/amzn-s3-demo-bucket/myapp.tar.gz" }
YAML
sources: /etc/myapp: "https://s3.amazonaws.com/amzn-s3-demo-bucket/myapp.tar.gz"

Pengguna

Anda dapat menggunakan kunci pengguna untuk membuat UNIX Linux/pengguna pada instance. EC2 Kunci pengguna tidak didukung untuk sistem Windows.

Tabel berikut mencantumkan kunci yang didukung.

Kunci Deskripsi

uid

ID pengguna. Proses pembuatan gagal jika nama pengguna ada dengan ID pengguna yang berbeda. Jika ID pengguna sudah ditetapkan untuk pengguna yang sudah ada, sistem operasi dapat menolak permintaan pembuatan.

grup

Daftar nama grup. Pengguna ditambahkan ke setiap grup dalam daftar.

homeDir

Direktori beranda pengguna.

Contoh

Pengguna dibuat sebagai pengguna sistem noninteraktif dengan shell /sbin/nologin. Hal ini sudah sesuai dengan tujuannya dan tidak dapat dimodifikasi.

JSON

"users" : { "myUser" : { "groups" : ["groupOne", "groupTwo"], "uid" : "50", "homeDir" : "/tmp" } }

YAML

users: myUser: groups: - "groupOne" - "groupTwo" uid: "50" homeDir: "/tmp"