diff --git a/molecule/distributed-wazuh/converge.yml b/molecule/distributed-wazuh/converge.yml index 8ff42c37..3fd4169a 100644 --- a/molecule/distributed-wazuh/converge.yml +++ b/molecule/distributed-wazuh/converge.yml @@ -79,6 +79,10 @@ become: true become_user: root roles: + # 1. Check packages + - role: ../../roles/wazuh/check-packages + become: no + delegate_to: localhost # 1. Wazuh indexer - role: ../../roles/wazuh/wazuh-indexer when: inventory_hostname in groups['indexer'] diff --git a/roles/wazuh/ansible-wazuh-agent/tasks/main.yml b/roles/wazuh/ansible-wazuh-agent/tasks/main.yml index f84d3748..d12446b1 100644 --- a/roles/wazuh/ansible-wazuh-agent/tasks/main.yml +++ b/roles/wazuh/ansible-wazuh-agent/tasks/main.yml @@ -1,16 +1,15 @@ --- -- name: Get latest Wazuh release - become: false - shell: "curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\\1/'| cut -c 2-" - register: wazuh_latest_release - delegate_to: localhost +- include_vars: ../../vars/repo_vars.yml - include_vars: ../../vars/repo.yml - when: "wazuh_latest_release.stdout is version(wazuh_agent_version, operator='ge')" + when: packages_repository == 'production' -- include_vars: ../../vars/repo_dev.yml - when: "wazuh_latest_release.stdout is version(wazuh_agent_version, operator='lt')" +- include_vars: ../../vars/repo_pre-release.yml + when: packages_repository == 'pre-release' + +- include_vars: ../../vars/repo_staging.yml + when: packages_repository == 'staging' - name: Overlay wazuh_agent_config on top of defaults set_fact: diff --git a/roles/wazuh/ansible-wazuh-manager/tasks/main.yml b/roles/wazuh/ansible-wazuh-manager/tasks/main.yml index e27784ca..57ee132d 100644 --- a/roles/wazuh/ansible-wazuh-manager/tasks/main.yml +++ b/roles/wazuh/ansible-wazuh-manager/tasks/main.yml @@ -9,15 +9,16 @@ - curl state: present -- name: Get latest wazuh release - shell: "curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\\1/'| cut -c 2-" - register: wazuh_latest_release +- include_vars: ../../vars/repo_vars.yml - include_vars: ../../vars/repo.yml - when: "wazuh_latest_release.stdout is version(wazuh_manager_version, operator='ge')" + when: packages_repository == 'production' -- include_vars: ../../vars/repo_dev.yml - when: "wazuh_latest_release.stdout is version(wazuh_manager_version, operator='lt')" +- include_vars: ../../vars/repo_pre-release.yml + when: packages_repository == 'pre-release' + +- include_vars: ../../vars/repo_staging.yml + when: packages_repository == 'staging' - name: Overlay wazuh_manager_config on top of defaults set_fact: diff --git a/roles/wazuh/check-packages/defaults/main.yml b/roles/wazuh/check-packages/defaults/main.yml new file mode 100644 index 00000000..e4a9fa3b --- /dev/null +++ b/roles/wazuh/check-packages/defaults/main.yml @@ -0,0 +1,2 @@ +--- +wazuh_version: 4.3.9 \ No newline at end of file diff --git a/packages_uri.txt b/roles/wazuh/check-packages/files/packages_uri.txt similarity index 52% rename from packages_uri.txt rename to roles/wazuh/check-packages/files/packages_uri.txt index 94204cb6..51a3043a 100644 --- a/packages_uri.txt +++ b/roles/wazuh/check-packages/files/packages_uri.txt @@ -1,7 +1,7 @@ yum/wazuh-manager-VERSION-1.x86_64.rpm yum/filebeat-oss-7.10.2-x86_64.rpm yum/wazuh-dashboard-VERSION-1.x86_64.rpm -yum/wazuh-indexer-VERSION-1.x86_64.rp -apt/pool/main/w/wazuh-agent/wazuh-agent_VERSION-1_ppc64el.deb +yum/wazuh-indexer-VERSION-1.x86_64.rpm +apt/pool/main/w/wazuh-agent/wazuh-agent_VERSION-1_amd64.deb windows/wazuh-agent-VERSION-1.msi -yum/wazuh-agent-VERSION-1.x86_64.rpm +yum/wazuh-agent-VERSION-1.x86_64.rpm \ No newline at end of file diff --git a/check_packages.sh b/roles/wazuh/check-packages/scripts/check_packages.sh similarity index 78% rename from check_packages.sh rename to roles/wazuh/check-packages/scripts/check_packages.sh index 903399b6..05b8ca40 100755 --- a/check_packages.sh +++ b/roles/wazuh/check-packages/scripts/check_packages.sh @@ -3,7 +3,7 @@ VERSION=$1 #echo $VERSION ## Replace VERSION with $VERSION in packages_uri.txt and save it as packages_uri_new.txt -sed 's,VERSION,'$VERSION',g' packages_uri.txt > packages_uri_new.txt +sed 's,VERSION,'$VERSION',g' ../files/packages_uri.txt > ../files/packages_uri_new.txt checkPackages(){ ## Set S3 Bucket URL @@ -21,7 +21,7 @@ checkPackages(){ ## Loop through the packages_uri_new.txt file while IFS= read -r URI do - #echo "$URI" + echo "$URI" ## Check if the package exists PACKAGE=$(curl --silent -I $PACKAGES_URL$URI | grep -E "^HTTP" | awk '{print $2}') ## If it does not exist set EXISTS to 1 (false) @@ -30,20 +30,28 @@ checkPackages(){ #echo $PACKAGES_URL$URI "does not exist" return $EXISTS fi - done < packages_uri_new.txt + done < ../files/packages_uri_new.txt return $EXISTS } +replaceVars(){ + sed -i "s|packages_repository:.*|packages_repository: $1|g" ../../vars/repo_vars.yml + +} + ## Call the checkPackages function for each repository if checkPackages "production"; then echo "production" + replaceVars "production" exit 0 elif checkPackages "pre-release"; then echo "pre-release" + replaceVars "pre-release" exit 0 elif checkPackages "staging"; then echo "staging" + replaceVars "staging" exit 0 else echo "Failed" diff --git a/roles/wazuh/check-packages/tasks/main.yml b/roles/wazuh/check-packages/tasks/main.yml new file mode 100644 index 00000000..bbee623b --- /dev/null +++ b/roles/wazuh/check-packages/tasks/main.yml @@ -0,0 +1,11 @@ +--- + - name: Check packages + shell: | + ./check_packages.sh {{ wazuh_version }} + args: + warn: false + executable: /bin/bash + chdir: "{{ role_path }}/scripts/" + delegate_to: localhost + become: no + diff --git a/roles/wazuh/vars/repo_dev.yml b/roles/wazuh/vars/repo_pre-release.yml similarity index 100% rename from roles/wazuh/vars/repo_dev.yml rename to roles/wazuh/vars/repo_pre-release.yml diff --git a/roles/wazuh/vars/repo_staging.yml b/roles/wazuh/vars/repo_staging.yml new file mode 100644 index 00000000..2c2b4966 --- /dev/null +++ b/roles/wazuh/vars/repo_staging.yml @@ -0,0 +1,12 @@ +wazuh_repo: + apt: 'deb https://packages-dev.wazuh.com/staging/apt/ unstable main' + yum: 'https://packages-dev.wazuh.com/staging/yum/' + gpg: 'https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH' + key_id: '0DCFCA5547B19D2A6099506096B3EE5F29111145' +wazuh_winagent_config_url: "https://packages-dev.wazuh.com/staging/windows/wazuh-agent-{{ wazuh_agent_version }}-1.msi" +wazuh_winagent_package_name: "wazuh-agent-{{ wazuh_agent_version }}-1.msi" + +certs_gen_tool_version: 4.4 + +# Url of certificates generator tool +certs_gen_tool_url: "https://packages-dev.wazuh.com/{{ certs_gen_tool_version }}/wazuh-certs-tool.sh" \ No newline at end of file diff --git a/roles/wazuh/vars/repo_vars.yml b/roles/wazuh/vars/repo_vars.yml new file mode 100644 index 00000000..53157764 --- /dev/null +++ b/roles/wazuh/vars/repo_vars.yml @@ -0,0 +1 @@ +packages_repository: production \ No newline at end of file diff --git a/roles/wazuh/wazuh-dashboard/tasks/main.yml b/roles/wazuh/wazuh-dashboard/tasks/main.yml index 44bcaa1c..3f3fa665 100755 --- a/roles/wazuh/wazuh-dashboard/tasks/main.yml +++ b/roles/wazuh/wazuh-dashboard/tasks/main.yml @@ -1,13 +1,14 @@ --- -- name: Get latest wazuh release - shell: "curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\\1/'| cut -c 2-" - register: wazuh_latest_release +- include_vars: ../../vars/repo_vars.yml - include_vars: ../../vars/repo.yml - when: "wazuh_latest_release.stdout is version(dashboard_version, operator='ge')" + when: packages_repository == 'production' -- include_vars: ../../vars/repo_dev.yml - when: "wazuh_latest_release.stdout is version(dashboard_version, operator='lt')" +- include_vars: ../../vars/repo_pre-release.yml + when: packages_repository == 'pre-release' + +- include_vars: ../../vars/repo_staging.yml + when: packages_repository == 'staging' - import_tasks: RedHat.yml when: ansible_os_family == 'RedHat' diff --git a/roles/wazuh/wazuh-indexer/tasks/main.yml b/roles/wazuh/wazuh-indexer/tasks/main.yml index f3afe7f8..48034ae6 100644 --- a/roles/wazuh/wazuh-indexer/tasks/main.yml +++ b/roles/wazuh/wazuh-indexer/tasks/main.yml @@ -1,13 +1,14 @@ --- -- name: Get latest wazuh release - shell: "curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\\1/'| cut -c 2-" - register: wazuh_latest_release +- include_vars: ../../vars/repo_vars.yml - include_vars: ../../vars/repo.yml - when: "wazuh_latest_release.stdout is version(indexer_version, operator='ge')" + when: packages_repository == 'production' -- include_vars: ../../vars/repo_dev.yml - when: "wazuh_latest_release.stdout is version(indexer_version, operator='lt')" +- include_vars: ../../vars/repo_pre-release.yml + when: packages_repository == 'pre-release' + +- include_vars: ../../vars/repo_staging.yml + when: packages_repository == 'staging' - import_tasks: local_actions.yml when: