20. November 2018 , 20:10 Uhr
von Marc Eggert

Ich benötige oftmals mal schnell einen Host, um diverse Dinge zu testen. Aktuell möchte ich Ansible-Playbooks testen und auf die eigenen Ansprüche anpassen. Natürlich soll dabei der grundsätzliche Aufwand, eine entsprechende Maschine zu starten, so klein wie möglich gehalten werden.

Eine recht einfache und schnelle Methode ist die Nutzung von Vagrant. Man benötigt lediglich eine Vagrantfile-Datei, in welcher beschrieben steht, wie die zu erstellende VM (in meinem Fall Virtualbox) aussehen soll. Für Ansible ist es günstig, eine minimale, aktuelle Ubuntu-Box aufzusetzen, die man dann ähnlich der üblichen Cloud-VServer via Ansible konfigurieren kann.

Ein paar kleinere Anpassungen sind allerdings im Gegensatz zu den üblichen Vagrantfiles notwendig, um die VM einfach mit Ansible zu nutzen, bzw. einen „in etwa“-Betrieb mit einem tatsächlichen Cloud-Host zu simulieren:

  • IP-Adresse im eigenen Netzwerk, also keine NAT
  • SSH-Login als root via Key

Da sonst nichts großartig auf der Maschine installiert sein soll, genügen also auch minimale Angaben im Vagrantfile:

Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.network :public_network config.vm.provider :virtualbox do |vb, override| # Fix docker not being able to resolve private registry in VirtualBox vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] end end
Code-Sprache: PHP (php)

In diesem Fall wird eine Ubuntu Bionic x64-Box hochgefahren und das Netzwerk auf Public/local gesetzt. In einer gängigen Umgebung zieht sich die Box via DHCP eine IP-Adresse im LAN. Anstelle Ubuntu kann auch jedes andere minimale Grund-System/-Image gewählt werden. Wichtig ist nur: Falls man via Ansible das APT-Modul nutzt, sollte es eben auch eine Debian-basierte Distribution sein.

Mit dem Kommando [cci lang=“bash“]vagrant up[/cci] wird die VM gestartet.

Grundsätzlich kann man sich nun vagrant-üblich via [cci lang=“bash“]vagrant ssh[/cci] via SSH auf die VM verbinden. Dies ist zunächst auch mal notwendig, um die IP-Adresse der VM zu ermitteln und gleich den eigenen Public-Key unter /root abzulegen.
Daher wird zunächst der eigene Public-Key kopiert ([cci lang=“bash“]cat ~/.ssh/id_rsa.pub[/cci] -> Ausgabe in die Zwischenablage kopieren. Dann via [cci lang=“bash“]vagrant ssh[/cci] auf die VM verbinden und den eigenen Pub-Key in authorized_keys von root ablegen – in etwa so: [cci lang=“bash“]sudo vim /root/.ssh/authorized_keys[/cci] <- Zwischenablage einfügen & VIM mit [cci lang=“bash“][ESC]:wq[/cci] verlassen.

Via [cci lang=“bash“]ip addr[/cci] erfährt man zudem dann gleich die IP-Adresse aus dem eigenen LAN, die sich die VM gezogen hat. Diese IP-Adresse am besten gleich merken oder kopieren.

Vom Host sollte jetzt ein Login ohne Passwort via [cci lang=“bash“]ssh root@[IP-DER-VM][/cci] möglich sein. Um das ganze noch etwas lesbarer zu machen und für die Verwendung mit Ansible zu vereinfachen, editiert man zudem noch die Datei [cci lang=“bash“]/etc/hosts[/cci] und setzt hier die IP-Adresse und den gewünschten „Fake-DNS“-Namen für die VM ein (beispielsweise [cci lang=“bash“]192.168.22.16 UbuntuVM1[/cci]. Ab sofort ist dann der Login auch via [cci lang=“bash“]ssh root@UbuntuVM1[/cci] möglich, was die Arbeit mit Ansible dann auch etwas vereinfacht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*

*

Durch die Abgabe eines Kommentars akzeptieren sie die Datenschutzerklärung von net73.com