Vagrant VM Probleme/Fragen

Hier geht es um die Programmierung von Opencaching.de - User mit Erfahrungen im Bereich PHP, MySQL, HTML, JavaScript, CSS werden hier ständig gesucht
rel00p

Hallo,

ich wollte eben die VM installieren und einwenig im Code blättern, dabei ist mir folgendes aufgefallen:

1. Während des Provisioning soll ein SQL-Dump geladen werden, dort steht aber nur ein Platzhalter "INSERT-URL-HERE"
Der Hintergrund ist mir schon irgendwie klar - es soll wohl nicht jeder gleich die Datenbank bekommen ;)
Aber wie kommt man denn nun an den Dump bzw. gibt es denn keinen öffentlichen Dump mit einer Handvoll Demodaten?

2. Ich habe gesehen, dass ihr Composer erst in den letzten Tagen eingeführt habt. Im provisioning wird er nach "apply sql deltas" installiert und die dependencies aufgelöst. Allerdings müsste das vorher passieren, da sonst der autoload noch nicht vorhanden ist.

3. die VM ist doch ein Server, warum hat das private network keine feste IP? Dann könnte man sich auch mit vagrant-hostmanager automatisch einen Eintrag in der Hosts Datei anlegen lassen. Wie handhabt ihr das denn jetzt? In die VM einloggen, IP raussuchen und dann Hosts Datei manuell bearbeiten?

4. Ich hatte Probleme mit den Schreibrechten, Smarty kann nicht in das compile_dir schreiben. Host System ist bei mir OS X, aber ich denke, dass es auf Linux/Unix das gleiche Problem gibt. Der Apache in der VM müsste als Benutzer/Gruppe vagrant laufen, oder man nimmt für nicht Windows Systeme lieber nfs und mappt beim mounten uid/gid entsprechend

5. Ist eher eine Kleinigkeit: "composer install" wird als root ausgeführt, composer gibt eine entsprechende Warnung aus und schaltet den Text auf rot, der nachfolgende Text erscheint damit ebenfalls komplett in rot und es sieht auf den ersten Blick nach unzähligen Fehlermeldungen aus, in Wirklichkeit ist aber alles in Ordnung

Grüße
Mirko
Benutzeravatar
teiling88
Vereinsmitglied
Vereinsmitglied
Beiträge: 694
Registriert: 06.12.2015, 14:15

[quote="mirsch"]
1. Während des Provisioning soll ein SQL-Dump geladen werden, dort steht aber nur ein Platzhalter "INSERT-URL-HERE"
Der Hintergrund ist mir schon irgendwie klar - es soll wohl nicht jeder gleich die Datenbank bekommen ;)
Aber wie kommt man denn nun an den Dump bzw. gibt es denn keinen öffentlichen Dump mit einer Handvoll Demodaten?
[/quote]

Den Dump erstellen wir - hatte bis dato nicht die größte Priorität werde ich aber mal auf meine Roadmap weiter nach vorne ziehen :-)

[quote="mirsch"]
2. Ich habe gesehen, dass ihr Composer erst in den letzten Tagen eingeführt habt. Im provisioning wird er nach "apply sql deltas" installiert und die dependencies aufgelöst. Allerdings müsste das vorher passieren, da sonst der autoload noch nicht vorhanden ist.
[/quote]

Guter Hinweis - aktuell nutzt das db update noch keine Module aus dem vendor Verzeichnis sodass es aktuell noch funktioniert - werde das aber trotzdem anpassen. Vielen Dank dafür!

[quote="mirsch"]
3. die VM ist doch ein Server, warum hat das private network keine feste IP? Dann könnte man sich auch mit vagrant-hostmanager automatisch einen Eintrag in der Hosts Datei anlegen lassen. Wie handhabt ihr das denn jetzt? In die VM einloggen, IP raussuchen und dann Hosts Datei manuell bearbeiten?
[/quote]

Wir nutzen das Portmapping und haben im DNS local.opencaching.de mit der IP 127.0.0.1 eingerichtet :-)

Du kannst aber gerne das Anpassung ein PR dafür erstellen!

