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 Gunakan EC2Config layanan untuk melakukan tugas selama peluncuran instans sistem operasi Windows EC2 lama di Panduan EC2 Pengguna Amazon untuk petunjuk. Anda harus mengatur instance Windows dengan EC2Config layanan 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.
Template dapat dilihat secara keseluruhan sebagai berikut: URL
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. -
Ambil IP untuk instance 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 diberi namaSharePointFoundation
, 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 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 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 skrip Windows Powershell di sini sebagai gantinya dengan mengelilingi skrip Anda dengan <powershell>
tag. Untuk tumpukan Windows, Anda harus base64 menyandikan pegangan kondisi tunggu lagi. URL
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 AWS CloudFormation konsol. Namun, sebelum Anda dapat mengakses instance, Anda perlu mengambil kata sandi Administrator sementara yang dihasilkan untuk instance tersebut. Untuk informasi selengkapnya, lihat Connect ke instans Windows Anda menggunakan RDP di Panduan EC2 Pengguna Amazon.
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 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 layanan Windows lainnya dengan cara yang sama dengan menggunakan nama — bukan nama tampilan — untuk mereferensikan 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 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
C:\Program Files\Amazon\Ec2ConfigService\Logs\Ec2ConfigLog.txt
-
Log cfn-init pada
C:\cfn\log\cfn-init.log
Lihat EC2 panduan ini untuk lebih banyak log: