Einführung
Wir alle kennen die Regel in der einen oder anderen Form: dreimal und Sie automatisieren. Und obwohl ich versuche, sie anzuwenden, ertappe ich mich dabei, dass ich einige Dinge bei jedem neuen Projekt wiederhole, wie z.B. die Erstellung eines neuen CI-Servers. Eine Lösung wäre ein zentraler Server für alle Ihre Projekte, aber die Kunden sind meist nicht bereit, sich auf Dienste außerhalb ihres Netzwerks zu verlassen, was bedeutet, dass Sie oft eine lokale Lösung für jedes Projekt erstellen müssen. Nachdem ich das dreimal gemacht hatte, beschloss ich, ein Repository anzulegen, in dem Skripte zur Automatisierung der Einrichtung von Entwicklungsmaschinen gespeichert werden. Mit einem einzigen Befehl erhalten Sie ein voll funktionsfähiges System, das Sie nur noch an Ihre Bedürfnisse anpassen müssen. Dieser Blog zeigt Ihnen, wie Sie schnell einen Jenkins-Server auf einer lokalen virtuellen Maschine einrichten können.
Erste Schritte
Um alles in Gang zu bringen, benötigen Sie mindestens die folgenden beiden Tools
- VirtualBox für die Virtualisierung. VirtualBox ist ein vollständiges Virtualisierungssystem, mit dem Sie virtuelle Maschinen einfach verwalten können. Die virtuellen Maschinen können jedoch auch über einen Manager mit einer Befehlszeilenschnittstelle ausgeführt werden. Das nächste Tool, vagrant, verwaltet die Konfiguration der virtuellen Maschinen auf diese Weise.
- Vagrant für die automatisierte Erstellung und Bereitstellung von Maschinen. Mit Vagrant können Sie eine virtuelle Maschine in einer Vagrantdatei definieren, ähnlich wie eine Makefile für VirtualBox-basierte virtuelle Maschinen. Eine Vagrantdatei enthält Informationen darüber, wie die virtuelle Maschine einzurichten ist, z.B. welche Datei als Dateisystem-Image zu verwenden ist, welche Netzwerk- und Speicherkonfiguration die virtuelle Maschine benötigt und wie viel Speicher verwendet werden soll. Auch wenn Vagrant die Maschinen headless bootet und ausführt, hält Sie nichts davon ab, die Maschine jederzeit über die VirtualBox-Benutzeroberfläche zu starten, zu exportieren oder zu klonen, wenn Ihnen danach ist.
- Git, da wir die Konfigurationsdateien auf Github abgelegt haben.
Nachdem Sie die erforderlichen Tools installiert haben, klonen Sie das vagrantboxes-Repository
git clone git://github.com/xebia/vagrantboxes.git
cd vagrantboxes
Konfigurieren Sie die gewünschte VM
Im Repository finden Sie eine Vagrant-Datei, die die Eigenschaften der VM konfiguriert: Speicher, zu verwendendes Basis-Image und wie die Bereitstellung erfolgen soll. Vagrant importiert das Basis-Image, konfiguriert die VM, bootet sie und startet dann Puppet, um die Maschine bereitzustellen. Puppet erhält die Anweisung, die Datei
notice: Scope(Class[Jenkins]): Jenkins will be at https://172.28.128.5:8080/ after a reboot
notice: Scope(Class[main]): You can connect to your guest services via: 172.28.128.5
notice: Scope(Class[main]): You reboot by using 'sudo reboot' after logging in with: vagrant ssh
Die virtuelle Maschine wird mit zwei Netzwerkgeräten gestartet: ein NAT, über das die VM mit dem Internet in Kontakt treten kann, und ein Host-only-Netzwerk mit DHCP. Wir tun dies, damit Sie die VM von Ihrem lokalen Rechner aus kontaktieren können (der Host-Only-Netzwerkadapter), ohne jeden der Ports, die Sie verwenden möchten, in der Vagrant-Datei definieren zu müssen. Wenn Sie diese Zeilen übersehen haben und herausfinden möchten, wo sich Ihr Rechner befindet, können Sie sich über den lokal umgeleiteten SSH-Port mit
vagrant@vagrant-debian-squeeze64:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:03:32:cb brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
inet6 fe80::a00:27ff:fe03:32cb/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:56:7c:ba brd ff:ff:ff:ff:ff:ff
inet 172.28.128.5/24 brd 172.28.128.255 scope global eth1
inet6 fe80::a00:27ff:fe56:7cba/64 scope link
valid_lft forever preferred_lft forever
Ermitteln Sie die Adresse der virtuellen Maschine im reinen Host-Netzwerk. Sie können dies überprüfen, indem Sie sich per SSH mit dem Benutzer vagrant und dem Passwort vagrant mit der Adresse verbinden.
Besuchen Sie Ihr neu installiertes Jenkins
Wir haben jetzt eine VM laufen, aber wir können Jenkins noch nicht sehen. Standardmäßig werden die installierten Dienste nach der Installation nicht gestartet (damit wird sichergestellt, dass jedes Puppet-Modul über genügend Speicherplatz verfügt, um installiert zu werden, wenn Sie eine beliebige Anzahl von Modulen kombinieren). Starten Sie den Rechner neu, um die Installation abzuschließen:
vagrant ssh
sudo reboot
Danach sollten Sie eine voll funktionsfähige Jenkins-Installation haben, die Sie möglicherweise über die in der Ausgabe erwähnte URL aufrufen: https://172.28.128.5:8080/
Projektspezifische Einstellungen
Jetzt kommt der Teil, in dem Sie projektspezifische Einstellungen hinzufügen müssen. All die Dinge, die Sie am Ende nie mehr als dreimal machen müssen. Bevor Sie das tun, öffnen Sie SSH für die virtuelle Maschine und fahren Sie sie herunter:
vagrant ssh
sudo poweroff
öffnen Sie dann die Virtualbox-Verwaltungs-GUI und klonen Sie den Rechner. Dadurch erhalten Sie einen normalen Virtualbox-Rechner, auf dem Sie all die Dinge tun können, die Sie wahrscheinlich für jedes einzelne Projekt tun möchten:
- Besondere Benutzer hinzufügen
- Hinzufügen eines Schlüssels für die Entwicklung zum Lesen eines Git-Repos
- Installieren Sie Ihre eigene spezielle Art von Java und Maven
- Konfigurieren Sie die Hostnamen, die Sie verwenden möchten
- usw.
Sie können sich immer mit dem Benutzernamen vagrant und dem Passwort vagrant anmelden. Jede Root-Aktivität sollte mit
Verfasst von
Bram Neijt
Unsere Ideen
Weitere Blogs
Contact



