2012-06-21 6 views
17

Ich versuche, das Entwickler-Setup für ein Projekt zu automatisieren, so dass ein neuer Entwickler einfach vagrant up ausgeben kann, um eine VM mit MySQL und Tomcat mit einer benutzerdefinierten zu erhalten War-Datei läuft und läuft. Der Deployed-War setzt voraus, dass eine bestimmte Datenbank und ein bestimmter Benutzer in der MySQL-Instanz vorhanden sind.Einrichten einer MySQL-Datenbank mit einem Benutzer mit Vagrant und Chef-Solo

Jetzt benutze ich Chef-Solo, und alles wird hochgefahren und korrekt installiert. Ich kann jedoch nicht herausfinden, wie man ein Kochbuch zum Einrichten der Datenbank und des Benutzers schreibt. Ich habe in das database Kochbuch geschaut, aber das scheint nicht zu meinem Anwendungsfall mit Chef-Solo zu passen. Ich konnte kein Online-Beispiel finden, das eine Datenbank für eine Koch-Solo-Instanz erstellt, aber vielleicht suche ich nach falschen Begriffen?

Ich könnte ein Bash-Skript für die Einrichtung der Datenbank und Benutzer (bedingt von ihnen nicht vorhanden) schreiben, aber das scheint nicht in die Kochbuch-Philosophie zu passen. Wie würdest du dieses Problem lösen?

Antwort

3

Für Chef Solo müssen Sie einige Konfigurationen vornehmen, haben Sie es getan? Konfigurationen ich rede sind here Die gleiche Seite bietet auch eine schnelle kleine Demo, wie zu konfigurieren und ein Kochbuch laufen, nach dem Sie können:

Kochbuch für MySQL ist here Kochbuch für Tomcat here

Andere Kochbücher können gefunden werden here

Das ist am nächsten, ich kann auf basierend auf Daten, die Sie zur Verfügung gestellt haben. Sobald Sie diese und Setup-Sachen konfiguriert haben, wenn Sie mit Fehlern konfrontiert sind, posten Sie sie. Und hoffentlich war ich hilfreich :)

Ich würde zuerst den Koch Solo konfigurieren und dann Kochbücher in einem der konfigurierten Verzeichnisse platzieren.

+0

ich bereits einen vollständigen Koch-Solo-Setup habe die installiert Tomcat, kopiert meinen Krieg, installiert MySQL usw. Zur Zeit habe ich ein eigenes Kochbuch erstellt, das nur Bash verwendet, um die Datenbank zu erstellen, aber ich zögere, bash zu verwenden, um einen benutzerdefinierten Benutzer einzurichten usw. Hier ist das aktuelle Rezept I habe für das Erstellen der Datenbank geschrieben: bash "Versuch, Datenbank 'foo' zu erstellen" do code << - EOM mysql -uroot -e 'Datenbank erstellen, wenn nicht existiert foo' EOM – Thomas

+0

Ja, aber wenn Sie die Rezepte von Chef-Website herunterladen, werden sie Ruby-Skripte sein. Oder suchen Sie etwas anderes? –

+0

Ich habe alle Rezepte, die ich brauche, um ein Bild mit MySQL und Freunden zu erstellen. Mein Problem ist, MySQL danach zu konfigurieren. Ich muss dem Server einen Benutzer und eine Datenbank hinzufügen. Ich weiß, wie ich mein eigenes Rezept dafür schreibe, herumhacken, aber das scheint keine idiomatische Art zu sein, dies zu tun. Ich versuche herauszufinden, ob das 'Datenbank'-Rezept für Chef-Solo verwendet werden kann, um meinen Anwendungsfall zu lösen. Ich fürchte, meine ursprüngliche Frage war nicht klar genug. Ist das sinnvoll? – Thomas

20

Ja, Sie können den Chef Art und Weise zu tun, wie dies mit dem database Kochbuch:

include_recipe "database::mysql" 

# create a mysql database 
mysql_database 'sonar' do 
    connection ({:host => "localhost", :username => 'root', :password => node['mysql']['server_root_password']}) 
    action :create 
end 

mehr über dieses Kochbuch finden Sie hier: http://community.opscode.com/cookbooks/database

Verwandte Themen