diff --git a/playbooks/wazuh-production-ready.yml b/playbooks/wazuh-production-ready.yml index a6ea3097..1d0b4cc8 100644 --- a/playbooks/wazuh-production-ready.yml +++ b/playbooks/wazuh-production-ready.yml @@ -43,6 +43,7 @@ name: node-6 ip: "{{ hostvars.dashboard.private_ip }}" role: dashboard + macos_localhost: false tags: - generate-certs diff --git a/playbooks/wazuh-single.yml b/playbooks/wazuh-single.yml index 38499f5c..77017c72 100644 --- a/playbooks/wazuh-single.yml +++ b/playbooks/wazuh-single.yml @@ -13,6 +13,7 @@ name: node-1 # Important: must be equal to indexer_node_name. ip: 127.0.0.1 role: indexer + macos_localhost: false tags: - generate-certs # Single node diff --git a/roles/wazuh/wazuh-indexer/defaults/main.yml b/roles/wazuh/wazuh-indexer/defaults/main.yml index e1796da9..cbc3f65e 100644 --- a/roles/wazuh/wazuh-indexer/defaults/main.yml +++ b/roles/wazuh/wazuh-indexer/defaults/main.yml @@ -48,3 +48,6 @@ generate_certs: true perform_installation: true indexer_nolog_sensible: true + +# Docker image for certificates generation on macOS +wazuh_certs_tool_docker: "wazuh/wazuh-cert-tool:{{ indexer_version }}" diff --git a/roles/wazuh/wazuh-indexer/tasks/local_actions.yml b/roles/wazuh/wazuh-indexer/tasks/local_actions.yml index 4a215bef..b5575a2b 100644 --- a/roles/wazuh/wazuh-indexer/tasks/local_actions.yml +++ b/roles/wazuh/wazuh-indexer/tasks/local_actions.yml @@ -26,7 +26,7 @@ get_url: url: "{{ certs_gen_tool_url }}" dest: "{{ local_certs_path }}/wazuh-certs-tool.sh" - when: not tool_package.stat.exists + when: not tool_package.stat.exists and not macos_localhost - name: Local action | Prepare the certificates generation template file template: @@ -38,6 +38,36 @@ - name: Local action | Generate the node & admin certificates in local command: >- bash {{ local_certs_path }}/wazuh-certs-tool.sh -A + when: not macos_localhost + + - name: Local action | Check for Docker installation on macOS + command: docker --version + register: docker_check + when: macos_localhost + ignore_errors: yes + + - name: Local action | Fail if Docker is not installed + fail: + msg: "Docker is not installed on this host." + when: (docker_check.rc | default(1)) != 0 and macos_localhost + + - name: Local action | Run Docker container on macOS + community.docker.docker_container: + name: wazuh-cert-tool + image: "{{ wazuh_certs_tool_docker }}" + state: started + auto_remove: true + volumes: + - "{{ local_certs_path }}/config.yml:/config/certs.yml" + - "{{ local_certs_path }}/wazuh-certificates/:/certificates/" + when: macos_localhost + + - name: Local action | Remove Docker image after execution + community.docker.docker_image: + name: "{{ wazuh_certs_tool_docker }}" + state: absent + force_absent: yes + when: macos_localhost run_once: true delegate_to: localhost