Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tumpukan berbasis bootstrap Windows CloudFormation
Topik ini menjelaskan cara mem-bootstrap Windows tumpukan dan memecahkan masalah pembuatan tumpukan.
Topik
Data pengguna dalam EC2 contoh
Data pengguna adalah EC2 fitur Amazon yang memungkinkan Anda meneruskan skrip atau informasi konfigurasi ke EC2 instance saat diluncurkan.
Untuk Windows EC2 contoh:
-
Data pengguna dijalankan sebagai skrip batch.
-
Anda dapat menggunakan perintah batch (menggunakan
<script>
tag) atau PowerShell skrip (menggunakan<powershell>
tag). -
Eksekusi skrip ditangani olehEC2Launch.
penting
Jika Anda membuat Windows AMI sendiri untuk digunakan CloudFormation, pastikan EC2Launch v2 dikonfigurasi dengan benar. EC2Launchv2 diperlukan untuk alat CloudFormation bootstrap untuk menginisialisasi dan mengonfigurasi Windows instance dengan benar selama pembuatan tumpukan. Untuk informasi selengkapnya, lihat Menggunakan agen EC2Launch v2 untuk melakukan tugas selama peluncuran instans EC2 Windows di Panduan EC2 Pengguna Amazon.
Untuk selengkapnya AWS Windows AMIs, lihat Referensi AWSWindows AMI.
CloudFormation skrip pembantu
Skrip pembantu adalah utilitas untuk mengkonfigurasi instance selama proses bootstrap. Digunakan dengan data EC2 pengguna Amazon, mereka menyediakan opsi konfigurasi yang kuat.
CloudFormation menyediakan skrip pembantu Python berikut yang dapat Anda gunakan untuk menginstal perangkat lunak dan memulai layanan pada EC2 instance Amazon yang Anda buat sebagai bagian dari tumpukan Anda:
-
cfn-init
— Gunakan untuk mengambil dan menafsirkan metadata sumber daya, menginstal paket, membuat file, dan memulai layanan. -
cfn-signal
— Gunakan untuk memberi sinyal denganCreationPolicy
atauWaitCondition
, sehingga Anda dapat menyinkronkan sumber daya lain di tumpukan ketika sumber daya atau aplikasi prasyarat siap. -
cfn-get-metadata
— Gunakan untuk mengambil metadata untuk sumber daya atau jalur ke kunci tertentu. -
cfn-hup
— Gunakan untuk memeriksa pembaruan metadata dan menjalankan kait khusus saat perubahan terdeteksi.
Anda memanggil skrip langsung dari templat Anda. Skrip bekerja bersama dengan metadata sumber daya yang didefinisikan dalam templat yang sama. Skrip berjalan di EC2 instance Amazon selama proses pembuatan tumpukan.
Untuk informasi selengkapnya, lihat referensi skrip CloudFormation pembantu di Panduan Referensi AWS CloudFormation Template.
Contoh bootstrap tumpukan Windows
Mari kita periksa contoh cuplikan dari template SharePoint server yang melakukan tindakan berikut:
-
Mengkonfigurasi file inisialisasi:
cfn-credentials
,cfn-hup.conf
, dan.cfn-auto-reloader.conf
-
Mengunduh dan menginstal paket seperti SharePoint Foundation pada instance server.
-
Menggunakan a
WaitCondition
untuk memastikan sumber daya siap. -
Membuat pengguna IAM dan grup keamanan untuk akses ke instance.
-
Mengambil IP untuk instance dengan Amazon Elastic IP (EIP).
Skrip cfn-init
pembantu digunakan untuk melakukan setiap tindakan ini, berdasarkan informasi dalam AWS::CloudFormation::Init
sumber daya dalam template.
AWS::CloudFormation::Init
Bagian ini diberi nama SharePointFoundation
dan dimulai dengan deklarasi standar:
"SharePointFoundation": { "Type" : "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : {
Setelah ini, files
bagian dari AWS::CloudFormation::Init
dinyatakan:
"files" : { "c:\\cfn\\cfn-hup.conf" : { "content" : { "Fn::Join" : ["", [ "[main]\n", "stack=", { "Ref" : "AWS::StackName" }, "\n", "region=", { "Ref" : "AWS::Region" }, "\n" ]]} }, "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf" : { "content": { "Fn::Join" : ["", [ "[cfn-auto-reloader-hook]\n", "triggers=post.update\n", "path=Resources.SharePointFoundation.Metadata.AWS::CloudFormation::Init\n", "action=cfn-init.exe -v -s ", { "Ref" : "AWS::StackName" }, " -r SharePointFoundation", " --region ", { "Ref" : "AWS::Region" }, "\n" ]]} }, "C:\\SharePoint\\SharePointFoundation2010.exe" : { "source" : "http://d3adzpja92utk0.cloudfront.net/SharePointFoundation.exe" } },
Tiga file dibuat di sini dan ditempatkan di direktori C:\cfn
pada instans server. Mereka adalah:
-
cfn-hup.conf
, file konfigurasi untukcfn-hup
. -
cfn-auto-reloader.conf
, file konfigurasi untuk hook yang digunakan olehcfn-hup
untuk memulai pembaruan (panggilancfn-init
) saat metadata berubah.AWS::CloudFormation::Init
Ada juga file yang diunduh ke server:SharePointFoundation.exe
. File ini digunakan untuk menginstal SharePoint pada instance server.
penting
Karena jalur Windows menggunakan karakter garis miring terbalik ('\'), Anda harus selalu ingat untuk menghindari semua garis miring terbalik dengan benar dengan mendahului garis miring terbalik lainnya setiap kali Anda merujuk ke jalur di template. Windows CloudFormation
Berikutnya adalah commands
bagian, yang merupakan cmd.exe
perintah.
"commands" : { "1-extract" : { "command" : "C:\\SharePoint\\SharePointFoundation2010.exe /extract:C:\\SharePoint\\SPF2010 /quiet /log:C:\\SharePoint\\SharePointFoundation2010-extract.log" }, "2-prereq" : { "command" : "C:\\SharePoint\\SPF2010\\PrerequisiteInstaller.exe /unattended" }, "3-install" : { "command" : "C:\\SharePoint\\SPF2010\\setup.exe /config C:\\SharePoint\\SPF2010\\Files\\SetupSilent\\config.xml" }
Karena perintah dalam instans diproses dalam urutan abjad berdasarkan nama, setiap perintah telah ditambahkan dengan nomor yang menunjukkan urutan eksekusi yang diinginkan. Dengan demikian, kita dapat memastikan bahwa paket instalasi pertama diekstraksi, semua prasyarat kemudian diinstal, dan akhirnya, instalasi dimulai. SharePoint
Berikutnya adalah Properties
bagian:
"Properties": { "InstanceType" : { "Ref" : "InstanceType" }, "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, { "Fn::FindInMap" : [ "AWSInstanceType2Arch", { "Ref" : "InstanceType" }, "Arch" ] } ] }, "SecurityGroups" : [ {"Ref" : "SharePointFoundationSecurityGroup"} ], "KeyName" : { "Ref" : "KeyPairName" }, "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [ "<script>\n", "cfn-init.exe -v -s ", { "Ref" : "AWS::StackName" }, " -r SharePointFoundation", " --region ", { "Ref" : "AWS::Region" }, "\n", "cfn-signal.exe -e %ERRORLEVEL% ", { "Fn::Base64" : { "Ref" : "SharePointFoundationWaitHandle" }}, "\n", "</script>" ]]}} }
Di bagian ini, UserData
properti berisi cmd.exe
skrip yang akan dieksekusi olehcfn-init
, dikelilingi oleh <script>
tag. Anda dapat menggunakan Windows PowerShell skrip di sini sebagai gantinya dengan mengelilingi skrip Anda dengan <powershell>
tag. Untuk Windows tumpukan, Anda harus base64 menyandikan URL penanganan kondisi tunggu lagi.
SharePointFoundationWaitHandle
direferensikan di sini dan dijalankan dengancfn-signal
. Yang WaitConditionHandle
dan terkait WaitCondition
dideklarasikan berikutnya dalam template:
"SharePointFoundationWaitHandle" : { "Type" : "AWS::CloudFormation::WaitConditionHandle" }, "SharePointFoundationWaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "DependsOn" : "SharePointFoundation", "Properties" : { "Handle" : {"Ref" : "SharePointFoundationWaitHandle"}, "Timeout" : "3600" } }
Karena menjalankan semua langkah dan menginstal SharePoint mungkin memakan waktu cukup lama, tetapi tidak satu jam penuh, WaitCondition
menunggu satu jam (3600 detik) sebelum waktu habis.
Jika semuanya berjalan dengan baik, IP Elastis digunakan untuk menyediakan akses ke SharePoint instance:
"Outputs" : { "SharePointFoundationURL" : { "Value" : { "Fn::Join" : ["", ["http://", { "Ref" : "SharePointFoundationEIP" } ]] }, "Description" : "SharePoint Team Site URL. Please retrieve Administrator password of the instance and use it to access the URL" }
Setelah pembuatan tumpukan selesai, alamat IP yang disediakan oleh EIP akan ditampilkan di tab Output konsol. CloudFormation Namun, sebelum Anda dapat mengakses instance, Anda perlu mengambil kata sandi administrator sementara yang dihasilkan untuk instance tersebut. Untuk informasi selengkapnya, lihat Connect ke Windows instans menggunakan RDP di EC2 Panduan Pengguna Amazon.
Kelola Windows layanan
Anda mengelola Windows layanan dengan cara yang sama seperti layanan Linux, kecuali bahwa Anda menggunakan windows
kunci, bukansysvinit
. Contoh berikut memulai cfn-hup
layanan, menyetelnya ke Otomatis, dan memulai ulang layanan jika cfn-init
memodifikasi c:\cfn\cfn-hup.conf
atau file c:\cfn\hooks.d\cfn-auto-reloader.conf
konfigurasi.
"services" : { "windows" : { "cfn-hup" : { "enabled" : "true", "ensureRunning" : "true", "files" : ["c:\\cfn\\cfn-hup.conf", "c:\\cfn\\hooks.d\\cfn-auto-reloader.conf"] } } }
Anda dapat mengelola Windows layanan lain dengan cara yang sama dengan menggunakan nama—bukan nama tampilan—untuk mereferensikan layanan.
Memecahkan masalah pembuatan tumpukan
Jika tumpukan Anda gagal selama pembuatan, perilaku defaultnya adalah mengembalikan kegagalan. Meskipun ini biasanya merupakan default yang baik karena menghindari biaya yang tidak perlu, ini menyulitkan untuk men-debug mengapa pembuatan tumpukan Anda gagal.
Untuk menonaktifkan perilaku ini saat membuat atau memperbarui tumpukan Anda dengan CloudFormation konsol, pilih opsi Pertahankan sumber daya yang berhasil disediakan di bawah opsi Kegagalan tumpukan. Untuk informasi selengkapnya, lihat Pilih cara menangani kegagalan saat menyediakan sumber daya. Ini memungkinkan Anda untuk masuk ke instance Anda dan melihat file log untuk menentukan masalah yang dihadapi saat menjalankan skrip startup Anda.
Log penting yang perlu dilihat adalah:
-
Log EC2 konfigurasi di
%ProgramData%\Amazon\EC2Launch\log\agent.log
-
Log cfn-init pada
C:\cfn\log\cfn-init.log
Untuk log lainnya, lihat topik berikut di Panduan EC2 Pengguna Amazon: