2016-07-19 19 views
0

ubuntu 14 amazon awsaws Volumen beim Booten anbringen und vor Apache MySQL montieren ... startet

Ich versuche, ein Volumen beim Start zu befestigen und montieren i in/etc die folgende Conf-Datei mit/init

start on started network-interface 
script 
/usr/bin/aws ec2 attach-volume ... && /bin/mount ... || /bin/mount ... 
end script 

das Problem ist, das anbringen asynchron ist und eine beliebige Zeit

so nehmen könnte, wenn ich eine Instanz das erste Mal beim Start sie das Volumen befestigen sondern auf dem Berg fehlschlagen, wenn ich es neu starten, dann wird nicht auf dem befestigen, wie es bereits die Halterung befestigt ist, funktioniert dann jeder nachfolgender Neustart das Problem umgehen ist das erste Mal, wenn das Volumen angebracht werden muss

so denke ich, dass ich ein zweites Skript benötigt (nicht sicher, ob ich es in der gleichen conf-Datei) so etwas wie

start on started network-interface 
script 
////try to attach it if we get an error then its already attached so mount it 
/usr/bin/aws ec2 attach-volume ... || /bin/mount ...  
end script 

start on WHEN volumen IS attached (no idea what i need here) 
script 
///new device attached to system mount it 
/bin/mount ... 
end script 

so meine Frage tun kann, ist, wie kann ich wissen, wenn ein Gerät/Volumen an das System i alle hoffen, angebracht ist, der vorher getan werden kann, alles wie Apache mysql ... startet wenn nicht würde ich zusätzlich müssen sie neu oder besser neu starten verzögern den Beginn der Apache-MySQL ... bis mein Mount ps ich brauche bereit ist, mehrere Volumen auf diese Weise

schätzen irgendwelche Ratschläge

+0

Gibt es einen Grund Sie nicht verwenden/etc/fstab zu Auto, das Dateisystem beim Booten montieren? – Brandon

+0

Ich mache andere Dinge in dort anfügen IP-Einstellung dns ich möchte es an einem Ort haben und fstab würde nicht das Problem lösen, dass es nichts zu montieren, bis ich nicht das Volumen – Ino

Antwort

0
  1. Indem die Instanz erstellen und fügen ihre eigenen EBS-Datenträger zum einhängen, Jede Instanz benötigt AWS-Anmeldeinformationen oder eine IAM-Instanzrolle, mit der EBS-Volumes erstellt und angehängt werden können. Dies ist möglicherweise ein Sicherheitsrisiko.
  2. Wenn die Instanz ein eigenes Volume erstellen muss (immer noch nicht optimal), verwenden Sie nicht upstart. Dies muss nur einmal beim ersten Start und nicht bei jedem Neustart durchgeführt werden. Übergeben Sie die Befehle in der Instanz user-data als Skript, das beim ersten Booten ausgeführt werden soll.
  3. Besser noch, erstellen Sie die Instanz mit dem Volume und lassen Sie es automatisch anhängen. Erstellen Sie eine Autoscaling-Gruppe und fügen Sie das EBS-Volume in die Startkonfiguration ein. (Autoscaling-Gruppen müssen nicht automatisch skaliert werden. Sie können sie zu einer exakten Größe zwingen. Sie sind unermesslich nützlich zum Automatisieren der Erstellung von Instanzen mit komplexen Konfigurationen.) Übergeben Sie dann in user-data ein Skript, das das Volume formatiert und bereitstellt (und fügt einen Eintrag zu /etc/fstab hinzu).

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

+0

siehe oben war zu lange, um es als a Kommentar – Ino