EC2 örneği önyüklendikten sonra bir bash betiği çalıştırın


19

Uzaktan başka bir örnek başlatan bir EC2 örneği üzerinde bir komut dosyası var.

Bu örnek tamamen yüklendikten (önyüklemeyi bitirdikten sonra) otomatik olarak bir bash betiği çalıştırmasını istiyorum, bunu yapmanın en iyi yolu nedir?

Ben tamamen başlamak için her şeye ihtiyacım var, temelde bash betiği (ImageMagick kullanarak ve "wget" komutunu birkaç kez yürütür) bir görüntü dönüştürme komut dosyası çalıştırır

Şu anda komut dosyası burada:

/home/root/beginProcess.sh

Ve manuel olarak başlatabilirim

bash beginProcess.sh

RHEL-6.2-Starter-EBS-i386

Ayrıca buna bağlı bir EBS hacmi var, bu yardımcı olursa, teşekkürler!

Yanıtlar:


26

Ben sadece kullanıcı-veri seçeneğini kullanmanızı öneririm ec2-run-instances. İlk önyüklemede çalıştırılacak olan VM'ye bir tür komut dosyası vermenizi sağlar. Ubuntu veya debian kullanıyorsanız , işleme güzel bir cila koyan bulut init'i kullanabilirsiniz . Cloud-init kullanıyorsanız, [runcmd]önyüklemeden sonra çalıştırılacak rasgele komutları belirtmek için yapılandırma dosyasının bölümünü kullanabilirsiniz .

Kullanıcı verileri sayfası için SF kullanıcısı Eric Hammond'a teşekkürler . Onun göz atın siteyi - bu AWS hakkında bilgi hazinesi vardır.

Düzenleme: Yeniden okuduktan sonra, ilk önyüklemede veya her önyüklemede bir komut çalıştırmak isteyip istemediğiniz açık değildir. Yukarıdaki talimatlar sadece ilk önyükleme için geçerlidir. Her önyüklemede bir komut çalıştırmak istiyorsanız, birkaç seçeneğiniz vardır - @rebootcron yönergesi aracılığıyla bir komut çalıştırabilir veya alternatif /etc/rc.localolarak, sistem her açıldığında çalıştırılacak komut dosyasını ekleyebilirsiniz .


1
Yanıt için harika teşekkürler, açıklamak için Sistem her önyükleme yapmasını istedim, /etc/rc.localharika çalışıyor, şerefe
SSH Bu

9

cloud-initPaketin yüklü olduğu (Amazon Linux veya Ubuntu gibi) bir AMI kullanıyorsanız , kullanıcı veri dosyası olarak bash betiğini (#! İle başlayan) geçebilir ve önyükleme işlemi.

Örneğin, bu kadar basit olabilir:

ec2-run-instances                             \
  --user-data-file /home/root/beginProcess.sh \
  --key $USER                                 \
  ami-XXXXXXXX

İşte Amazon Linux ve Ubuntu gibi büyük EC2 AMI'lerde bulunan kullanıcı-veri komut dosyası konseptini tanıttığım makale: http://alestic.com/2009/06/ec2-user-data-scripts

Ne yazık ki, bir RHEL AMI kullanmak istediğiniz anlaşılıyor. Bunun bir kopyasını çalıştırdım ve bulut önyüklemesine veya ilk önyüklemede kullanıcı verileri komut dosyalarını çalıştırmaya ilişkin herhangi bir referans bulamadım veya aynı çalışmayı test etmedim.

Linux dağıtımlarını sadece bunun için değiştirmeniz gerektiğini söylemiyorum, ancak Amazon Linux RHEL'e dayanıyor, bu yüzden sizin için işe yarayabilir.

İlk kez çalışmazsa kullanıcı veri komut dosyanızda hata ayıklamanıza yardımcı olabilecek bir makale yazdım: http://alestic.com/2010/12/ec2-user-data-output


Offtopic, ancak böyle çok değerli bir şey oluşturduğunuz için teşekkür ederiz. Üç şerefe.
danieljimenez
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.