Om niet telkens het spreekwoordelijke wiel opnieuw uit te (hoeven) vinden, is er de Ansible Galaxy hub, een verzameling rollen die je kunt gebruiken in je Ansible projecten. Zo’n rol kun je zelf ook toevoegen in je eigen namespace in Ansible Galaxy en dan beschikbaar stellen aan de ‘community’. Lees meer…
Categorie archief: Ansible
Zabbix instellen met Ansible inventory
We kunnen natuurlijk inloggen op de node en handmatig Zabbix-Agent installeren maar als we de Ansible Inventory als leidraad aanhouden voor onze nodes dan is deze dus bepalend om de agent te installeren. We kunnen deze dan tevens als ‘desired state’ beschouwen en de playbooks periodiek laten uitvoeren, hetzij door een crontab job, hetzij door Ansible AWX (Tower). Lees hier meer…
Laat Jenkins je Ansible-Playbooks starten
Zodra er een wijziging wordt ge-pushed naar de Git repository, wordt Jenkins getriggered om een build te maken. Dit kan ook de uitvoer van een Ansible-Playbook zijn via een shell script. Hoe je dat instelt lees je hier…
Ansible geeft foutmelding op yum commando
The Python 2 bindings for rpm are needed for this module. If you require Python 3 support use the `dnf` Ansible module instead.
dnf is de nieuwe Package Manager voor rpm. Althans, dat beweren de berichten sinds dnf is toegevoegd aan Fedora (in 2014) maar sinds Fedora 26 worden er serieuze poging gedaan om yum te vervangen. In CentOS 7.5 zal het wellicht de standaard Package Manager worden.
Ansible heeft moeite met de yum-module als b.v. in CentOS python versie 2.7 en versie 3.0 aanwezig is. Ansible gebruikt python v3 en yum gebruikt puthon v2.7.
Helaas is dnf niet aanwezig in de huidige repositories van CentOS 7 en moeten we deze, samen met de afhankelijkheden, handmatig installeren:
sudo yum install centos-release-yum4 sudo yum install yum4 sudo yum4 install dnf-plugins-coresudo yum install dnf
Vervolgens kan nu in je ansible play, dnf gebruikt worden i.p.v. yum!
Mocht hierna echter, de output van Ansible nog steeds een foutmelding geven:
'python2-dnf' is not installed, but it is required for the Ansible dnf module.
Dan kun je het ansible playbook alsvolgt wijzigen:
- name: Installeer een aantal packages dnf: name: "{{ item }}" state: present with_items: "{{ packages required }}
naar:
- name: Installeer een aantal packages package: name: "{{ item }}" state: present with_items: "{{ packages required }}
Puppet versus Ansible
Voor mijn MusicPlayers heb ik zowel Puppet als Ansible gebruikt, onafhankelijk van elkaar en ik zal proberen hier de pro’s en con’s van beide deployment methodieken uit de doeken te doen. Althans, voor zover ik heb gezien en van toepassing is op mijn projecten.