From a7239e6d7ef8857b6d69fb7873e4225cc4142432 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:41:47 +0200 Subject: [PATCH] [UPD] ansible-lint --- .ansible-lint | 7 +++ .yamllint | 39 +++++++++++++++ handlers/main.yml | 6 ++- meta/main.yml | 32 ++++++------ tasks/main.yml | 124 ++++++++++++++++++++++++---------------------- vars/Debian.yml | 4 +- vars/RedHat.yml | 2 +- 7 files changed, 134 insertions(+), 80 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/handlers/main.yml b/handlers/main.yml index daa89d8..6c6de22 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,4 +1,6 @@ --- -- name: restart filebeat - service: name=filebeat state=restarted +- name: Restart filebeat + ansible.builtin.service: + name: filebeat + state: restarted diff --git a/meta/main.yml b/meta/main.yml index b1e9b8a..5a5eea9 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,18 +1,18 @@ --- galaxy_info: - author: Rémi - description: This role configures filebeat to push logs to ELK stack - 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: - - focal - galaxy_tags: - - filebeat - - log - - elk + author: lefilament + description: This role configures filebeat to push logs to ELK stack + 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: + - focal + galaxy_tags: + - filebeat + - log + - elk diff --git a/tasks/main.yml b/tasks/main.yml index 4290b50..af1d9c4 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,96 +1,102 @@ --- - name: Include OS-specific variables. - include_vars: "{{ ansible_os_family }}.yml" + ansible.builtin.include_vars: "{{ ansible_os_family }}.yml" # INSTALLATION - name: Add Filebeat GPG key to APT - get_url: - url: "{{ elastic_gpg_key_url }}" - dest: /etc/apt/trusted.gpg.d/elastic.asc - mode: '0644' + ansible.builtin.get_url: + url: "{{ elastic_gpg_key_url }}" + dest: /etc/apt/trusted.gpg.d/elastic.asc + mode: '0644' when: ansible_os_family == "Debian" - name: Add FileBeat repo to APT repositories - apt_repository: - repo: deb {{ elastic_packages_url }}/apt stable main - update_cache: true + ansible.builtin.apt_repository: + repo: deb {{ elastic_packages_url }}/apt stable main + update_cache: true when: ansible_os_family == "Debian" - name: Add FileBeat repo to YUM repositories - yum_repository: - file: elastic - name: elastic-7.x - description: Elastic repository for 7.x packages - baseurl: "{{ elastic_packages_url }}/yum" - gpgkey: "{{ elastic_gpg_key_url }}" - gpgcheck: true + ansible.builtin.yum_repository: + file: elastic + name: elastic-7.x + description: Elastic repository for 7.x packages + baseurl: "{{ elastic_packages_url }}/yum" + gpgkey: "{{ elastic_gpg_key_url }}" + gpgcheck: true when: ansible_os_family == "RedHat" - name: Install OS packages - package: - name: "{{ packages_to_install }}" - state: latest + ansible.builtin.package: + name: "{{ packages_to_install }}" + state: latest async: 120 poll: 10 when: not ansible_check_mode - name: Check installed OS packages - package: - name: "{{ packages_to_install }}" - state: latest + ansible.builtin.package: + name: "{{ packages_to_install }}" + state: latest when: ansible_check_mode -- name: make sure filebeat is enabled if log_collection = true - service: name=filebeat enabled=yes state=started +- name: Make sure filebeat is enabled if log_collection = true + ansible.builtin.service: + name: filebeat + enabled: true + state: started when: log_collection -- name: make sure filebeat is disabled if log_collection = false - service: name=filebeat enabled=no state=stopped +- name: Make sure filebeat is disabled if log_collection = false + ansible.builtin.service: + name: filebeat + enabled: true + state: stopped when: not log_collection # CONFIGURATION (only if log_collection = true) - name: Push logstash certificate - copy: - content: "{{ logstash_tls_crt }}" - dest: "/etc/ssl/certs/logstash.crt" - owner: root - group: root - mode: '0644' + ansible.builtin.copy: + content: "{{ logstash_tls_crt }}" + dest: "/etc/ssl/certs/logstash.crt" + owner: root + group: root + mode: '0644' when: log_collection - notify: restart filebeat + notify: Restart filebeat -- name: push Filebeat configuration file - template: - src: filebeat.yml.j2 - dest: /etc/filebeat/filebeat.yml - owner: root - group: root - mode: '0600' +- name: Push Filebeat configuration file + ansible.builtin.template: + src: filebeat.yml.j2 + dest: /etc/filebeat/filebeat.yml + owner: root + group: root + mode: '0600' when: log_collection - notify: restart filebeat + notify: Restart filebeat -- name: push Filebeat modules configuration file - copy: - src: "{{ item }}.yml" - dest: /etc/filebeat/modules.d/{{ item }}.yml - owner: root - group: root - mode: '0644' +- name: Push Filebeat modules configuration file + ansible.builtin.copy: + src: "{{ item }}.yml" + dest: /etc/filebeat/modules.d/{{ item }}.yml + owner: root + group: root + mode: '0644' with_items: - - iptables - - system + - iptables + - system when: log_collection - notify: restart filebeat + notify: Restart filebeat -- name: push Filebeat traefik module configuration file - template: - src: "{{ item }}.yml.j2" - dest: /etc/filebeat/modules.d/{{ item }}.yml - owner: root - group: root - mode: '0644' +- name: Push Filebeat traefik module configuration file + ansible.builtin.template: + src: "{{ item }}.yml.j2" + dest: /etc/filebeat/modules.d/{{ item }}.yml + owner: root + group: root + mode: '0644' with_items: - - traefik + - traefik when: inventory_hostname in groups.docker and log_collection - notify: restart filebeat + notify: Restart filebeat diff --git a/vars/Debian.yml b/vars/Debian.yml index 7367aca..a0b16e2 100644 --- a/vars/Debian.yml +++ b/vars/Debian.yml @@ -1,4 +1,4 @@ --- packages_to_install: - - apt-transport-https - - filebeat + - apt-transport-https + - filebeat diff --git a/vars/RedHat.yml b/vars/RedHat.yml index cdf9f8f..b0810a1 100644 --- a/vars/RedHat.yml +++ b/vars/RedHat.yml @@ -1,3 +1,3 @@ --- packages_to_install: - - filebeat + - filebeat -- GitLab