From 6858cc5293a85bced4e0736df13f45fc9606729d Mon Sep 17 00:00:00 2001
From: Lars Beckers <lars.beckers@rwth-aachen.de>
Date: Thu, 13 Dec 2018 18:57:28 +0100
Subject: [PATCH] lint yaml files

---
 .yamllint                         |  19 ++++++
 zabbix-agent/handlers/main.yml    |   1 -
 zabbix-agent/tasks/main.yml       |  31 ++++++---
 zabbix-frontend/defaults/main.yml |   2 +-
 zabbix-frontend/handlers/main.yml |   1 -
 zabbix-frontend/tasks/main.yml    |  33 ++++++---
 zabbix-repo/handlers/main.yml     |   3 +-
 zabbix-repo/tasks/main.yml        |  37 +++++-----
 zabbix-server/handlers/main.yml   |   1 -
 zabbix-server/tasks/main.yml      | 108 ++++++++++++++++++++----------
 zabbix-server/tasks/snmp.yml      |  11 ++-
 11 files changed, 167 insertions(+), 80 deletions(-)
 create mode 100644 .yamllint

diff --git a/.yamllint b/.yamllint
new file mode 100644
index 0000000..cca80e2
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,19 @@
+---
+
+extends: default
+
+rules:
+  comments-indentation:
+    level: warning
+  document-start:
+    level: error
+  empty-lines:
+    max: 1
+  empty-values:
+    forbid-in-flow-mappings: true
+    forbid-in-block-mappings: true
+  line-length:
+    level: warning
+  octal-values:
+    forbid-implicit-octal: true
+    level: warning
diff --git a/zabbix-agent/handlers/main.yml b/zabbix-agent/handlers/main.yml
index 36084c3..da5b63a 100644
--- a/zabbix-agent/handlers/main.yml
+++ b/zabbix-agent/handlers/main.yml
@@ -2,4 +2,3 @@
 
 - name: restart zabbix agent
   service: name=zabbix-agent state=restarted
-
diff --git a/zabbix-agent/tasks/main.yml b/zabbix-agent/tasks/main.yml
index f1193ec..57fe997 100644
--- a/zabbix-agent/tasks/main.yml
+++ b/zabbix-agent/tasks/main.yml
@@ -1,31 +1,40 @@
 ---
 
 - name: ensure the agent package is installed
-  apt: name=zabbix-agent state=latest
+  apt:
+    name: zabbix-agent
+    state: present
   notify:
     - restart zabbix agent
   tags:
-    - packages
     - zabbix
 
 - name: ensure the agent is configured
-  template: src=zabbix_agentd.conf.j2 dest=/etc/zabbix/zabbix_agentd.conf
+  template:
+    src: zabbix_agentd.conf.j2
+    dest: /etc/zabbix/zabbix_agentd.conf
   notify:
     - restart zabbix agent
   tags:
     - zabbix
 
 # TODO
-#- name: create directory for external scripts
-#  file: path=/usr/local/lib/zabbix/externalscripts state=directory owner=root group=root mode=0755
-#  tags:
-#    - service
-#    - zabbix
+# - name: create directory for external scripts
+#   file:
+#     path: /usr/local/lib/zabbix/externalscripts
+#     state: directory
+#     owner: root
+#     group: root
+#     mode: '0755'
+#   tags:
+#     - zabbix
 
 - name: ensure the server is enabled and running
-  service: name=zabbix-agent state=started enabled=yes
+  service:
+    name: zabbix-agent
+    state: started
+    enabled: true
   tags:
-    - service
     - zabbix
 
 - name: ensure zabbix-smart-check is installed
@@ -36,7 +45,7 @@
     state: present
   when: "'baremetal' in group_names"
   tags:
-    - packages
+    - zabbix
     - hardware-tools
     - chr
 
diff --git a/zabbix-frontend/defaults/main.yml b/zabbix-frontend/defaults/main.yml
index 75f1da8..85937ed 100644
--- a/zabbix-frontend/defaults/main.yml
+++ b/zabbix-frontend/defaults/main.yml
@@ -1,3 +1,3 @@
 ---
 
-zabbix_configure_webserver: yes
+zabbix_configure_webserver: true
diff --git a/zabbix-frontend/handlers/main.yml b/zabbix-frontend/handlers/main.yml
index 8f871da..1ea243d 100644
--- a/zabbix-frontend/handlers/main.yml
+++ b/zabbix-frontend/handlers/main.yml
@@ -15,4 +15,3 @@
 
 - name: restart nginx
   service: name=nginx state=restarted
-
diff --git a/zabbix-frontend/tasks/main.yml b/zabbix-frontend/tasks/main.yml
index 9340c5b..f20fbf1 100644
--- a/zabbix-frontend/tasks/main.yml
+++ b/zabbix-frontend/tasks/main.yml
@@ -1,31 +1,42 @@
 ---
 
 - name: ensure the frontend package is installed
-  apt: name=zabbix-frontend-php state=latest
+  apt:
+    name: zabbix-frontend-php
+    state: present
   notify:
     - restart zabbix frontend
   tags:
-    - packages
     - zabbix
 
 - name: ensure php5-pgsql is available
-  apt: name=php5-pgsql state=latest
+  apt:
+    name: php5-pgsql
+    state: present
   notify:
     - restart zabbix frontend
   tags:
-    - packages
     - zabbix
 
 - name: ensure a user executing the app exists
-  user: name=zabbix system=yes home=/usr/share/zabbix shell=/usr/sbin/nologin createhome=no group=zabbix state=present
+  user:
+    name: zabbix
+    system: true
+    home: /usr/share/zabbix
+    shell: /usr/sbin/nologin
+    createhome: false
+    group: zabbix
+    state: present
   notify:
     - restart zabbix frontend
   tags:
-    - user
     - zabbix
 
 - name: ensure the database server listens on the external interface
-  replace: dest=/etc/postgresql/9.6/main/postgresql.conf regexp="#listen_addresses = 'localhost'" replace="listen_addresses = '*'"
+  replace:
+    dest: /etc/postgresql/9.6/main/postgresql.conf
+    regexp: "#listen_addresses = 'localhost'"
+    replace: "listen_addresses = '*'"
   notify:
     - restart postgres
   delegate_to: "{{ zabbix_db_host }}"
@@ -34,7 +45,13 @@
     - zabbix
 
 - name: ensure the database server allows connections from the server
-  lineinfile: dest=/etc/postgresql/9.6/main/pg_hba.conf insertafter="host    all             all             127.0.0.1/32            md5" line="host    {{ zabbix_db_name }}          {{ zabbix_db_user }}          {{ ansible_fqdn }} md5" state=present
+  lineinfile:
+    dest: /etc/postgresql/9.6/main/pg_hba.conf
+    # yamllint disable-line rule:line-length
+    insertafter: "host    all             all             127.0.0.1/32            md5"
+    # yamllint disable-line rule:line-length
+    line: "host    {{ zabbix_db_name }}          {{ zabbix_db_user }}          {{ ansible_fqdn }} md5"
+    state: present
   notify:
     - restart postgres
   delegate_to: "{{ zabbix_db_host }}"
diff --git a/zabbix-repo/handlers/main.yml b/zabbix-repo/handlers/main.yml
index bb8554c..5c02aac 100644
--- a/zabbix-repo/handlers/main.yml
+++ b/zabbix-repo/handlers/main.yml
@@ -1,5 +1,4 @@
 ---
 
 - name: update apt cache
-  apt: update_cache=yes
-
+  apt: update_cache=true
diff --git a/zabbix-repo/tasks/main.yml b/zabbix-repo/tasks/main.yml
index 5e31859..d4a5af9 100644
--- a/zabbix-repo/tasks/main.yml
+++ b/zabbix-repo/tasks/main.yml
@@ -1,58 +1,65 @@
 ---
-# this essentially does what zabbix-release does, but does not mitigate package signing
+# this essentially does what zabbix-release does
+# but does not mitigate package signing
 
 - name: ensure apt got the key to verify the zabbix repo
