EC2 kullanıcı veri komut dosyasının başlangıçta yeniden çalıştırılmasını nasıl sağlar?


19

Cloud-init , bir EC2 örneğinin ilk önyüklemesinde bir kullanıcı veri komut dosyası çalıştırdıktan sonra, bulut initinin komut dosyasını sonraki yeniden başlatmalarda yeniden çalıştırmaması için bir durum dosyası yazılır. Kullanıcı veri komut dosyasının tekrar çalışması için bu durum dosyasını silmek istediğim durumlar var. Nerede?

Yanıtlar:


24

rm /var/lib/cloud/instances/*/sem/config_scripts_user

Üzerinde çalıştığı onaylandı:

  • CentOS 7.4
  • Ubuntu 14.04
  • Ubuntu 16.04

Tamlık uğruna, bu AMI'nin [... bir üst AMI'ye sahip olduğu] ve hepsinin cloud-initkullanıcı verilerini çalıştırdığı gerçeğini / olasılığını takip etmeye özen gösterdiğiniz bir durumunuz varsa, yalnızca mevcut semaforu silebilirsiniz.

rm /var/lib/cloud/instance/sem/config_scripts_user


2
Bunu çabucak anladın.
c24w

9
@ c24w Bu zaman damgaları yanıltıcı. Aslında birkaç saatlik araştırma ve testler yaptırdım, bu yüzden bir kez anladım, bir sonraki kişiye kesin bir cevap aramasına yardımcı olmak için bu soruyu yarattım.
Mike

1
Ben geldim bu yana ve sonrası wiki tipi Q & As için teşvik edildi farkında değildi. Bunu belgelediğiniz için teşekkür ederiz!
c24w

1
Bu serverfault üzerinde teşvik edildi sevindim. Ben SO üzerinde birçok kez downvoted gördüm
frank

1
@ flag5 curlGeçerli örnek kimliğini almak için meta veri hizmetine gereksizdir çünkü /var/lib/cloud/instancezaten geçerli örneğe bir sembolik bağlantıdır /var/lib/cloud/instances. :-)
Mike

2

Komut dosyanızı /etc/rc.local içine koyabilirsiniz, bu komut dosyasını her yeniden başlatmada çalıştıracaktır.


/etc/rc.localEC2 kullanıcı verileriyle ilgisi yoktur.
Mike

@MikeConigliaro Her önyüklemede bir şey çalıştırmak için kullanıcı verilerini kullanmak istedim, bu yüzden kullanıcı-veri komut dosyasını /etc/rc.local dosyasına eklemesini sağladım.
user253751

0

Durum dosyasını kaldırmak yerine kullanıcı verilerinizi her önyüklemede yeniden çalışacak şekilde de yapılandırabilirsiniz. Kullanıcı verileri cloud_final_moduleskomut dosyasında, kullanıcı verileri komut dosyasını yeniden çalıştırmak için kullanmanız gerekir ve bunun için uderdata'yı kullanıcı verilerinde birden fazla dosya olacak şekilde özelleştirmeniz gerekir. Örnek kullanıcı veri dosyası şöyle olabilir:

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [scripts-user, always]

--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash
/bin/echo "Hello World" >> /tmp/userdata-test.txt
--//

Bu, kullanıcı verileri komut dosyasının her önyükleme işleminin son adımında yürütülmesini sağlar. Burada sadece tek bir satır bin/echo "Hello World" >> /tmp/userdata-test.txtyürütülecek, bunu her makine önyüklendiğinde yürütülmesi gereken kabuk betiğinizle değiştirin.

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.