Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix ansible lint action #31

Merged
merged 7 commits into from
Aug 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .ansible-lint

This file was deleted.

13 changes: 13 additions & 0 deletions .config/ansible-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
# .ansible-lint
# exclude_paths included in this file are parsed relative to this file's location
# and not relative to the CWD of execution. CLI arguments passed to the --exclude
# option will be parsed relative to the CWD of execution.
exclude_paths:
- .cache/ # implicit unless exclude_paths is defined in config
- .yamllint
- ../molecule/
- ../.github/

warn_list:
- fqcn-builtins
20 changes: 5 additions & 15 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,24 +43,14 @@ jobs:
steps:
- name: Check out code
uses: actions/checkout@v3
with:
path: ansible_collections/t_systems_mms/ansible_collection_icinga

- name: Run Linting - icinga_agent
uses: ansible/ansible-lint-action@master
with:
targets: ansible_collections/t_systems_mms/ansible_collection_icinga/roles/icinga_agent
args: "-c ansible_collections/t_systems_mms/ansible_collection_icinga/.ansible-lint"
override-deps: |
ansible-lint==5.3.2

- name: Run Linting - icinga_plugins
uses: ansible/ansible-lint-action@master
- name: Run Linting
uses: ansible/ansible-lint-action@v6
with:
targets: ansible_collections/t_systems_mms/ansible_collection_icinga/roles/icinga_plugins
args: "-c ansible_collections/t_systems_mms/ansible_collection_icinga/.ansible-lint"
targets: "roles/"
override-deps: |
ansible-lint==5.3.2
rich>=9.5.1,<11.0.0
args: ""

molecule:
name: Molecule
Expand Down
8 changes: 6 additions & 2 deletions roles/icinga_agent/molecule/default/converge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,17 @@
- molecule-idempotence-notest

- name: import icinga2 key
command: "rpm --import https://packages.icinga.com/icinga.key"
ansible.builtin.rpm_key:
state: present
key: "https://packages.icinga.com/icinga.key"
when: ansible_os_family == 'RedHat'
tags:
- molecule-idempotence-notest

- name: install icinga2 repo
command: "yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm -y"
ansible.builtin.yum:
name: https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
state: present
when: ansible_os_family == 'RedHat'
tags:
- molecule-idempotence-notest
Expand Down
33 changes: 22 additions & 11 deletions roles/icinga_agent/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
- name: create /etc/icinga2/repository.d
ansible.builtin.file:
dest: "/etc/icinga2/repository.d"
mode: 0750
owner: "{{ icinga2_user[ansible_os_family] }}"
group: "{{ icinga2_group[ansible_os_family] }}"
state: directory
Expand Down Expand Up @@ -76,7 +77,8 @@
- icinga_agent_enable_features is defined
- icinga_agent_enable_features | length > 0

- block:
- name: start icinga agent registration
block:
- name: create certs folder in case it is missing
ansible.builtin.file:
path: /var/lib/icinga2/certs/
Expand All @@ -86,29 +88,38 @@
group: "{{ icinga2_group[ansible_os_family] }}"

- name: generate ticket and save it as a variable
ansible.builtin.shell: /usr/sbin/icinga2 pki ticket --cn {{ ansible_hostname }} --salt {{ icinga_agent_salt }}
ansible.builtin.command: >
/usr/sbin/icinga2 pki ticket --cn {{ ansible_hostname }} --salt {{ icinga_agent_salt }}
environment:
LD_LIBRARY_PATH: "/usr/lib64"
register: ticket
changed_when: false
failed_when: ticket.rc != 0

- name: create certificate
ansible.builtin.command: "/usr/sbin/icinga2 pki new-cert --cn {{ ansible_hostname }} --key /var/lib/icinga2/certs/{{ ansible_hostname }}.key --cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt"
ansible.builtin.command: >
/usr/sbin/icinga2 pki new-cert --cn {{ ansible_hostname }}
--key /var/lib/icinga2/certs/{{ ansible_hostname }}.key
--cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt
args:
creates: "/var/lib/icinga2/certs/{{ ansible_hostname }}.crt"

- name: save the icinga master's certificate to the host
ansible.builtin.command: "/usr/sbin/icinga2 pki save-cert --key /var/lib/icinga2/certs/{{ ansible_hostname }}.key --cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt --trustedcert /var/lib/icinga2/certs/trusted-master.crt --host {{ icinga_agent_ca_host }}"
ansible.builtin.command: >
/usr/sbin/icinga2 pki save-cert --key /var/lib/icinga2/certs/{{ ansible_hostname }}.key
--cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt
--trustedcert /var/lib/icinga2/certs/trusted-master.crt
--host {{ icinga_agent_ca_host }}
args:
creates: "/var/lib/icinga2/certs/trusted-master.crt"

- name: generate ticket and save it as a variable
ansible.builtin.command: "/usr/sbin/icinga2 pki ticket --cn {{ ansible_hostname }} --salt {{ icinga_agent_salt }}"
register: ticket
args:
creates: "/var/lib/icinga2/certs/ca.crt"

- name: send a pki request to the icinga master
ansible.builtin.command: "/usr/sbin/icinga2 pki request --host {{ icinga_agent_ca_host }} --port {{ icinga_agent_ca_host_icinga_port }} --ticket {{ ticket.stdout }} --key /var/lib/icinga2/certs/{{ ansible_hostname }}.key --cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt --trustedcert /var/lib/icinga2/certs/trusted-master.crt --ca /var/lib/icinga2/certs/ca.crt"
ansible.builtin.command: >
/usr/sbin/icinga2 pki request --host {{ icinga_agent_ca_host }}
--port {{ icinga_agent_ca_host_icinga_port }}
--ticket {{ ticket.stdout }} --key /var/lib/icinga2/certs/{{ ansible_hostname }}.key
--cert /var/lib/icinga2/certs/{{ ansible_hostname }}.crt
--trustedcert /var/lib/icinga2/certs/trusted-master.crt --ca /var/lib/icinga2/certs/ca.crt
args:
creates: "/var/lib/icinga2/certs/ca.crt"
notify:
Expand Down
12 changes: 9 additions & 3 deletions roles/icinga_plugins/molecule/default/prepare.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,23 @@
when: ansible_os_family == 'RedHat'

- name: import icinga2 key
command: "rpm --import https://packages.icinga.com/icinga.key"
ansible.builtin.rpm_key:
state: present
key: "https://packages.icinga.com/icinga.key"
when: ansible_os_family == 'RedHat'

- name: install icinga2 repo
command: "yum install https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm -y"
ansible.builtin.yum:
name: https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
state: present
when:
- ansible_os_family == 'RedHat'
- ansible_facts.distribution_major_version | int is version('7', '=')

- name: install icinga2 repo
command: "yum install https://packages.icinga.com/epel/icinga-rpm-release-8-latest.noarch.rpm -y"
ansible.builtin.yum:
name: https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm
state: present
when:
- ansible_os_family == 'RedHat'
- ansible_facts.distribution_major_version | int is version('8', '=')
Expand Down
5 changes: 3 additions & 2 deletions roles/icinga_plugins/molecule/default/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
- name: verify that plugin dir exists
file:
path: "{{ icinga2_plugins_pluginsdir }}"
mode: 0755
state: directory
register: result_plugin_dir

Expand All @@ -37,10 +38,10 @@
- name: search for all files in plugins directory
ansible.builtin.find:
paths: "{{ icinga2_plugins_pluginsdir }}"
recurse: yes
recurse: true
file_type: file
register: files_in_plugins_dir
check_mode: no
check_mode: false

- name: validate plugins belongs to the right user for Redhat based systems
assert:
Expand Down
10 changes: 5 additions & 5 deletions roles/icinga_plugins/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
state: present
loop: "{{ dependency_packages }}"
when:
- dependency_packages is defined
- dependency_packages | length > 0
- dependency_packages is defined
- dependency_packages | length > 0
tags:
- install_dependencies

Expand Down Expand Up @@ -37,7 +37,7 @@
- icinga_install_plugins | length > 0
- (ansible_facts.os_family == "RedHat" and ansible_facts.distribution_major_version | int is version('7', "=")) or ansible_facts.os_family == "Debian"

- name: copy icinga plugins to target node
- name: copy icinga plugins to target node # noqa risky-file-permissions
ansible.builtin.copy:
src: "{{ item }}"
dest: "{{ icinga2_plugins_pluginsdir }}/"
Expand All @@ -50,10 +50,10 @@
- name: "search for all files in plugins directory"
ansible.builtin.find:
paths: "{{ icinga2_plugins_pluginsdir }}"
recurse: yes
recurse: true
file_type: any
register: files_in_plugins_dir
check_mode: no
check_mode: false

- name: set plugins ownership
ansible.builtin.file:
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/targets/icinga/icinga_plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
- name: verfiy that plugin files belong to icinga
ansible.builtin.find:
paths: "/usr/lib64/nagios/plugins"
recurse: yes
recurse: true
file_type: any
register: files_in_plugins_dir

Expand Down