-  apt_key: data="{{lookup('file', 'zabbix.gpg')}}" state=present
+  apt_key:
+    data: "{{lookup('file', 'zabbix.gpg')}}"
+    state: present
   notify:
     - update apt cache
   tags:
-    - packages
     - repos
     - zabbix
 
-- name: ensure apt knows about the zabbix repo
-  apt_repository: repo={{ item }} state=absent
+- name: ensure apt doest not know about old zabbix repos
+  apt_repository:
+    repo: "{{ item }}"
+    state: absent
   with_items:
     - 'deb http://repo.zabbix.com/zabbix/3.0/debian {{ debian_version }} main'
+    # yamllint disable-line rule:line-length
     - 'deb-src http://repo.zabbix.com/zabbix/3.0/debian {{ debian_version }} main'
   notify:
     - update apt cache
   tags:
-    - packages
     - repos
     - zabbix
 
-
-- name: ensure apt knows about the zabbix repo
-  apt_repository: repo={{ item }} state=present
+- name: ensure apt knows about the current zabbix repo
+  apt_repository:
+    repo: "{{ item }}"
+    state: present
   with_items:
     - 'deb http://repo.zabbix.com/zabbix/3.4/debian {{ debian_version }} main'
+    # yamllint disable-line rule:line-length
     - 'deb-src http://repo.zabbix.com/zabbix/3.4/debian {{debian_version }} main'
   notify:
     - update apt cache
   tags:
-    - packages
     - repos
     - zabbix
 
 - name: ensure chr's key is present
-  apt_key: data="{{lookup('file', 'chr.gpg')}}" state=present 
+  apt_key:
+    data: "{{lookup('file', 'chr.gpg')}}"
+    state: present
   notify:
     - update apt cache
   tags:
-    - packages
-    - repos 
+    - repos
     - zabbix
     - chr
 
 - name: ensure chr's repo is present
-  apt_repository: repo={{ item }} state=present
+  apt_repository:
+    repo: "{{ item }}"
+    state: present
   with_items:
     - 'deb http://repository.chr.istoph.de/ubuntu xenial main'
   notify:
     - update apt cache
   tags:
-    - packages
     - repos
     - zabbix
     - chr
diff --git a/zabbix-server/handlers/main.yml b/zabbix-server/handlers/main.yml
index cb79185..b4d4265 100644
--- a/zabbix-server/handlers/main.yml
+++ b/zabbix-server/handlers/main.yml
@@ -6,4 +6,3 @@
 - name: restart postgres
   service: name=postgresql state=restarted
   delegate_to: "{{ zabbix_db_host }}"
-
diff --git a/zabbix-server/tasks/main.yml b/zabbix-server/tasks/main.yml
index 7783500..2e800e6 100644
--- a/zabbix-server/tasks/main.yml
+++ b/zabbix-server/tasks/main.yml
@@ -2,7 +2,10 @@
 
 # recommends install postgres database and snmpd services
 - name: ensure the server package is installed
-  apt: name=zabbix-server-pgsql state=latest install_recommends=no
+  apt:
+    name: zabbix-server-pgsql
+    state: present
+    install_recommends: false
   notify:
     - restart zabbix server
   tags:
@@ -10,51 +13,70 @@
     - zabbix
 
 - name: ensure proper configuration of the server
-  template: src=zabbix_server.conf.j2 dest=/etc/zabbix/zabbix_server.conf
+  template:
+    src: zabbix_server.conf.j2
+    dest: /etc/zabbix/zabbix_server.conf
   notify:
     - restart zabbix server
   tags:
-    - config
     - zabbix
 
 - name: ensure the zabbix user has a home directory
-  file: path=/var/lib/zabbix state=directory owner=zabbix group=zabbix
+  file:
+    path: /var/lib/zabbix
+    state: directory
+    owner: zabbix
+    group: zabbix
   tags:
-    - config
     - zabbix
 
 - name: ensure the zabbix user has a pgpass file
-  template: src=pgpass.j2 dest=/var/lib/zabbix/.pgpass owner=zabbix group=zabbix mode=0600
+  template:
+    src: pgpass.j2
+    dest: /var/lib/zabbix/.pgpass
+    owner: zabbix
+    group: zabbix
+    mode: '0600'
   tags:
-    - config
     - database
     - zabbix
 
 - name: ensure there is the parition optimization sql file
-  copy: src=zabbix-partition.sql dest=/usr/share/doc/zabbix-server-pgsql/zabbix-partition.sql
+  copy:
+    src: zabbix-partition.sql
+    dest: /usr/share/doc/zabbix-server-pgsql/zabbix-partition.sql
   tags:
     - database
     - zabbix
 
 - name: ensure there is the commentcounts sql file
-  copy: src=commentcounts.sql dest=/usr/share/doc/zabbix-server-pgsql/commentcounts.sql
+  copy:
+    src: commentcounts.sql
+    dest: /usr/share/doc/zabbix-server-pgsql/commentcounts.sql
   tags:
     - database
     - zabbix
 
 - name: ensure we have a user on the database server
-  postgresql_user: name="{{ zabbix_db_user }}" password="{{ zabbix_db_password }}" state=present role_attr_flags=NOSUPERUSER,NOCREATEDB
-  become: yes
+  postgresql_user:
+    name: "{{ zabbix_db_user }}"
+    password: "{{ zabbix_db_password }}"
+    state: present
+    role_attr_flags: NOSUPERUSER,NOCREATEDB
+  become: true
   become_user: postgres
-  no_log: True
+  no_log: true
   delegate_to: "{{ zabbix_db_host }}"
   tags:
     - database
     - zabbix
 
 - name: ensure we have a database on the database server
-  postgresql_db: name="{{ zabbix_db_name }}" owner="{{ zabbix_db_user  }}" state=present
-  become: yes
+  postgresql_db:
+    name: "{{ zabbix_db_name }}"
+    owner: "{{ zabbix_db_user  }}"
+    state: present
+  become: true
   become_user: postgres
   delegate_to: "{{ zabbix_db_host }}"
   tags:
@@ -62,8 +84,13 @@
     - zabbix
 
 - name: ensure our user has the necessary privileges for the database
-  postgresql_privs: database="{{ zabbix_db_name }}" roles="{{ zabbix_db_user }}" privs=ALL state=present type=database
-  become: yes
+  postgresql_privs:
+    database: "{{ zabbix_db_name }}"
+    roles: "{{ zabbix_db_user }}"
+    privs: ALL
+    state: present
+    type: database
+  become: true
   become_user: postgres
   delegate_to: "{{ zabbix_db_host }}"
   tags:
@@ -71,7 +98,10 @@
     - zabbix
 
 - name: ensure the database server listens on the external interface
-  replace: dest=/etc/postgresql/9.6/main/postgresql.conf regexp="#listen_addresses = 'localhost'" replace="listen_addresses = '*'"
+  replace:
+    dest: /etc/postgresql/9.6/main/postgresql.conf
+    regexp: "#listen_addresses = 'localhost'"
+    replace: "listen_addresses = '*'"
   notify:
     - restart postgres
   delegate_to: "{{ zabbix_db_host }}"
@@ -80,7 +110,13 @@
     - zabbix
 
 - name: ensure the database server allows connections from the server
-  lineinfile: dest=/etc/postgresql/9.6/main/pg_hba.conf insertafter="host    all             all             127.0.0.1/32            md5" line="host    {{ zabbix_db_name }}          {{ zabbix_db_user }}          {{ ansible_fqdn }} md5" state=present
+  lineinfile:
+    dest: /etc/postgresql/9.6/main/pg_hba.conf
+    # yamllint disable-line rule:line-length
+    insertafter: "host    all             all             127.0.0.1/32            md5"
+    # yamllint disable-line rule:line-length
+    line: "host    {{ zabbix_db_name }}          {{ zabbix_db_user }}          {{ ansible_fqdn }} md5"
+    state: present
   notify:
     - restart postgres
   delegate_to: "{{ zabbix_db_host }}"
@@ -91,10 +127,11 @@
 - meta: flush_handlers
 
 - name: apply database schema
