From 1b06ca431d363ec684b3dc47542f5e015ae15a6c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20-=20Le=20Filament?= <remi@le-filament.com>
Date: Wed, 5 Jul 2023 15:11:40 +0200
Subject: [PATCH] [UPD] ansible-lint

---
 .ansible-lint     |   7 ++
 .yamllint         |  39 +++++++++++
 defaults/main.yml |  26 +++----
 handlers/main.yml |   8 +--
 meta/main.yml     |  31 ++++-----
 tasks/main.yml    | 169 +++++++++++++++++++++++-----------------------
 6 files changed, 162 insertions(+), 118 deletions(-)
 create mode 100644 .ansible-lint
 create mode 100644 .yamllint

diff --git a/.ansible-lint b/.ansible-lint
new file mode 100644
index 0000000..8d40d06
--- /dev/null
+++ b/.ansible-lint
@@ -0,0 +1,7 @@
+---
+warn_list:  # or 'skip_list' to silence them completely
+    - git-latest  # Git checkouts must contain explicit version
+    - ignore-errors  # Use failed_when and specify error conditions instead of using ignore_errors
+    - no-changed-when  # Commands should not change things if nothing needs doing
+    - no-handler  # Tasks that run when changed should likely be handlers
+    - package-latest  # Package installs should not use latest
diff --git a/.yamllint b/.yamllint
new file mode 100644
index 0000000..fbebdb8
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,39 @@
+---
+# Based on ansible-lint config
+extends: default
+
+rules:
+    braces:
+        max-spaces-inside: 1
+        level: error
+    brackets:
+        max-spaces-inside: 1
+        level: error
+    colons:
+        max-spaces-after: -1
+        level: error
+    commas:
+        max-spaces-after: -1
+        level: error
+    # comments enable
+    comments: enable
+    comments-indentation: enable
+    document-start: enable
+    empty-lines:
+        max: 3
+        level: error
+    hyphens:
+        level: error
+    indentation:
+        level: warning
+        indent-sequences: consistent
+        spaces: 4
+        check-multi-line-strings: true
+    key-duplicates: enable
+    line-length: disable
+    new-line-at-end-of-file: enable
+    new-lines:
+        type: unix
+    # trailing-spaces enable
+    trailing-spaces: enable
+    truthy: enable
diff --git a/defaults/main.yml b/defaults/main.yml
index ae4454e..0e02c43 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -4,19 +4,19 @@ nagios_url: "nagios.example.org"
 
 # Webhooks to be triggered daily
 webhooks_to_be_called_daily:
-  - name: Docker Odoo
-    url: gitlab.example.org
-    uri: "/api/v4/projects/xx/ref/REF_NAME/trigger/pipeline?token=TOKEN"
+    - name: Docker Odoo
+      url: gitlab.example.org
+      uri: "/api/v4/projects/xx/ref/REF_NAME/trigger/pipeline?token=TOKEN"
 
 # List of external services to be monitored
 services_to_be_monitored:
-  - name: Webmail
-    period: generic
-    service: https
-    url: mail.example.org
-    uri: /webmail/
-  - name: Certificate IMAP
-    period: daily
-    service: certif
-    url: mail.example.org
-    uri: 993
+    - name: Webmail
+      period: generic
+      service: https
+      url: mail.example.org
+      uri: /webmail/
+    - name: Certificate IMAP
+      period: daily
+      service: certif
+      url: mail.example.org
+      uri: 993
diff --git a/handlers/main.yml b/handlers/main.yml
index 468d4cd..e1bb036 100644
--- a/handlers/main.yml
+++ b/handlers/main.yml
@@ -1,6 +1,6 @@
 ---
 
-- name: restart nagios docker
-  docker_compose:
-    project_src: /home/docker/nagios/
-    restarted: true
+- name: Restart nagios docker
+  community.docker.docker_compose:
+      project_src: /home/docker/nagios/
+      restarted: true
diff --git a/meta/main.yml b/meta/main.yml
index ef34bed..9f02c7e 100644
--- a/meta/main.yml
+++ b/meta/main.yml
@@ -1,19 +1,16 @@
 ---
 galaxy_info:
