diff --git a/tasks/host-management/modern.yml b/tasks/host-management/modern.yml index 23587f7..f4ef2d1 100644 --- a/tasks/host-management/modern.yml +++ b/tasks/host-management/modern.yml @@ -5,31 +5,28 @@ headers: Authorization: Bearer {{ cmk_username }} {{ cmk_secret }} Accept: application/json - url: '{{ cmk_omd_protocol }}://{{ cmk_omd_host }}/{{ cmk_omd_site }}/check_mk/api/1.0/domain-types/host_config/collections/all' + url: '{{ cmk_api_url }}/domain-types/host_config/collections/all' body: folder: "{{ cmk_folder | default('~Unsorted') }}" host_name: '{{ inventory_hostname | upper }}' attributes: tag_criticality: prod tag_agent: cmk-agent - ipaddress: "{{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }}" + ipaddress: "{{ cmk_host_ip | default(hostvars[inventory_hostname]['ansible_default_ipv4']['address'], true) }}" body_format: json return_content: true status_code: [200, 400] - register: res + register: res_add become: false delegate_to: localhost when: > cmk_add_host and cmk_major | int >= 2 and cmk_minor | int >= 2 + - name: Parse result set_fact: - output: '{{ res.content | from_json }}' + output: '{{ res_add.content | from_json }}' when: cmk_add_host -- name: Display object - debug: - var: "{{ output }}" - - name: Host exists fetch etag (new) # noqa command-instead-of-module shell: | curl \ @@ -40,22 +37,22 @@ --header "Authorization: Bearer {{ cmk_username }} {{ cmk_secret }}" \ --header "Accept: application/json" \ "{{ cmk_omd_protocol }}://{{ cmk_omd_host }}/{{ cmk_omd_site }}/check_mk/api/v0/objects/host_config/{{ inventory_hostname | upper }}" - register: res + register: res_host_exists become: false delegate_to: localhost when: > - cmk_add_host and (cmk_major | int >= 2 and cmk_minor | int >= 2) and - (output.status == 400 and output.fields.host_name | first | regex_search('already + cmk_add_host and (cmk_major | int >= 2 and cmk_minor | int >= 2) and + (res_add.status == 400 and output.fields.host_name | first | regex_search('already exists.$')) -- debug: - var: res + - name: Unpick response set_fact: - etag: "{{ res.stdout | regex_search('.*etag:.\"(?P.+)\".*', '\\g') | first }}" + etag: "{{ res_host_exists.stdout | regex_search('.*etag:.\"(?P.+)\".*', '\\g') | first }}" when: > - cmk_add_host and (cmk_major | int >= 2 and cmk_minor | int >= 2) and - (output.status == 400 and output.fields.host_name | first | regex_search('already + cmk_add_host and (cmk_major | int >= 2 and cmk_minor | int >= 2) and + (res_add.status == 400 and output.fields.host_name | first | regex_search('already exists.$')) + - name: Update host as already exists? (new) uri: method: PUT @@ -76,22 +73,24 @@ delegate_to: localhost when: > cmk_add_host and (cmk_major | int >= 2 and cmk_minor | int >= 2) and - (output.status == 400 and output.fields.host_name | first | regex_search('already + (res_add.status == 400 and output.fields.host_name | first | regex_search('already exists.$')) + - name: Parse result set_fact: - output: '{{ res.content | from_json }}' + output: '{{ res_add.content | from_json }}' when: cmk_add_host + - name: cmk_discovery (new) uri: method: POST headers: Authorization: Bearer {{ cmk_username }} {{ cmk_secret }} Accept: application/json - url: '{{ cmk_omd_protocol }}://{{ cmk_omd_host }}/{{ cmk_omd_site }}/check_mk/api/1.0/domain-types/service_discovery_run/actions/start/invoke' + url: '{{ cmk_api_url }}/domain-types/service_discovery_run/actions/start/invoke' body: host_name: '{{ inventory_hostname | upper }}' - mode: refresh + mode: fix_all body_format: json status_code: [200, 302] become: false @@ -100,21 +99,25 @@ cmk_minor | int >= 2 or cmk_force_install delegate_to: localhost + - name: cmk_apply (new) uri: method: POST headers: Authorization: Bearer {{ cmk_username }} {{ cmk_secret }} Accept: application/json - url: '{{ cmk_omd_protocol }}://{{ cmk_omd_host }}/{{ cmk_omd_site }}/check_mk/api/1.0/domain-types/activation_run/actions/activate-changes/invoke' + If-Match: "*" + url: '{{ cmk_api_url }}/domain-types/activation_run/actions/activate-changes/invoke' body: - redirect: 'False' - sites: ['{{ cmk_omd_site }}'] - force_foreign_changes: 'False' + redirect: false + sites: + - "{{ cmk_omd_site }}" + force_foreign_changes: false body_format: json status_code: 200 become: false run_once: true when: > - cmk_add_host and cmk_major | int >= 2 and cmk_minor | int >= 2 and cmk_force_install + cmk_add_host and cmk_major | int >= 2 and + cmk_minor | int >= 2 or cmk_force_install delegate_to: localhost diff --git a/tasks/main.yml b/tasks/main.yml index 27ac209..3402ed1 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -12,6 +12,6 @@ # Register for automatic agent updates - include_tasks: '{{ ansible_os_family }}-register.yml' when: cmk_fresh_install -# Finalize things and collect all available services -- include_tasks: host-configure.yml - when: cmk_fresh_install +# # Finalize things and collect all available services +# - include_tasks: host-configure.yml +# when: cmk_fresh_install