Kent, UK

The problem

As the number of Linux systems grows, manual configuration becomes inconsistent and recovery knowledge gets trapped in shell history.

What I did

I am developing Ansible-based baselines that reflect real tasks already performed manually in the environment.

  • Package installation and update policy
  • Users, SSH keys and service accounts
  • Zabbix/Wazuh agent deployment
  • Configuration templates and systemd services
  • Firewall and application-policy files
  • Documented variables for host-specific differences

Implementation notes

Representative commands from the way I diagnose and maintain this project. Public examples use placeholders instead of credentials or sensitive addresses.

Baseline execution pattern
# Validate inventory and connectivity
ansible-inventory -i inventory/hosts.yml --graph
ansible all -i inventory/hosts.yml -m ping

# Preview changes before applying them
ansible-playbook -i inventory/hosts.yml playbooks/baseline.yml --check --diff

# Apply a tagged baseline to a controlled host group
ansible-playbook -i inventory/hosts.yml playbooks/baseline.yml \
  --limit linux_servers --tags packages,users,monitoring

# Run syntax and lint checks first
ansible-playbook playbooks/baseline.yml --syntax-check
ansible-lint playbooks/baseline.yml

Result

This gives me credible hands-on configuration-management experience while keeping the scope honest: a serious lab and small environment, not a fictional enterprise fleet.