Ergebnis 1 bis 1 von 1

Baum-Darstellung

  1. #1
    Anfänger
    Registriert seit
    23.04.2016
    Beiträge
    6

    Standard Let's create a VM with Ansible and Vagrant

    Hey Leute,


    hier mal ein schnelles Tutorial wie ihr eine VM mit vagrant erstellen und mit Ansible konfiguriren könnt.
    Das Ziel des Tutorial ist es eine Ubuntu VM zu erstellen auf welcher ein LEMP Stack am laufen ist.


    LEMP = Linux, Nginx, Mysql, PHP


    Das fertige Projekt kann hier gefunden werden: https://gitlab.com/fl0/ansible-tut




    Requirements:
    - Virtualbox -> https://www.virtualbox.org/wiki/Downloads
    - Vagrant -> https://www.vagrantup.com/downloads.html




    Side note: Ich schreib das Tutorial unter Mac (Hater gonna hate)


    Und los geht es.


    Als erstes brauchen wir natürlich eine VM in der wir dann den LEMP Stack aufsetzen können. Dafür nutzen wir
    die auf Ruby basierende vagrant Anwendung. Vagrant laesst uns ohne grossen Aufwand VM's erstellen und verwalten. Das ganze wird gesteuert über einen Konfigurationsdatei "Vagrantfile".


    Hier definieren wir in unserem Fall folgende Dinge:
    - 512mb Ram und ein CPU Kern
    - Ubuntu
    - Teile den momentanen Ordner mit der VM
    - SSH Key forwarding
    - Nutze Ansible zur konfiguration


    > https://gitlab.com/fl0/ansible-tut/b...er/Vagrantfile


    Nun müssen wir irgendwie Ansible auf der VM installieren. Dafür führt vagrant die windows.sh auf der VM aus. Das haben wir vorhin in der Vagrantfile definiert. Die windows.sh fügt einfach nur das ansible repository hinzu und installiert dann ansible ueber apt. Dazu hinaus setzen wir ein ssh keypair. Mehr dazu könnt ihr in den vagrant Docs finden.


    https://www.vagrantup.com/docs/boxes/base.html
    "vagrant" User


    By default, Vagrant expects a "vagrant" user to SSH into the machine as. This user should be setup with the insecure keypair that Vagrant uses as a default to attempt to SSH. Also, even though Vagrant uses key-based authentication by default, it is a general convention to set the password for the "vagrant" user to "vagrant". This lets people login as that user manually if they need to.




    To configure SSH access with the insecure keypair, place the public key into the ~/.ssh/authorized_keys file for the "vagrant" user. Note that OpenSSH is very picky about file permissions. Therefore, make sure that ~/.ssh has 0700 permissions and the authorized keys file has 0600 permissions.




    When Vagrant boots a box and detects the insecure keypair, it will automatically replace it with a randomly generated keypair for additional security while the box is running.

    So nun kommen wir endlich zu dem spassigen Teil, wie wir mithilfe von ansible den Server konfigurieren können. Ansible nutzt sogenannte "Playbooks" welche definieren wie und was installiert/konfiguriert wird. Der Einstieg hierfür ist playbook.yml
    Hier definieren wir welche roles (Aufgaben/Tasks) ausgeführt werden sollen. Wir haben folgende definiert:
    - vagrant_local (vagrant spezifische konfiguration)
    - nginx
    - mysql
    - php
    https://gitlab.com/fl0/ansible-tut/b...e/playbook.yml


    Von Haus aus weiss Ansible nicht wie nginx installiert wird. Dafür müssen wir die Rolle selber beschreiben. Hierzu erstellen wir im Ordner roles den Ordner nginx. Hier finden wir handlers, tasks und templates.
    Im Ordner tasks definieren wir die Aufgaben die Ansible zu erledigen hat. Im Fall von nginx sind die folgenden Aufgaben definiert:
    - Installiere über apt das Packet nginx
    - Kopiere das Template nach /etc/nginx/sites-available/default.
    - Wenn der Kopiervorgang erfolgreich ist feuern wir das Event "restart nginx"


    Wie der Ordername schon vermuten laesst sind im Ordner templates alle Templates fuer die Rolle nginx definiert. Ansible nutzt hier die Template engine Jinja2. Die variablen sind in vars/all.yml definiert.


    Dann haben wir noch den Ordner handlers. Hier können wir Events definieren und was passieren soll wenn diese ausgelöst. Wie vorhin angesprochen feuern wir das event "restart nginx". Hier definieren das im Falle von "restart nginx" der Service nginx neugestartet werden muss. Duhhh
    https://gitlab.com/fl0/ansible-tut/t...le/roles/nginx




    Das gleiche Prinzip verwenden wir jetzt um die Rollen php und mysql zu definieren.
    https://gitlab.com/fl0/ansible-tut/t...ible/roles/php
    https://gitlab.com/fl0/ansible-tut/t...le/roles/mysql


    Ansible bietet natürlich einen Haufen mehr als was ich jetzt in dem kurzen Tutorial erklären kann. Am besten schaut ihr euch mal in den Docs um http://docs.ansible.com/ansible/playbooks.html




    Zu guter letzt wollen wir natürlich auch was sehen:
    > git clone https://gitlab.com/fl0/ansible-tut.git
    > cd ansible-tut
    > vagrant up


    Sobald der Befehl durchgelaufen ist könnt ihr 192.168.33.99 im Browser aufrufen.


    Ihr könnt natürlich euch auch per ssh mit der VM verbinden
    > vagrant ssh




    Soooooo, das war es auch schon. Ich hoffe das hat dem ein oder anderen geholfen und natürlich freue Ich mich ueber Kritik und Vorschlägen.

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Bullsh1t (24.04.2016), Dailox (24.04.2016), Starflow (24.04.2016)

Ähnliche Themen

  1. How To To Create a WoW Privat Server! (Neu) (Update 18.8.07)
    Von AnubisDerDunkle im Forum Biete Tutorials
    Antworten: 41
    Letzter Beitrag: 28.08.2008, 20:44
  2. User Button Create
    Von Gumball im Forum VisualBasic
    Antworten: 1
    Letzter Beitrag: 24.08.2008, 14:47
  3. How to create a hidden user with admin rights in XP
    Von meckl im Forum Biete Tutorials
    Antworten: 0
    Letzter Beitrag: 18.03.2008, 19:33
  4. How To To Create a WoW Privat Server! (Update 14.9.07)
    Von MegaKiffer im Forum Biete Tutorials
    Antworten: 0
    Letzter Beitrag: 15.09.2007, 17:33

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •