Saya sangat baru dalam layanan AWS. Saya mencoba menggunakan formasi awan AWS dan saya membuat templat. Templat bebas kesalahan dan saya dapat membuat mesin menggunakan itu.
Tetapi saya telah menambahkan beberapa konfigurasi dalam template sehingga menginstal tomcat, git dan hal-hal lain selama startup. Tetapi itu tidak terjadi pada saya.
Ini adalah bagian dari kode yang saya gunakan untuk menginstal kucing jantan:
"Resources": {
"Tomcat": {
"Type": "AWS::EC2::Instance",
"Metadata": {
"AWS::CloudFormation::Init": {
"config": {
"packages": {
"apt": {
"tomcat6": [],
"git": [],
}
}
}
}
},
Tetapi ketika saya masuk ke mesin tidak tomcat
juga git
belum diinstal!
Terima kasih sebelumnya.
Jawaban:
Saya percaya masalah Anda di sini adalah kebingungan tentang cloud-init yang tidak sama dengan cfn-init.
cloud-init adalah alat yang dimulai sebagai bagian dari AMI AWS Ubuntu yang memungkinkan interpretasi komponen data pengguna EC2 dari contoh meta-data. Amazon Linux juga mengadopsi alat ini dan membuatnya menjadi AMI mereka.
cfn-init adalah bagian dari rangkaian alat yang disebut CloudFormation Helper Scripts yang dibuat oleh AWS untuk Amazon Linux yang dapat membaca bagian tambahan yang disebutkan
Metadata
dalam templat CloudFormation Anda.Jadi, Ubuntu dan Amazon Linux AMI keduanya memiliki alat cloud-init yang sudah diinstal untuk mengakses data pengguna, tetapi hanya Amazon Linux yang memiliki CloudFormation Helper Script yang sudah diinstal misalnya cfn-init untuk mengakses CloudFormation Metadata.
Namun, AWS mendistribusikan paket yang dapat Anda gunakan untuk membaca CloudFormation Metadata. Secara khusus, lihat template ini untuk bagaimana Anda dapat menggunakan skrip data pengguna cloud-init untuk menginstal python-setuptools, unduh CloudFormation Helper Scripts, instal dengan menggunakan easy_install dan aktifkan cfn-init.
Catatan: Ada distribusi atau AMI lain yang mungkin mendukung cloud-init atau cfn-init, tapi saya hanya membahas kasus-kasus umum di sini.
sumber
Anda perlu memanggil cfn-init ( http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-init.html ) di dalam properti UserData dari instance:
Properti UserData dikodekan Base64, dan memungkinkan Anda untuk menentukan skrip yang harus dijalankan pada saat peluncuran. Di sini Anda dapat memanggil cfn-init yang akan membaca CloudFormation :: Init Metadata dan mengatur semua yang ditentukan di sana.
Juga saat membuat CF Stack Anda mungkin ingin masuk ke pengaturan lanjutan di halaman kedua (setelah memberikan parameter) dan pastikan Rollback on error diatur ke "Tidak". Dengan cara itu jika skrip cfn-init gagal karena alasan apa pun Anda dapat ssh ke instance dan memeriksa file /var/log/cfn-init.log untuk info lebih lanjut.
sumber
Jawaban di atas benar. Tetapi Anda juga harus memastikan bahwa Anda telah berhasil menginstal skrip pembantu CloudFormation. Silakan ikuti http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-helper-scripts-reference.html untuk detail pemasangan.
sumber
sumber