[quote="mirsch"]
4. Ich hatte Probleme mit den Schreibrechten, Smarty kann nicht in das compile_dir schreiben. Host System ist bei mir OS X, aber ich denke, dass es auf Linux/Unix das gleiche Problem gibt. Der Apache in der VM müsste als Benutzer/Gruppe vagrant laufen, oder man nimmt für nicht Windows Systeme lieber nfs und mappt beim mounten uid/gid entsprechend
[/quote]

Ja das haben wir für die Linux Systeme aktuell noch als Bug offen - aktuell werden die Rechte einmal manuell gesetzt. Auch hier darfst Du gerne einen PR dafür erstellen.

[quote="mirsch"]
5. Ist eher eine Kleinigkeit: "composer install" wird als root ausgeführt, composer gibt eine entsprechende Warnung aus und schaltet den Text auf rot, der nachfolgende Text erscheint damit ebenfalls komplett in rot und es sieht auf den ersten Blick nach unzähligen Fehlermeldungen aus, in Wirklichkeit ist aber alles in Ordnung
[/quote]

Meine CentOs Kenntnisse sind als Admin nicht die besten da ich im Berufsleben mit Debian/Ubuntu Systemen arbeite - daher auch das große shell script anstatt puppet/ant für die Provisionierung.

Vielen Dank für dein Feedback - ich würde mich freuen wenn Du dich in der Sache einbringen würdest :-)

Bezüglich Datenbank Dump kläre ich das Intern ob wir dir diesen via PN zur Verfügung stellen können.
rel00p

[quote="teiling88"]

[quote="mirsch"]
2. Ich habe gesehen, dass ihr Composer erst in den letzten Tagen eingeführt habt. Im provisioning wird er nach "apply sql deltas" installiert und die dependencies aufgelöst. Allerdings müsste das vorher passieren, da sonst der autoload noch nicht vorhanden ist.
[/quote]

Guter Hinweis - aktuell nutzt das db update noch keine Module aus dem vendor Verzeichnis sodass es aktuell noch funktioniert - werde das aber trotzdem anpassen. Vielen Dank dafür!
[/quote]

Das stimmt nicht ganz, denn die Skripte benutzen lib2/cli.inc.php, was wiederum lib2/common.inc.php includiert, welches OcSmarty instanziiert das wiederum ein require auf vendor/autoload.php hat  :P


[quote="teiling88"]
[quote="mirsch"]
5. Ist eher eine Kleinigkeit: "composer install" wird als root ausgeführt, composer gibt eine entsprechende Warnung aus und schaltet den Text auf rot, der nachfolgende Text erscheint damit ebenfalls komplett in rot und es sieht auf den ersten Blick nach unzähligen Fehlermeldungen aus, in Wirklichkeit ist aber alles in Ordnung
[/quote]

Meine CentOs Kenntnisse sind als Admin nicht die besten da ich im Berufsleben mit Debian/Ubuntu Systemen arbeite - daher auch das große shell script anstatt puppet/ant für die Provisionierung.
...
[/quote]

Das geht mir ähnlich, ich habe versucht am shell provisioner "privileged" auf false zu stellen und alles mit "sudo" zu machen, allerdings fehlen dann trotz "sudo" die Schreibrechte für z.B. /etc/my.cnf.d/server.cnf mit Ubuntu ist das kein Problem CentOs scheint da anders zu ticken. Vielleicht benötigt sudo eine echte Shell. Das müsste sich mal ein Admin anschauen - ich bin auch nur Entwickler ;)

Pull Request mache ich auf, kann aber nur auf OS X testen. Test auf Linux und Windows müsste jemand anderes übernehmen.
Benutzeravatar
teiling88
Vereinsmitglied
Vereinsmitglied
Beiträge: 694
Registriert: 06.12.2015, 14:15

[quote="mirsch"]
[quote="teiling88"]

[quote="mirsch"]
2. Ich habe gesehen, dass ihr Composer erst in den letzten Tagen eingeführt habt. Im provisioning wird er nach "apply sql deltas" installiert und die dependencies aufgelöst. Allerdings müsste das vorher passieren, da sonst der autoload noch nicht vorhanden ist.
[/quote]

Guter Hinweis - aktuell nutzt das db update noch keine Module aus dem vendor Verzeichnis sodass es aktuell noch funktioniert - werde das aber trotzdem anpassen. Vielen Dank dafür!
[/quote]