-  author: Rémi
-  description: This role deploys Nagios with Docker to monitor all other defined servers
-  company: Le Filament (https://le-filament.com)
-  license: AGPL-3.0-or-later
-  min_ansible_version: 2.1
-  platforms:
-    - name: EL
-      versions:
-        - 7
-    - name: Ubuntu
-      versions:
-        - xenial
-        - bionic
-        - focal
-  galaxy_tags:
-    - nagios
-    - monitoring
+    author: lefilament
+    description: This role deploys Nagios with Docker to monitor all other defined servers
+    company: Le Filament (https://le-filament.com)
+    license: AGPL-3.0-or-later
+    min_ansible_version: "2.1"
+    platforms:
+        - name: Ubuntu
+          versions:
+              - xenial
+              - bionic
+              - focal
+    galaxy_tags:
+        - nagios
+        - monitoring
diff --git a/tasks/main.yml b/tasks/main.yml
index 53a396e..e4631ac 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,102 +1,103 @@
 ---
 
 ## Install Nagios docker
-- name: create Nagios docker structure on server in /home/docker/nagios
-  file:
-    name: "{{ item }}"
-    state: directory
-    owner: '999'
-    group: '1000'
-    mode: '0755'
+- name: Create Nagios docker structure on server in /home/docker/nagios
+  ansible.builtin.file:
+      name: "{{ item }}"
+      state: directory
+      owner: '999'
+      group: '1000'
+      mode: '0755'
   with_items:
-    - /home/docker/nagios/etc/objects
-    - /home/docker/nagios/stylesheets
+      - /home/docker/nagios/etc/objects
+      - /home/docker/nagios/stylesheets
 
 - name: Copy nagios docker-compose file
-  template:
-    src: nagios.yaml.j2
-    dest: /home/docker/nagios/docker-compose.yaml
-    mode: '0644'
-  notify: restart nagios docker
+  ansible.builtin.template:
+      src: nagios.yaml.j2
+      dest: /home/docker/nagios/docker-compose.yaml
+      mode: '0644'
+  notify: Restart nagios docker
 
-- name: copy configuration files
-  copy:
-    src: "{{ item }}"
-    dest: /home/docker/nagios/etc/{{ item }}
-    mode: '0644'
-    owner: '999'
-    group: '1000'
+- name: Copy configuration files
+  ansible.builtin.copy:
+      src: "{{ item }}"
+      dest: /home/docker/nagios/etc/{{ item }}
+      mode: '0644'
+      owner: '999'
+      group: '1000'
   with_items:
-    - cgi.cfg
-    - nagios.cfg
-    - resource.cfg
-  notify: restart nagios docker
+      - cgi.cfg
+      - nagios.cfg
+      - resource.cfg
+  notify: Restart nagios docker
   tags: nagios_config
 
-- name: copy CSS files
-  copy:
-    src: "{{ item }}"
-    dest: /home/docker/nagios/stylesheets/{{ item }}
-    mode: '0644'
-    owner: '999'
-    group: '1000'
+- name: Copy CSS files
+  ansible.builtin.copy:
+      src: "{{ item }}"
+      dest: /home/docker/nagios/stylesheets/{{ item }}
+      mode: '0644'
+      owner: '999'
+      group: '1000'
   with_items:
-    - avail.css
-    - checksanity.css
-    - cmd.css
-    - common.css
-    - config.css
-    - extinfo.css
-    - histogram.css
-    - histogramgraph.css
-    - history.css
-    - jsonquery.css
-    - map.css
-    - map-directive.css
-    - ministatus.css
-    - nag_funcs.css
-    - notifications.css
-    - outages.css
-    - showlog.css
-    - status.css
-    - statusmap.css
-    - summary.css
-    - tac.css
-    - trends.css
-    - trendsgraph.css
-  notify: restart nagios docker
+      - avail.css
+      - checksanity.css
+      - cmd.css
+      - common.css
+      - config.css
+      - extinfo.css
+      - histogram.css
+      - histogramgraph.css
+      - history.css
+      - jsonquery.css
+      - map.css
+      - map-directive.css
+      - ministatus.css
+      - nag_funcs.css
+      - notifications.css
+      - outages.css
+      - showlog.css
+      - status.css
+      - statusmap.css
+      - summary.css
+      - tac.css
+      - trends.css
+      - trendsgraph.css
+  notify: Restart nagios docker
   tags: nagios_config
 
-- name: copy objects configuration files
-  template:
-    src: "{{ item }}.j2"
-    dest: /home/docker/nagios/etc/objects/{{ item }}
-    mode: '0644'
-    owner: '999'
-    group: '1000'
+- name: Copy objects configuration files
+  ansible.builtin.template:
+      src: "{{ item }}.j2"
+      dest: /home/docker/nagios/etc/objects/{{ item }}
+      mode: '0644'
+      owner: '999'
+      group: '1000'
   with_items:
-    - vps.cfg
-    - localhost.cfg
-    - templates.cfg
-    - contacts.cfg
-    - commands.cfg
-    - timeperiods.cfg
-  notify: restart nagios docker
+      - vps.cfg
+      - localhost.cfg
+      - templates.cfg
+      - contacts.cfg
+      - commands.cfg
+      - timeperiods.cfg
+  notify: Restart nagios docker
   tags: nagios_config
 
-- name: create apache2 dir on server in /home/docker/nagios
-  file:
-    name: /home/docker/nagios/apache2
-    owner: 'root'
-    group: 'root'
-    mode: '0755'
-    state: directory
+- name: Create apache2 dir on server in /home/docker/nagios
+  ansible.builtin.file:
+      name: /home/docker/nagios/apache2
+      owner: 'root'
+      group: 'root'
+      mode: '0755'
+      state: directory
 
-- name: install apache2 configuration files
-  copy:
-    src: "{{ item }}"
-    dest: /home/docker/nagios/apache2/{{ item }}
-    mode: '0644'
+- name: Install apache2 configuration files
+  ansible.builtin.copy:
+      src: "{{ item }}"
+      dest: /home/docker/nagios/apache2/{{ item }}
+      mode: '0644'
   with_items:
-    - 000-default.conf
-    - nagios.conf
+      - 000-default.conf
+      - nagios.conf
+  notify: Restart nagios docker
-- 
GitLab