3.6 KiB
Quick context for AI coding agents
This repository contains simple Ansible playbooks and Nagios check scripts. Keep guidance tightly focused on discoverable patterns so contributors can be productive immediately.
Key files and layout
site.yml— the top-level Ansible play that applies thepipsrole to hosts.roles/pips/files/— place for executable check scripts (e.g.memory_usage.py).roles/pips/tasks/main.yml— role tasks (currently empty); add tasks here to deploy and configure scripts.roles/pips/vars/main.yml— role-scoped variables (currently empty).README.md— short Dutch summary: "Scripts voor nagios services".
Big-picture architecture
- This repo is a small Ansible-based deployment of Nagios/NRPE checks. The pattern is:
- Author a script under
roles/pips/files/(executable, Python3-friendly). - Add Ansible tasks in
roles/pips/tasks/main.ymlto copy/install the script on target hosts and ensure runtime deps (e.g.psutil) are present. - Configure Nagios/NRPE on the host to call the deployed script.
- Author a script under
-Project-specific conventions
- Keep scripts in
roles/pips/files/. Scripts should include a shebang (for example, use/usr/bin/env python3on the first line) and be executable. - Use
roles/pips/tasks/main.ymlfor deployment tasks; do not add ad-hoc tasks at the repo root. - Put per-role variables in
roles/pips/vars/main.yml.
Dependencies & integration points
roles/pips/files/memory_usage.pyimportspsutil. Ensurepython3and thepsutilpackage are installed on target hosts (via distro packagepython3-psutilorpip3 install psutil).- Scripts are intended to be run by Nagios or NRPE; be mindful of expected stdout/exit codes for Nagios plugins (0 OK, 1 WARNING, 2 CRITICAL, 3 UNKNOWN).
Example actionable tasks (add to roles/pips/tasks/main.yml):
- name: Deploy memory_usage check
copy:
src: memory_usage.py
dest: /usr/local/bin/memory_usage.py
mode: '0755'
owner: root
group: root
- name: Ensure psutil is installed (Debian/Ubuntu)
apt:
name: python3-psutil
state: present
become: yes
Debugging & developer workflows
- Run the Ansible playbook locally against an inventory:
ansible-playbook -i <hosts> site.yml -u <user> --ask-become-pass. - To test a script locally on a host, run
python3 roles/pips/files/memory_usage.py(or copy it to the host and run it with the same python interpreter Nagios will use). - If adding or changing a script, ensure it's executable and returns Nagios-compatible exit codes and concise output.
What to avoid / common mistakes
- Don’t add runtime installation tasks outside
roles/pips/tasks/main.yml— keep role self-contained. - Don’t assume
psutilexists on the host; document and/or install it in the role tasks.
When merging or extending
- If a
.github/copilot-instructions.mdalready exists, preserve any project-specific notes and only append or update sections that are stale. - Keep instructions concise (20–50 lines). Use exact filenames and short code snippets (as above) to illustrate patterns.
If anything is unclear about runtime expectations (NRPE config, target paths, or packaging), ask a human: indicate the host OS and desired plugin location and the agent will propose exact task snippets.
Files referenced while drafting these instructions: README.md, site.yml, roles/pips/files/memory_usage.py, roles/pips/tasks/main.yml, roles/pips/vars/main.yml.
Next step: I can merge this into the repo now. Tell me if you want different default install paths (e.g. /usr/lib/nagios/plugins) or an explicit requirements.txt for script dependencies.