Das stimmt nicht ganz, denn die Skripte benutzen lib2/cli.inc.php, was wiederum lib2/common.inc.php includiert, welches OcSmarty instanziiert das wiederum ein require auf vendor/autoload.php hat  :P
[/quote]

Damn legacy code. So weit sind wir dann mit der Umstrukturierung leider noch nicht. :-)
Benutzeravatar
ClanFamily (Mirco)
Administrator
Administrator
Beiträge: 1412
Registriert: 03.09.2012, 21:55

Hi Mirko,
zunächst Danke für die Optimierungen.
Allerdings habe ich zunächst die Vagrantbox nicht starten können.
Wie schon im Git hinterlegt, musste ich zunächst die Vagrantbox um zwei Plugins erweitern die bei mir gefordert wurden und den NFS Server installieren (die -common war nicht gefragt).

» sudo vagrant plugin install vagrant-hostmanager
» sudo vagrant plugin install vagrant-vbguest
» sudo apt-get install nfs-common nfs-kernel-server

Trotz aller meiner Bemühungen wird Vagrant weiterhin folgenden Fehler:
It appears your machine doesn't support NFS, or there is not an
adapter to enable NFS on this machine for Vagrant. Please verify
that nfsd is installed on your machine, and try again. If you're
on Windows, NFS isn't supported. If the problem persists, please
contact Vagrant support.
Könnte man Zeile 191 dem wget noch das -q quite entziehen? Das zeigt doch die Aktivität an. Sonst hat man schnell den Eindruck, dass der Rechner "steht".

Ich denke ich werden die Prozedur noch mal in der Firma durchspielen...
Mit feudalen Grüßen,
Mirco aka Clanfamily
- Vorstand -

MeetMe | OC YouTube | OC Talk
rel00p

ClanFamily (Mirco) hat geschrieben: ...
» sudo vagrant plugin install vagrant-hostmanager
wie auf github gesagt, das ist optional. Die VM sollte auch ohne starten, allerdings musst Du dann den Host manuell hinzufügen
ClanFamily (Mirco) hat geschrieben: » sudo vagrant plugin install vagrant-vbguest
das ist jetzt behoben und die Konfiguration für das Plugin wird nur angepasst, wenn es auch vorhanden ist.
ClanFamily (Mirco) hat geschrieben: » sudo apt-get install nfs-common nfs-kernel-server

Trotz aller meiner Bemühungen wird Vagrant weiterhin folgenden Fehler:
It appears your machine doesn't support NFS, or there is not an
adapter to enable NFS on this machine for Vagrant. Please verify
that nfsd is installed on your machine, and try again. If you're
on Windows, NFS isn't supported. If the problem persists, please
contact Vagrant support.
Ich installiere mal ein Ubuntu Desktop und schaue mir das an.
Sonst müssen wir für Linux halt bei vboxsf bleiben.

ClanFamily (Mirco) hat geschrieben: Könnte man Zeile 191 dem wget noch das -q quite entziehen? Das zeigt doch die Aktivität an. Sonst hat man schnell den Eindruck, dass der Rechner "steht".
Ja, habe ich entfernt.
Benutzeravatar
teiling88
Vereinsmitglied
Vereinsmitglied
Beiträge: 694
Registriert: 06.12.2015, 14:15

Mit deinen letzten Commit hat es jetzt bei mir funktioniert. Ggf. kann Mirco das in kürze noch mal verifizieren.
rel00p

[quote="teiling88"]
Mit deinen letzten Commit hat es jetzt bei mir funktioniert. Ggf. kann Mirco das in kürze noch mal verifizieren.
[/quote]

Das ist ja schon mal was  :)
Musstest Du nfs-common und/oder nfs-kernel-server installieren?
Benutzeravatar
ClanFamily (Mirco)
Administrator
Administrator
Beiträge: 1412
Registriert: 03.09.2012, 21:55

Hab gerade noch mal aktualisiert - es gibt zwar beim Start noch ein paar fehler - aber insgesamt startet die box.
Ich werden es noch einmal testen - bei Thomas läufts ja auch bereits.

