Skip to content

Commit d4a8391

Browse files
Merge pull request #779 from rrinco/fix-mkp-management
Server Site MKP management not working #777
2 parents ccfa62d + f2bf6ab commit d4a8391

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
bugfixes:
2+
- roles/server/tasks/mkp was using 'omd su site -c' to execute comands a site user but it does not work in all flavors/versions so changed to become_user instead (https://github.com/Checkmk/ansible-collection-checkmk.general/issues/777)
3+
- roles/server/tasks/mkp fails when try to install a mkp packages that already exists in the server. Added a conditional to validate stderr and don't fail if "exists on the site" is found (https://github.com/Checkmk/ansible-collection-checkmk.general/issues/777)
4+
minor_changes:
5+
- roles/server/tasks/mkp expects a boolean value for __mkp.installed and __mkp.enabled but in README.md and defaults.yml the usage examples set them as string. Changed README.md but also added "| bool" to force boolean even if string is defined (https://github.com/Checkmk/ansible-collection-checkmk.general/issues/777)

roles/server/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ Note: this is not a recommended procedure, and will not be supported for enterpr
8888
src: '/path/to/my.mkp'
8989
url: 'https://exchange.checkmk.com/packages/mypackage/4711/mypackage-1.0.0.mkp'
9090
checksum: 'md5:mychecksum'
91-
installed: 'true'
92-
enabled: 'true'
91+
installed: true
92+
enabled: true
9393

9494
A dictionary of sites, containing the desired version, admin password, site configuration options, extension packages and state.
9595
The more advanced settings will be outlined below.

roles/server/defaults/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ checkmk_server_sites: []
5151
# src: '/path/to/my.mkp'
5252
# url: 'https://exchange.checkmk.com/packages/mypackage/4711/mypackage-1.0.0.mkp'
5353
# checksum: 'md5:mychecksum'
54-
# installed: 'true'
55-
# enabled: 'true'
54+
# installed: true
55+
# enabled: true
5656

5757
checkmk_server_configure_firewall: 'true'
5858

roles/server/tasks/mkp.yml

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
ansible.builtin.get_url:
44
url: "{{ __mkp.url }}"
55
dest: "{{ __checkmk_server_tmp_dir }}/{{ __mkp.name }}-{{ __mkp.version }}.mkp"
6-
mode: "0640"
6+
mode: "0644"
77
url_username: "{{ __mkp.download_user | default(omit) }}"
88
url_password: "{{ __mkp.download_password | default(omit) }}"
99
checksum: "{{ __mkp.checksum | default(omit) }}"
@@ -19,7 +19,7 @@
1919
ansible.builtin.copy:
2020
src: "{{ __mkp.src }}"
2121
dest: "{{ __checkmk_server_tmp_dir }}/{{ __mkp.name }}-{{ __mkp.version }}.mkp"
22-
mode: "0640"
22+
mode: "0644"
2323
loop: "{{ __site.mkp_packages }}"
2424
loop_control:
2525
loop_var: __mkp
@@ -29,48 +29,53 @@
2929

3030
- name: "Install mkp packages."
3131
become: true
32-
ansible.builtin.command: "omd su {{ __site.name }} -c mkp add {{ __checkmk_server_tmp_dir }}/{{ __mkp.name }}-{{ __mkp.version }}.mkp"
32+
become_user: "{{ __site.name }}"
33+
ansible.builtin.command: "/bin/bash -l -c 'mkp add {{ __checkmk_server_tmp_dir }}/{{ __mkp.name }}-{{ __mkp.version }}.mkp'"
3334
changed_when: __checkmk_server_mkp_install_output.rc == 0
35+
failed_when: __checkmk_server_mkp_install_output.rc != 0 and 'exists on the site' not in __checkmk_server_mkp_install_output.stderr
3436
register: __checkmk_server_mkp_install_output
3537
loop: "{{ __site.mkp_packages }}"
3638
loop_control:
3739
loop_var: __mkp
38-
when: (__mkp.installed | default(true) )
40+
when: (__mkp.installed | default(true) ) | bool
3941
tags:
4042
- manage-mkp-packages
4143

4244
- name: "Enable mkp packages."
4345
become: true
44-
ansible.builtin.command: "omd su {{ __site.name }} -c mkp enable {{ __mkp.name }} {{ __mkp.version }}"
46+
become_user: "{{ __site.name }}"
47+
ansible.builtin.command: "/bin/bash -l -c 'mkp enable {{ __mkp.name }} {{ __mkp.version }}'"
4548
changed_when: __checkmk_server_mkp_enable_output.rc == 0
4649
register: __checkmk_server_mkp_enable_output
4750
loop: "{{ __site.mkp_packages }}"
4851
loop_control:
4952
loop_var: __mkp
50-
when: (__mkp.enabled | default(true))
53+
when: (__mkp.enabled | default(true)) | bool
5154
tags:
5255
- manage-mkp-packages
5356

5457
- name: "Disable mkp packages."
5558
become: true
56-
ansible.builtin.command: "omd su {{ __site.name }} -c mkp disable {{ __mkp.name }} {{ __mkp.version }}"
59+
become_user: "{{ __site.name }}"
60+
ansible.builtin.command: "/bin/bash -l -c 'mkp disable {{ __mkp.name }} {{ __mkp.version }}'"
5761
changed_when: __checkmk_server_mkp_disable_output.rc == 0
5862
register: __checkmk_server_mkp_disable_output
5963
loop: "{{ __site.mkp_packages }}"
6064
loop_control:
6165
loop_var: __mkp
62-
when: __mkp.enabled is defined and not __mkp.enabled
66+
when: __mkp.enabled is defined and (not __mkp.enabled | bool)
6367
tags:
6468
- manage-mkp-packages
6569

6670
- name: "Remove mkp packages."
6771
become: true
68-
ansible.builtin.command: "omd su {{ __site.name }} -c mkp remove {{ __mkp.name }} {{ __mkp.version }}"
72+
become_user: "{{ __site.name }}"
73+
ansible.builtin.command: "/bin/bash -l -c 'mkp remove {{ __mkp.name }} {{ __mkp.version }}'"
6974
changed_when: __checkmk_server_mkp_remove_output.rc == 0
7075
register: __checkmk_server_mkp_remove_output
7176
loop: "{{ __site.mkp_packages }}"
7277
loop_control:
7378
loop_var: __mkp
74-
when: __mkp.installed is defined and not __mkp.installed
79+
when: __mkp.installed is defined and (not __mkp.installed | bool)
7580
tags:
7681
- manage-mkp-packages

0 commit comments

Comments
 (0)