Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bootstrapping tumpukan Windows AWS CloudFormation
Topik ini menjelaskan cara melakukan bootstrap tumpukan Windows dan memecahkan masalah pembuatan tumpukan. Jika Anda akan membuat gambar Windows Anda sendiri untuk digunakan CloudFormation, lihat informasi di Mengonfigurasi instans Windows menggunakan EC2 ConfigService di Panduan Microsoft Windows Amazon EC2 untuk petunjuk. Anda harus mengatur instance Windows dengan EC2 ConfigService agar dapat bekerja dengan alat AWS CloudFormation bootstrap.
Contoh bootstraping dari tumpukan Windows
Untuk keperluan ilustrasi, kita akan memeriksa template SharePoint server AWS CloudFormation single instance.
Templat dapat dilihat secara keseluruhan pada URL berikut:
Contoh ini menunjukkan bagaimana untuk:
-
Buat IAM User dan grup keamanan untuk akses ke instance.
-
Konfigurasikan file inisialisasi:
cfn-credentials
,cfn-hup.conf
, dancfn-auto-reloader.conf
. -
Unduh dan instal paket seperti SharePoint Foundation 2010 pada instance server.
-
Gunakan a WaitCondition untuk memastikan sumber daya siap.
-
Mengambil IP untuk instans dengan Amazon Elastic IP (EIP).
Skrip AWS CloudFormation pembantu cfn-init
digunakan untuk melakukan setiap tindakan ini, berdasarkan informasi dalam AWS::CloudFormation::Init
sumber daya dalam template Windows Single Server Sharepoint Foundation.
AWS::CloudFormation::Init
Bagian ini bernama "SharePointFoundation“, dan dimulai dengan deklarasi standar:
"SharePointFoundation": { "Type" : "AWS::EC2::Instance", "Metadata" : { "AWS::CloudFormation::Init" : { "config" : {
Setelah ini, bagian file 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:
-
cfn-hup.conf
, file konfigurasi untuk cfn-hup. -
cfn-auto-reloader.conf
, file konfigurasi untuk kait yang digunakan oleh cfn-hup untuk memulai pembaruan (memanggil cfn-init) ketika metadata diAWS::CloudFormation::Init
berubah.
Ada juga file yang diunduh ke server:SharePointFoundation.exe
. File ini digunakan untuk menginstal SharePoint pada instance server.
penting
Karena jalur pada 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 Windows di template. AWS CloudFormation
Berikutnya adalah bagian perintah, yang merupakan perintah cmd.exe
.
"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 bagian Properti:
"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>" ]]}} }
Dalam bagian ini, properti UserData
berisi properti skrip cmd.exe
yang akan dijalankan oleh cfn-init
, dikelilingi oleh tanda <script>. Anda dapat menggunakan skrip Windows Powershell di sini alih-alih mengelilingi skrip Anda dengan tanda <powershell>. Untuk tumpukan Windows, Anda harus mengodekan base64 lagi untuk menangani URL kondisi tunggu.
SharePointFoundationWaitHandle direferensikan di sini dan dijalankan dengancfn-signal
. Yang WaitConditionHandledan WaitConditionterkait dinyatakan 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. AWS CloudFormation Namun, sebelum Anda dapat mengakses instance, Anda perlu mengambil kata sandi Administrator sementara yang dihasilkan untuk instance tersebut. Untuk informasi selengkapnya, lihat Menyambungkan ke instans Windows menggunakan RDP di Panduan Pengguna Amazon EC2.
Cara mengelola layanan Windows
Anda mengelola layanan Windows dengan cara yang sama seperti layanan Linux, kecuali Anda menggunakan kunci windows
bukannya sysvinit
. Contoh berikut memulai layanan cfn-hup
, mengaturnya ke Otomatis, dan memulai ulang layanan jika cfn-init memodifikasi atau file konfigurasi c:\cfn\cfn-hup.conf
atau c:\cfn\hooks.d\cfn-auto-reloader.conf
.
"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 layanan Windows lainnya dengan cara yang sama dengan menggunakan nama — bukan nama tampilan — untuk referensi layanan.
Cara memecahkan masalah pembuatan tumpukan
Jika tumpukan Anda mengalami kegagalan selama pembuatan, perilaku default adalah untuk melakukan Rollback pada 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, pilih Tampilkan Opsi Lanjutan saat membuat tumpukan Anda dengan AWS CloudFormation konsol, dan pilih Tidak ada pemilih di samping Rollback on failure. Ini akan memungkinkan Anda untuk masuk ke instans Anda dan melihat file log untuk menunjukkan dengan tepat masalah yang dihadapi saat menjalankan skrip startup Anda.
Log penting yang perlu dilihat adalah:
-
Log konfigurasi EC2 pada
C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
-
Log cfn-init pada
C:\cfn\log\cfn-init.log
Lihat panduan EC2 ini untuk lebih banyak log: