From b22fa235c7f88bf55a0bff3e1e0cd3cc33b8eb99 Mon Sep 17 00:00:00 2001 From: c-bordon Date: Tue, 3 Oct 2023 15:52:25 -0300 Subject: [PATCH] Updated build image script --- .env | 3 + build-docker-images/build-images.sh | 127 ++++++++++++++++-- .../wazuh-dashboard/Dockerfile | 2 +- build-docker-images/wazuh-manager/Dockerfile | 6 +- 4 files changed, 125 insertions(+), 13 deletions(-) diff --git a/.env b/.env index d51cc0c4..058409f9 100755 --- a/.env +++ b/.env @@ -1,3 +1,6 @@ WAZUH_VERSION=4.6.0 WAZUH_IMAGE_VERSION=4.6.0 WAZUH_TAG_REVISION=1 +FILEBEAT_TEMPLATE_BRANCH=v4.6.0 +WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.2.tar.gz +WAZUH_UI_REVISION=1 diff --git a/build-docker-images/build-images.sh b/build-docker-images/build-images.sh index a7b3ca46..79e56bc7 100755 --- a/build-docker-images/build-images.sh +++ b/build-docker-images/build-images.sh @@ -1,11 +1,120 @@ -WAZUH_IMAGE_VERSION=4.6.0 -WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g') -WAZUH_TAG_REVISION=1 -WAZUH_CURRENT_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') -IMAGE_VERSION=${WAZUH_IMAGE_VERSION} +#!/bin/bash -echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env -echo WAZUH_IMAGE_VERSION=$IMAGE_VERSION >> .env -echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env +# Wazuh package generator +# Copyright (C) 2023, Wazuh Inc. +# +# This program is a free software; you can redistribute it +# and/or modify it under the terms of the GNU General Public +# License (version 2) as published by the FSF - Free Software +# Foundation. -docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache \ No newline at end of file +WAZUH_IMAGE_VERSION="4.6.0" +WAZUH_VERSION="$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')" +WAZUH_TAG_REVISION="1" +WAZUH_DEV_STAGE="" +FILEBEAT_TEMPLATE_BRANCH="v${WAZUH_IMAGE_VERSION}" +FILEBEAT_MODULE_VERSION="0.2" +WAZUH_FILEBEAT_MODULE="wazuh-filebeat-${FILEBEAT_MODULE_VERSION}.tar.gz" +WAZUH_UI_REVISION="${WAZUH_TAG_REVISION}" + +# ----------------------------------------------------------------------------- + +trap ctrl_c INT + +clean() { + exit_code=$1 + + exit ${exit_code} +} + +ctrl_c() { + clean 1 +} + +# ----------------------------------------------------------------------------- + + +build() { + + if [ "${WAZUH_DEV_STAGE}" ];then + FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}-${WAZUH_DEV_STAGE,,}" + fi + echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env + echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env + echo WAZUH_TAG_REVISION=$WAZUH_TAG_REVISION >> .env + echo FILEBEAT_TEMPLATE_BRANCH=$FILEBEAT_TEMPLATE_BRANCH >> .env + echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env + echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env + + docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache + + return 0 +} + +# ----------------------------------------------------------------------------- + +help() { + echo + echo "Usage: $0 [OPTIONS]" + echo + echo " -d, --dev [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default." + echo " -f, --filebeat-module [Optional] Set Filebeat module version. By default ${FILEBEAT_MODULE_VERSION}." + echo " -r, --revision [Optional] Package revision. By default ${WAZUH_TAG_REVISION}" + echo " -v, --version [Optional] Set the Wazuh version should be builded. By default, ${WAZUH_IMAGE_VERSION}." + echo " -h, --help Show this help." + echo + exit $1 +} + +# ----------------------------------------------------------------------------- + +main() { + while [ -n "${1}" ] + do + case "${1}" in + "-h"|"--help") + help 0 + ;; + "-d"|"--dev") + if [ -n "${2}" ]; then + WAZUH_DEV_STAGE="${2}" + shift 2 + else + help 1 + fi + ;; + "-f"|"--filebeat-module") + if [ -n "${2}" ]; then + FILEBEAT_MODULE_VERSION="${2}" + shift 2 + else + help 1 + fi + ;; + "-r"|"--revision") + if [ -n "${2}" ]; then + WAZUH_TAG_REVISION="${2}" + shift 2 + else + help 1 + fi + ;; + "-v"|"--version") + if [ -n "$2" ]; then + WAZUH_IMAGE_VERSION="$2" + shift 2 + else + help 1 + fi + ;; + *) + help 1 + esac + done + + build || clean 1 + + clean 0 +} + +main "$@" \ No newline at end of file diff --git a/build-docker-images/wazuh-dashboard/Dockerfile b/build-docker-images/wazuh-dashboard/Dockerfile index ef571d5c..44430b10 100644 --- a/build-docker-images/wazuh-dashboard/Dockerfile +++ b/build-docker-images/wazuh-dashboard/Dockerfile @@ -4,7 +4,7 @@ FROM ubuntu:focal AS builder ARG WAZUH_VERSION ARG WAZUH_TAG_REVISION ARG INSTALL_DIR=/usr/share/wazuh-dashboard -ARG WAZUH_UI_REVISION=1 +ARG WAZUH_UI_REVISION # Update and install dependencies RUN apt-get update && apt install curl libcap2-bin xz-utils -y diff --git a/build-docker-images/wazuh-manager/Dockerfile b/build-docker-images/wazuh-manager/Dockerfile index 28a6e7b2..878a07a2 100644 --- a/build-docker-images/wazuh-manager/Dockerfile +++ b/build-docker-images/wazuh-manager/Dockerfile @@ -5,10 +5,10 @@ RUN rm /bin/sh && ln -s /bin/bash /bin/sh ARG WAZUH_VERSION ARG WAZUH_TAG_REVISION -ARG TEMPLATE_VERSION=v4.6.0 +ARG FILEBEAT_TEMPLATE_BRANCH ARG FILEBEAT_CHANNEL=filebeat-oss ARG FILEBEAT_VERSION=7.10.2 -ARG WAZUH_FILEBEAT_MODULE="wazuh-filebeat-0.2.tar.gz" +ARG WAZUH_FILEBEAT_MODULE RUN apt-get update && apt install curl apt-transport-https lsb-release gnupg -y @@ -38,7 +38,7 @@ COPY config/filebeat.yml /etc/filebeat/ RUN chmod go-w /etc/filebeat/filebeat.yml -ADD https://raw.githubusercontent.com/wazuh/wazuh/$TEMPLATE_VERSION/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat +ADD https://raw.githubusercontent.com/wazuh/wazuh/$FILEBEAT_TEMPLATE_BRANCH/extensions/elasticsearch/7.x/wazuh-template.json /etc/filebeat RUN chmod go-w /etc/filebeat/wazuh-template.json # Prepare permanent data