Ontwikkel een Ansible Playbook voor Geautomatiseerde Prestatieoptimalisatie en Resourcebeheer
description
Met deze prompt kun je een Ansible playbook ontwikkelen dat automatisch de prestaties van je infrastructuur bewaakt en resources efficiënt beheert. Dit helpt bij het voorkomen van overbelasting, optimaliseert systeemreacties en vermindert handmatige interventies. Het bespaart tijd en verhoogt de betrouwbaarheid van je DevOps-processen.
prompt
Help me een Ansible playbook te ontwerpen dat automatisch prestatiegegevens verzamelt en resources beheert om optimale werking van mijn infrastructuur te waarborgen. Mijn specifieke prestatieparameters: <voer de te monitoren prestatieparameters in>
Resource limieten: ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Hier is een voorbeeld van een Ansible playbook dat automatische prestatiegegevens verzamelt, resource-limieten controleert en acties onderneemt (zoals het herstarten van een service) wanneer limieten worden overschreden. Dit playbook maakt gebruik van de Ansible modules en commando's om CPU- en geheugengebruik te monitoren, en voert acties uit indien nodig.
```yaml
---
- name: Prestatiegegevens verzamelen en resourcebeheer
hosts: alle
become: yes
vars:
cpu_limit: 75
mem_limit: 80
service_name: jouw_service # vervang door de naam van de service die je wilt beheren
tasks:
- name: Verzamelen CPU- en geheugengebruik
shell: |
# CPU gebruik in procenten
mpstat 1 1 | awk '/Average/ {print 100 - $12}'
# Geheugengebruik in procenten
free | grep Mem | awk '{print ($3 / $2) * 100}'
register: resource_usage
changed_when: false
- name: Parse CPU-gebruik
set_fact:
cpu_usage: "{{ resource_usage.stdout_lines[0] | float }}"
- name: Parse geheugengebruik
set_fact:
mem_usage: "{{ resource_usage.stdout_lines[1] | float }}"
- name: Controleer CPU en geheugengebruik
debug:
msg: "CPU: {{ cpu_usage }}%, Geheugen: {{ mem_usage }}%"
- name: Herstart service bij overschrijding CPU-limiet
service:
name: "{{ service_name }}"
state: restarted
when: cpu_usage > cpu_limit
tags: prestatiebeheer
- name: Herstart service bij overschrijding geheugengebiedlimiet
service:
name: "{{ service_name }}"
state: restarted
when: mem_usage > mem_limit
tags: prestatiebeheer
- name: Rapportage - Service herstart bij overschrijding limiet
debug:
msg: "Service '{{ service_name }}' is herstart vanwege overschrijding limiet."
when: cpu_usage > cpu_limit or mem_usage > mem_limit
tags: rapportage, automatisering
```
**Toelichting:**
- Het playbook verzamelt CPU- en geheugengebruik met behulp van shell-commando's (`mpstat` en `free`).
- Het parseert de output en zet deze om naar float-variabelen.
- Als CPU- of geheugengebruik de ingestelde limieten overschrijdt, wordt de service herstart.
- Rapportage wordt gedaan via de `debug` module, die aangeeft dat de service is herstart vanwege overschrijding.
**Aanpassingen:**
- Vervang `jouw_service` door de naam van de service die je wilt beheren.
- Mogelijk moet je `mpstat` en `free` installeren op je systemen.
- Voor productiegebruik kun je de rapportage uitbreiden naar logs of externe monitoringtools.
**Tags:**
Gebruik de tags `prestatiebeheer`, `resourcebeheer`, `automatisering`, `monitoring`, en `Ansible` om het playbook te categoriseren en gericht uit te voeren.
---
Heeft u verdere wensen of aanpassingen?
provider: deepseek
model: deepseek-chat
Hier is een Ansible playbook dat voldoet aan uw vereisten voor prestatiemonitoring en resourcebeheer:
```yaml
---
- name: Prestatiebewaking en Resourcebeheer
hosts: all
become: yes
vars:
cpu_limiet: 75
geheugen_limiet: 80
te_monitoren_service: "uw-service-naam" # Vervang met uw service naam
tasks:
- name: Verzamel prestatiegegevens
setup:
gather_subset:
- hardware
tags: prestatiebeheer
- name: Toon huidige CPU-belasting
debug:
msg: "Huidige CPU-belasting: {{ ansible_processor_vcpus }} cores, gebruik: {{ ansible_processor_cores }}%"
when: ansible_processor_vcpus is defined
tags: prestatiebeheer
- name: Controleer geheugengebruik
shell: |
free | grep Mem | awk '{print $3/$2 * 100.0}'
register: geheugen_gebruik
changed_when: false
tags: prestatiebeheer
- name: Toon geheugengebruik
debug:
msg: "Huidig geheugengebruik: {{ geheugen_gebruik.stdout | float | round(2) }}%"
tags: prestatiebeheer
- name: Controleer CPU-belasting
shell: |
grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage}'
register: cpu_gebruik
changed_when: false
tags: prestatiebeheer
- name: Toon CPU-belasting
debug:
msg: "Huidige CPU-belasting: {{ cpu_gebruik.stdout | float | round(2) }}%"
tags: prestatiebeheer
- name: Herstart service bij overschrijding CPU-limiet
service:
name: "{{ te_monitoren_service }}"
state: restarted
when:
- cpu_gebruik.stdout | float > cpu_limiet
- te_monitoren_service != "uw-service-naam"
notify: service_herstart_log
tags: [automatisering, resourcebeheer]
- name: Herstart service bij overschrijding geheugenlimiet
service:
name: "{{ te_monitoren_service }}"
state: restarted
when:
- geheugen_gebruik.stdout | float > geheugen_limiet
- te_monitoren_service != "uw-service-naam"
notify: service_herstart_log
tags: [automatisering, resourcebeheer]
handlers:
- name: service_herstart_log
debug:
msg: "Service {{ te_monitoren_service }} herstart wegens overschrijding resource limiet"
tags: monitoring
```
**Aanvullende bestanden voor uitgebreide rapportage:**
`prestatie_vars.yml` (variabelenbestand):
```yaml
---
monitoring_interval: 300 # seconden
rapportage_email: "uw-email@domein.nl"
cpu_waarschuwingsdrempel: 70
geheugen_waarschuwingsdrempel: 75
```
`prestatie_rapportage.yml` (rapportage playbook):
```yaml
---
- name: Genereer prestatie rapportage
hosts: localhost
vars_files:
- prestatie_vars.yml
tasks:
- name: Maak rapportage bestand
template:
src: rapportage.j2
dest: "/var/log/ansible/prestatie_rapport_{{ ansible_date_time.epoch }}.log"
tags: rapportage
```
**Gebruiksaanwijzing:**
1. **Vervang de service naam**: Wijzig `"uw-service-naam"` in de werkelijke service naam
2. **Pas limieten aan**: Wijzig `cpu_limiet` en `geheugen_limiet` indien nodig
3. **Voer playbook uit**:
```bash
ansible-playbook -i inventory.yml prestatie_beheer.yml
```
**Belangrijke kenmerken:**
- Automatische herstart bij overschrijding limieten
- Real-time monitoring van CPU en geheugen
- Gedetailleerde logging van alle acties
- Flexibele configuratie via variabelen
- Uitbreidbaar voor aanvullende metriek
**Tags voor gericht gebruik:**
```bash
ansible-playbook -i inventory.yml prestatie_beheer.yml --tags "prestatiebeheer"
ansible-playbook -i inventory.yml prestatie_beheer.yml --tags "automatisering"
ansible-playbook -i inventory.yml prestatie_beheer.yml --tags "monitoring"
```