Ansible lab maken

Om me verder te ontwikkelen ben ik na Docker en Kubernetes ook gaan kijken naar Ansible. Ansible is een automation tool, waarmee je apparaten kan beheren. Dit hoeven niet alleen servers te zijn, maar dit kan eigenlijk alles zijn met ssh toegang.

Om een lab te maken gebruiken we weer Virtualbox. Dit werk om alle gangbare systemen. Wat we het beste kunnen doen is eerst 1 CentOS systeem maken deze zo ver mogelijk installeren en deze dan clonen. Dit werkt namelijk het snelst.
Download de CentOS iso, waarmee we de installatie kunnen doen.
Het stappen plan ziet er als volgt uit:
Maak een nieuwe VM aan in VitrualBox. Deze moet de volgende resources hebben:

  • 1 CPU
  • 1 GB geheugen
  • 1 Harddisk van 25 GB
  • 2 netwerkkaarten
    – 1e stellen we in als Bridge Adapter (Paravirtualized)
    – 2e stellen we in als Host Only Netwerk
  • 1 CD-rom drive welke we koppelen aan de CentOS iso

We voeren een standaard installatie uit van CentOS. En updaten de repository. Nu is de basis installatie compleet. Deze installatie gaan we clonen. Zodat we 1 master en een aantal nodes hebben. Nadat we deze nodes gemaakt hebben starten we ze een voor een op en noteren het ip adres van de 2e kaarten.
We veranderen de hostnames de 1e server noemen we bijv. test1.servers.net, test2.servers.net en test3.servers.net.
Op al deze nodes vullen we de ipadressen in in de /etc/hosts file. Zodat deze apparaten elkaar op naam kunnen bereiken.

Hoewel Ansible geen echter server client omgeving is, omdat alles over ssh gebeurd, heb je toch een soort van server nodig waarmee je alles managed. Deze gaan we als eerste in orde maken

yum install epel-release
yum update
yum install git python python-devel python -pip openssl ansible vim
vim /etc/ansible/ansible.cfg

Hierin halen we # weg voor inventory en voor sudo. Hiermee regelen we dat er een centrale host inventory is en dat als we het commando -s geven we als sudo de root user gebruiken.

Vervolgens kunnen we onze hosts gaan toevoegen in /etc/ansible/hosts
We kunnen groepen aanmaken met daarbij hosts names. Dit kan er bijv. alsvolgt uitzien:

[local]
localhost

[centos]
test1.servers.net

[debian]
test2.servers.net

Aangezien we niet alles als root willen uitvoeren is het belangrijk om een aparte user voor ansible aan te maken. Dit doen we op elke node waarop we ansible willen gaan gebruiken, dus niet alleen op localhost maar ook op test1.server.net en test2.server.net

adduser ansible
passwd ansible

Vervolgens zorgen we ervoor dat deze user sudo kan gebruiken

visudo

en voegen onder root de volgende regel toe:

ansible ALL=(ALL)   NOPASSWD: ALL

Hierna moeten we een keypair maken voor ssh. Dit doen we op de “server”

su ansible -
ssh-keygen
ssh-copy-id localhost
ssh-copy-id ansible@test1.servers.net
ssh-copy-id ansible@test2.servers.net

en eventueel meer servers.

Als we dit gedaan hebben is onze lab omgeving klaar en kunnen we lekker gaan testen met Ansible.