diff --git a/build-docker-images/build.sh b/build-docker-images/build.sh new file mode 100755 index 00000000..2c1af5bd --- /dev/null +++ b/build-docker-images/build.sh @@ -0,0 +1,15 @@ +WAZUH_IMAGE_VERSION=4.3.0 +WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g') +WAZUH_ACTUAL_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') + +## If wazuh manager exists in apt dev repository, change variables, if not exit 1 +if [ "$WAZUH_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then + IMAGE_VERSION=${WAZUH_IMAGE_VERSION} +else + IMAGE_VERSION=${WAZUH_IMAGE_VERSION}-dev +fi + +echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > env +echo WAZUH_IMAGE_VERSION=$IMAGE_VERSION >> env + +docker-compose --env-file env build --no-cache \ No newline at end of file diff --git a/build-docker-images/docker-compose.yml b/build-docker-images/docker-compose.yml index 0d9b9524..bf7a8f29 100644 --- a/build-docker-images/docker-compose.yml +++ b/build-docker-images/docker-compose.yml @@ -3,8 +3,11 @@ version: '3.7' services: wazuh.manager: - build: wazuh-manager/ - image: wazuh/wazuh-manager:4.3.0 + build: + context: wazuh-manager/ + args: + - WAZUH_VERSION=${WAZUH_VERSION} + image: wazuh/wazuh-manager:${WAZUH_IMAGE_VERSION} hostname: wazuh.manager restart: always ports: @@ -31,8 +34,11 @@ services: - filebeat_var:/var/lib/filebeat wazuh.indexer: - build: wazuh-indexer/ - image: wazuh/wazuh-indexer:4.3.0 + build: + context: wazuh-indexer/ + args: + - WAZUH_VERSION=${WAZUH_VERSION} + image: wazuh/wazuh-indexer:${WAZUH_IMAGE_VERSION} hostname: wazuh.indexer restart: always ports: @@ -48,8 +54,11 @@ services: hard: 65536 wazuh.dashboard: - build: wazuh-dashboard/ - image: wazuh/wazuh-dashboard:4.3.0 + build: + context: wazuh-dashboard/ + args: + - WAZUH_VERSION=${WAZUH_VERSION} + image: wazuh/wazuh-dashboard:${WAZUH_IMAGE_VERSION} hostname: wazuh.dashboard restart: always ports: diff --git a/build-docker-images/env b/build-docker-images/env new file mode 100644 index 00000000..45d8be19 --- /dev/null +++ b/build-docker-images/env @@ -0,0 +1,2 @@ +WAZUH_VERSION=4.3.0 +WAZUH_IMAGE_VERSION=4.3.0-dev diff --git a/build-docker-images/wazuh-dashboard/Dockerfile b/build-docker-images/wazuh-dashboard/Dockerfile index 3853f180..ff381476 100644 --- a/build-docker-images/wazuh-dashboard/Dockerfile +++ b/build-docker-images/wazuh-dashboard/Dockerfile @@ -1,7 +1,7 @@ # Wazuh Docker Copyright (C) 2021 Wazuh Inc. (License GPLv2) FROM ubuntu:focal AS builder -ARG WAZUH_VERSION=4.3.0 +ARG WAZUH_VERSION ARG INSTALL_DIR=/usr/share/wazuh-dashboard # Update and install dependencies @@ -24,8 +24,9 @@ RUN $INSTALL_DIR/bin/opensearch-dashboards-keystore create --allow-root && \ echo kibanaserver | $INSTALL_DIR/bin/opensearch-dashboards-keystore add opensearch.username --stdin --allow-root && \ echo kibanaserver | $INSTALL_DIR/bin/opensearch-dashboards-keystore add opensearch.password --stdin --allow-root -# Install Wazuh App -RUN $INSTALL_DIR/bin/opensearch-dashboards-plugin install https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}.zip --allow-root +COPY config/install_wazuh_app.sh / +RUN chmod 775 /install_wazuh_app.sh +RUN bash /install_wazuh_app.sh # Copy and set permissions to config files COPY config/opensearch_dashboards.yml $INSTALL_DIR/config/ diff --git a/build-docker-images/wazuh-dashboard/config/install_wazuh_app.sh b/build-docker-images/wazuh-dashboard/config/install_wazuh_app.sh new file mode 100644 index 00000000..c4f0d5d5 --- /dev/null +++ b/build-docker-images/wazuh-dashboard/config/install_wazuh_app.sh @@ -0,0 +1,14 @@ +## Variables +WAZUH_IMAGE_VERSION=$(echo $WAZUH_VERSION | sed -e 's/\.//g') +WAZUH_ACTUAL_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') +echo $WAZUH_IMAGE_VERSION +echo $WAZUH_ACTUAL_VERSION +## If wazuh manager exists in apt dev repository, change variables, if not exit 1 +if [ "$WAZUH_IMAGE_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then + WAZUH_APP=https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}.zip +else + WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}.zip +fi + +# Install Wazuh App +$INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_APP --allow-root \ No newline at end of file diff --git a/build-docker-images/wazuh-indexer/Dockerfile b/build-docker-images/wazuh-indexer/Dockerfile index a09d9e56..8955e274 100644 --- a/build-docker-images/wazuh-indexer/Dockerfile +++ b/build-docker-images/wazuh-indexer/Dockerfile @@ -1,6 +1,8 @@ # Wazuh Docker Copyright (C) 2021 Wazuh Inc. (License GPLv2) FROM ubuntu:focal AS builder +ARG WAZUH_VERSION + RUN apt-get update -y && apt-get install curl openssl xz-utils -y COPY config/opensearch.yml / diff --git a/build-docker-images/wazuh-indexer/config/config.sh b/build-docker-images/wazuh-indexer/config/config.sh index a598ecf8..3ba9b8d5 100644 --- a/build-docker-images/wazuh-indexer/config/config.sh +++ b/build-docker-images/wazuh-indexer/config/config.sh @@ -8,7 +8,7 @@ export TARGET_DIR=${CURDIR}/debian/${NAME} # Package build options export USER=${NAME} export GROUP=${NAME} -export VERSION=4.3.0 +export VERSION=${WAZUH_VERSION} export LOG_DIR=/var/log/${NAME} export LIB_DIR=/var/lib/${NAME} export PID_DIR=/run/${NAME} diff --git a/build-docker-images/wazuh-manager/Dockerfile b/build-docker-images/wazuh-manager/Dockerfile index 11a852e1..bd7a777a 100644 --- a/build-docker-images/wazuh-manager/Dockerfile +++ b/build-docker-images/wazuh-manager/Dockerfile @@ -1,17 +1,22 @@ # Wazuh Docker Copyright (C) 2021 Wazuh Inc. (License GPLv2) FROM ubuntu:focal -ARG WAZUH_VERSION=4.3.0 -ARG TEMPLATE_VERSION=4.3 +RUN rm /bin/sh && ln -s /bin/bash /bin/sh + +ARG WAZUH_VERSION +ARG TEMPLATE_VERSION=4.2 ARG FILEBEAT_CHANNEL=filebeat-oss ARG FILEBEAT_VERSION=7.10.2 ARG WAZUH_FILEBEAT_MODULE="wazuh-filebeat-0.1.tar.gz" RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y -RUN apt-key adv --fetch-keys https://packages.wazuh.com/key/GPG-KEY-WAZUH && \ - echo "deb https://packages.wazuh.com/4.x/apt/ stable main" | tee -a /etc/apt/sources.list.d/wazuh.list && \ - apt-get update && \ +COPY config/check_repository.sh / + +RUN chmod 775 /check_repository.sh +RUN source /check_repository.sh + +RUN apt-get update && \ apt-get install wazuh-manager=${WAZUH_VERSION}-1 RUN curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-amd64.deb &&\ diff --git a/build-docker-images/wazuh-manager/config/check_repository.sh b/build-docker-images/wazuh-manager/config/check_repository.sh new file mode 100644 index 00000000..1a0763ce --- /dev/null +++ b/build-docker-images/wazuh-manager/config/check_repository.sh @@ -0,0 +1,13 @@ +## Variables +WAZUH_IMAGE_VERSION=$(echo $WAZUH_VERSION | sed -e 's/\.//g') +WAZUH_ACTUAL_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '\"tag_name\":' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2- | sed -e 's/\.//g') +## If wazuh manager exists in apt dev repository, change variables, if not exit 1 +if [ "$WAZUH_IMAGE_VERSION" -le "$WAZUH_ACTUAL_VERSION" ]; then + APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH + REPOSITORY="deb https://packages.wazuh.com/4.x/apt/ stable main" +else + APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH + REPOSITORY="deb https://packages-dev.wazuh.com/pre-release/apt/ unstable main" +fi +apt-key adv --fetch-keys ${APT_KEY} +echo ${REPOSITORY} | tee -a /etc/apt/sources.list.d/wazuh.list \ No newline at end of file