Table of Contents

Uitvoeren van Linux patches en updates met Ansible

In de snelle en veiligheidsbewuste wereld van vandaag is het automatisch** patchen en updaten van Linux-systemen van cruciaal belang om de stabiliteit van het systeem te garanderen en kwetsbaarheden te beperken. Met het grote aantal beschikbare Linux-distributies kan het een uitdaging zijn om updates voor verschillende platforms efficiënt te beheren. Gelukkig biedt Ansible, een krachtige automatiseringstool, een uniforme oplossing voor het automatiseren van patching en updates voor verschillende Linux-distributies. In dit artikel onderzoeken we hoe we Ansible kunnen gebruiken om het patchen en updaten te automatiseren voor Debian-gebaseerde, Ubuntu-gebaseerde, RHEL-gebaseerde, Alpine-gebaseerde, en andere distributies. We geven ook een gedetailleerd voorbeeld van een Ansible playbook voor het installeren van patches en updates op verschillende Linux-distro’s, samen met instructies voor het instellen van Ansible-referenties en hostbestanden voor alle beoogde systemen.

Vereisten

Voordat we in het automatiseringsproces duiken, moeten we ervoor zorgen dat de noodzakelijke voorwaarden aanwezig zijn. Deze omvatten:

  1. Ansible installatie: Om Ansible te gebruiken, moet u het installeren op het systeem van waaruit u de automatiseringstaken gaat uitvoeren. U kunt de officiële Ansible documentatie volgen op how to install Ansible voor gedetailleerde instructies.

  2. Inventarisconfiguratie: Maak een inventarisbestand aan waarin de doelsystemen staan die u met Ansible wilt beheren. Van elk systeem moet het IP-adres of de hostnaam worden opgegeven. U kunt bijvoorbeeld een inventarisbestand maken met de naam hosts.ini met de volgende inhoud:

[debian]
debian-host ansible_host=<debian_ip_address>

[ubuntu]
ubuntu-host ansible_host=<ubuntu_ip_address>

[rhel]
rhel-host ansible_host=<rhel_ip_address>

[alpine]
alpine-host ansible_host=<alpine_ip_address>

Vervang <debian_ip_address> <ubuntu_ip_address> <rhel_ip_address> en <alpine_ip_address> met de respectieve IP-adressen of hostnamen van de doelsystemen.

  1. SSH-toegang: Zorg ervoor dat u SSH-toegang hebt tot de doelsystemen met behulp van SSH-sleutelgebaseerde authenticatie. Hierdoor kan Ansible veilig verbinding maken met de systemen en de nodige taken uitvoeren.

Ansible Playbook voor patchen en updaten

Om het patchen en updaten voor verschillende Linux distributies te automatiseren, kunnen we een Ansible playbook maken dat patches en updates op verschillende distro’s installeert. Hieronder staat een voorbeeld playbook:

---
- name: Patching and Updating Linux Systems
  hosts: all
  become: yes

  tasks:
    - name: Update Debian-based Systems
      when: ansible_os_family == 'Debian'
      apt:
        update_cache: yes
        upgrade: dist

    - name: Update RHEL-based Systems
      when: ansible_os_family == 'RedHat'
      yum:
        name: '*'
        state: latest

    - name: Update Alpine-based Systems
      when: ansible_os_family == 'Alpine'
      apk:
        update_cache: yes
        upgrade: yes

In het bovenstaande draaiboek:

  • De hosts regel specificeert de doelsystemen voor elke taak. Het playbook zal draaien op systemen gegroepeerd onder debian ubuntu rhel en alpine
  • De become: yes statement laat het playbook draaien met beheerdersrechten.
  • De eerste taak werkt Debian-gebaseerde en Ubuntu-gebaseerde systemen bij met behulp van het apt module.
  • De tweede taak werkt RHEL-gebaseerde systemen bij met behulp van de yum module.
  • De derde taak werkt Alpine-systemen bij met behulp van de apk module.

Merk op dat de taken worden geconditioneerd op basis van de groepsnamen om de juiste systemen aan te spreken.

Ansible Credentials en Host Files instellen

Volg deze stappen om Ansible credentials en hostbestanden te configureren voor de beoogde systemen:

  1. Maak een Ansible Vault bestand aan om gevoelige informatie zoals SSH credentials op te slaan. U kunt het volgende commando gebruiken om een vault-bestand te maken:
ansible-vault create credentials.yml
  1. Werk het inventarisbestand bij (hosts.ini met de juiste SSH-referenties voor elk doelsysteem. Bijvoorbeeld:
[debian]
debian-host ansible_host=<debian_ip_address> ansible_user=<debian_username> ansible_ssh_pass=<debian_ssh_password>

[ubuntu]
ubuntu-host ansible_host=<ubuntu_ip_address> ansible_user=<ubuntu_username> ansible_ssh_pass=<ubuntu_ssh_password>

[rhel]
rhel-host ansible_host=<rhel_ip_address> ansible_user=<rhel_username> ansible_ssh_pass=<rhel_ssh_password>

[alpine]
alpine-host ansible_host=<alpine_ip_address> ansible_user=<alpine_username> ansible_ssh_pass=<alpine_ssh_password>

Vervang <debian_ip_address> <ubuntu_ip_address> <rhel_ip_address> en <alpine_ip_address> met de respectieve IP-adressen van de doelsystemen. Vervang ook <debian_username> <ubuntu_username> <rhel_username> en <alpine_username> met de juiste SSH-gebruikersnamen voor elk systeem. Vervang ten slotte <debian_ssh_password> <ubuntu_ssh_password> <rhel_ssh_password> en <alpine_ssh_password> met de bijbehorende SSH-wachtwoorden.

  1. Versleutel het hosts.ini bestand met behulp van de Ansible Vault:
ansible-vault encrypt hosts.ini

Geef het wachtwoord van de kluis wanneer daarom wordt gevraagd.

Met de bovenstaande stappen hebt u de nodige Ansible-referenties en hostbestanden ingesteld voor alle beoogde systemen.

Het playbook uitvoeren

Volg deze stappen om het playbook uit te voeren en het patchen en updaten te automatiseren:

  1. Open een terminal en navigeer naar de map waar u het playbook-bestand en het versleutelde inventarisbestand hebt.

  2. Voer het volgende commando uit om het playbook uit te voeren en geef het wachtwoord van de kluis op wanneer daarom wordt gevraagd:

ansible-playbook -i hosts.ini playbook.yml --ask-vault-pass
  1. Ansible maakt verbinding met de doelsystemen, gebruikt de verstrekte referenties, voert de gespecificeerde taken uit en werkt de systemen dienovereenkomstig bij.

Gefeliciteerd! U hebt met succes het patchen en updaten van verschillende Linux-distributies geautomatiseerd met behulp van Ansible. Met het Ansible playbook en de juiste instelling van credentials en hostbestanden kunt u nu het patchen en updaten van uw Linux-infrastructuur efficiënt beheren.

Conclusie

Het automatiseren van het patchen en updaten van Linux systemen met Ansible vereenvoudigt en stroomlijnt het proces, waardoor systeembeheerders efficiënt updates voor verschillende Linux distributies kunnen beheren. Door de instructies in dit artikel te volgen, hebt u geleerd hoe u een Ansible playbook maakt dat patches en updates op verschillende Linux-distro’s installeert. Bovendien hebt u Ansible-referenties en hostbestanden ingesteld om de gewenste systemen te targeten. Omarm de kracht van automatisering en geniet van de voordelen van een veilige en goed onderhouden Linux-infrastructuur.

Referenties

  1. Ansible Documentation
  2. Official Ansible Installation Guide