Ich habe ein recht frischen Laptop von der Firma - da war noch kein NFS drauf, da wir das nicht brauchen...
Mit feudalen Grüßen,
Mirco aka Clanfamily
- Vorstand -

MeetMe | OC YouTube | OC Talk
Benutzeravatar
teiling88
Vereinsmitglied
Vereinsmitglied
Beiträge: 694
Registriert: 06.12.2015, 14:15

[quote="mirsch"]
Musstest Du nfs-common und/oder nfs-kernel-server installieren?
[/quote]

Die hab ich eh wegen meinem NAS installiert :-\
rel00p

[quote="ClanFamily (Mirco)"]
Könnte man Zeile 191 dem wget noch das -q quite entziehen? Das zeigt doch die Aktivität an. Sonst hat man schnell den Eindruck, dass der Rechner "steht".
[/quote]

wget produziert da aber eine Menge unschönen Output. Darum war bestimmt auch -q gesetzt.
Ich habe jetzt auch curl umgestellt - das sieht besser aus
Benutzeravatar
teiling88
Vereinsmitglied
Vereinsmitglied
Beiträge: 694
Registriert: 06.12.2015, 14:15

[quote="mirsch"]
wget produziert da aber eine Menge unschönen Output. Darum war bestimmt auch -q gesetzt.
Ich habe jetzt auch curl umgestellt - das sieht besser aus
[/quote]

Jap genau deswegen, curl hört sich gut an :)
Benutzeravatar
ClanFamily (Mirco)
Administrator
Administrator
Beiträge: 1412
Registriert: 03.09.2012, 21:55

Ich hätte noch gernen nen Windows test ... dann können wir das mergen.
Ggfls. mache ich das noch auf meinem "privat PC" mit Windows...
Mit feudalen Grüßen,
Mirco aka Clanfamily
- Vorstand -

MeetMe | OC YouTube | OC Talk
Benutzeravatar
ClanFamily (Mirco)
Administrator
Administrator
Beiträge: 1412
Registriert: 03.09.2012, 21:55

Eine Anmerkung habe ich noch... aktuell habe ich jetzt die Situation, dass meine hosts die Einträge erhält die auf 10.10.0.101 zeigt.
Dadurch ist unser DNS Eintrag von local.opencaching.de nicht mehr "notwenig", da er local schon überdeckt wird.

Warum genau ist das so notwendig, dass man das auf 10.10.0.101 festlegt?
Dient das zur Festlegung mit NFS oder hat das einen anderen Hintergrund?

Wäre schön wenn Du mir das noch mal erläutern würdest.
Mit feudalen Grüßen,
Mirco aka Clanfamily
- Vorstand -

MeetMe | OC YouTube | OC Talk
rel00p

[quote="ClanFamily (Mirco)"]
Eine Anmerkung habe ich noch... aktuell habe ich jetzt die Situation, dass meine hosts die Einträge erhält die auf 10.10.0.101 zeigt.
Dadurch ist unser DNS Eintrag von local.opencaching.de nicht mehr "notwenig", da er local schon überdeckt wird.

Warum genau ist das so notwendig, dass man das auf 10.10.0.101 festlegt?
Dient das zur Festlegung mit NFS oder hat das einen anderen Hintergrund?

Wäre schön wenn Du mir das noch mal erläutern würdest.
[/quote]

Die IP ist eigentlich egal, Hauptsache sie stammt aus einem privaten Bereich. Darum steht sie auch am Anfang als Variable, weil sie in Deinem Netzwerk ja theoretisch schon vergeben sein könnte.
Hintergrund ist folgender:
1. Kann man unter OS X Ports < 1024 nur als root binden, d.h. man müsste Vagrant immer mit sudo starten damit das Portforwarding funktioniert (Das ist bei Linux sicher nicht anders)
2. habe ich z.B. auf Port 80 unter 127.0.01 oft einen anderen Server laufen - wie viele andere auch, die z.B. MAMP, XAMPP usw. benutzen, dann ist man immer gezwungen diese zu beenden wenn man die VM starten will
3. funktioniert der DNS Eintrag nur wenn man online ist, der Eintrag in der Hosts Datei funktioniert immer - auch im Zug  ;)
Antworten