+  # yamllint disable-line rule:line-length
   shell: zcat /usr/share/doc/zabbix-server-pgsql/create.sql.gz | psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} && touch /var/lib/zabbix/.db_schema_created
   args:
     creates: /var/lib/zabbix/.db_schema_created
-  become: yes
+  become: true
   become_user: zabbix
   notify:
     - restart zabbix server
@@ -103,10 +140,11 @@
     - zabbix
 
 - name: apply database schema optimization
+  # yamllint disable-line rule:line-length
   shell: psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} -f /usr/share/doc/zabbix-server-pgsql/zabbix-partition.sql && touch /var/lib/zabbix/.db_schema_optimized
   args:
     creates: /var/lib/zabbix/.db_schema_optimized
-  become: yes
+  become: true
   become_user: zabbix
   notify:
     - restart zabbix server
@@ -115,10 +153,11 @@
     - zabbix
 
 - name: apply database commentcounts function
+  # yamllint disable-line rule:line-length
   shell: psql -h {{ zabbix_db_host }} -U {{ zabbix_db_user }} -w -d {{ zabbix_db_name }} -f /usr/share/doc/zabbix-server-pgsql/commentcounts.sql && touch /var/lib/zabbix/.db_schema_countfunc
   args:
     creates: /var/lib/zabbix/.db_schema_countfunc
-  become: yes
+  become: true
   become_user: zabbix
   notify:
     - restart zabbix server
@@ -127,7 +166,7 @@
     - zabbix
 
 - name: ensure rows are counted regularily and saved in comment
-  cron: 
+  cron:
     name: "count rows"
     special_time: monthly
     job: psql zabbix -c "select * from zbx_update_partition_table_comments();"
@@ -144,7 +183,7 @@
     dest: /usr/local/bin/
     owner: root
     group: root
-    mode: 0755
+    mode: '0755'
   delegate_to: "{{ zabbix_db_host }}"
   tags:
     - database
@@ -154,30 +193,31 @@
   cron:
     name: "clean zabbix-db {{item.table}} partition"
     special_time: monthly
+    # yamllint disable-line rule:line-length
     job: "/usr/local/bin/partition-cleanup.py public.{{item.table}} --months {{item.months}}"
     state: present
     user: postgres
   delegate_to: "{{ zabbix_db_host }}"
   with_items:
-    - { table: "history", months: 4 }
-    - { table: "history_str", months: 4 }
-    - { table: "history_text", months: 4 }
-    - { table: "history_uint", months: 4 }
-    - { table: "trends", months: 13 }
-    - { table: "trends_uint", months: 13 }
+    - {table: "history", months: 4}
+    - {table: "history_str", months: 4}
+    - {table: "history_text", months: 4}
+    - {table: "history_uint", months: 4}
+    - {table: "trends", months: 13}
+    - {table: "trends_uint", months: 13}
   tags:
     - database
     - zabbix
 
 - name: include snmp-features
-  include: snmp.yml
-
-
+  import_tasks: snmp.yml
 
 - name: ensure the server is enabled and running
-  service: name=zabbix-server state=started enabled=yes
+  service:
+    name: zabbix-server
+    state: started
+    enabled: true
   tags:
-    - service
     - zabbix
 
 - meta: flush_handlers
diff --git a/zabbix-server/tasks/snmp.yml b/zabbix-server/tasks/snmp.yml
index 2804a35..09e47fe 100644
--- a/zabbix-server/tasks/snmp.yml
+++ b/zabbix-server/tasks/snmp.yml
@@ -1,4 +1,5 @@
 ---
+
 - name: ensure snmp software is installed
   apt:
     name:
@@ -7,17 +8,15 @@
     state: present
   tags:
     - snmp
-    - software
 
 - name: ensure the correct snmp.conf is present
-  copy: src=snmp.conf dest=/etc/snmp/snmp.conf
-  tags: 
+  copy:
+    src: snmp.conf
+    dest: /etc/snmp/snmp.conf
+  tags:
     - snmp
-    - config
 
 - name: ensure the snmp MIB libs are present
   command: download-mibs
   tags:
     - snmp
-
-
-- 
GitLab