Previously we have installed nrpe checks and additional utils with bash script. Let’s install same configuration with simple Ansible:
Advantages of a deployment tool such as Ansible over bash script:
– We can run Ansible playbook many times and result will be the same as we desired (Idempotence)
– We can run Ansible playbook on multiple Nodes with one command
[root@ansible nagios]# tree
.
├── aw.awk
├── check_raid
├── check_raid.pl
├── check_smart
├── check_smart.pl
├── nagios.yaml
└── nrpe.cfg
--- - hosts: All remote_user: root tasks: - name: install epel yum: name: epel-release state: present - name: install nrpe yum: name: nrpe state: present - name: install nagios plugins & utils yum: name: [ 'nagios-plugins', 'nagios-common', 'nagios-plugins-load', 'nagios-plugins-uptime', 'smartmontools' ] state: present - name: install MegaCli yum: name: http://mirror.cogentco.com/pub/misc/MegaCli-8.07.14-1.noarch.rpm state: present - name: Symlink MegaCli file: src: /opt/MegaRAID/MegaCli/MegaCli64 dest: /usr/bin/MegaCli owner: root group: root state: link - name: deploy check_raid.pl copy: src: /etc/ansible/playbook/nagios/check_raid.pl dest: /usr/lib64/nagios/plugins/check_raid.pl owner: root group: root mode: 0755 - name: deploy aw.awk copy: src: /etc/ansible/playbook/nagios/aw.awk dest: /usr/lib64/nagios/plugins/aw.awk owner: root group: root mode: 0644 - name: deploy sudoers check_raid copy: src: /etc/ansible/playbook/nagios/check_raid dest: /etc/sudoers.d/check_raid owner: root group: root mode: 0440 - name: deploy check_smart.pl copy: src: /etc/ansible/playbook/nagios/check_smart.pl dest: /usr/lib64/nagios/plugins/check_smart.pl owner: root group: root mode: 0755 - name: deploy sudoers check_smart copy: src: /etc/ansible/playbook/nagios/check_smart dest: /etc/sudoers.d/check_smart owner: root group: root mode: 0440 - name: deploy nrpe.cfg copy: src: /etc/ansible/playbook/nagios/nrpe.cfg dest: /etc/nagios/nrpe.cfg register: deploy_nrpe handlers: - name: restart nrpe service: name: nrpe state: restarted
[root@ansible nagios]# ansible-lint nagios.yaml
[root@ansible nagios]# ansible-playbook nagios.yaml