mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-10-29 02:53:41 +00:00
Compare commits
468 Commits
v4.8.0
...
change/182
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e822b0744e | ||
|
|
c6284f5b2d | ||
|
|
212bc7d346 | ||
|
|
f0c945b3bd | ||
|
|
c6bc6cad0b | ||
|
|
4eea59da8b | ||
|
|
2cf6253985 | ||
|
|
81a41f93ed | ||
|
|
0f15acb783 | ||
|
|
118c7805e3 | ||
|
|
7245dfb0ef | ||
|
|
b82b0efdd8 | ||
|
|
e9851e5aa7 | ||
|
|
4b04578cf5 | ||
|
|
8e78fdfeec | ||
|
|
3fe18c0f53 | ||
|
|
34de7307f6 | ||
|
|
cea3caee44 | ||
|
|
1e28240ceb | ||
|
|
c17b22c13b | ||
|
|
2e22add312 | ||
|
|
e161490f4d | ||
|
|
1445bdc420 | ||
|
|
9b2f667a8e | ||
|
|
b43c9ddc96 | ||
|
|
49b45fb342 | ||
|
|
5d272abb51 | ||
|
|
a371c28a05 | ||
|
|
1da9ce981c | ||
|
|
938a3df846 | ||
|
|
3672c99a31 | ||
|
|
4a9f83ddee | ||
|
|
dfb3289bd8 | ||
|
|
65b0d659d0 | ||
|
|
34b3c00596 | ||
|
|
c1fd8e2380 | ||
|
|
cf972d3858 | ||
|
|
d306f942f7 | ||
|
|
abde776e1b | ||
|
|
b6f628f3c1 | ||
|
|
06a5ba5297 | ||
|
|
51d3d7a946 | ||
|
|
85992aea95 | ||
|
|
5057d0f083 | ||
|
|
562eb60e0f | ||
|
|
58d6ec2953 | ||
|
|
300c1bbcdd | ||
|
|
e1bf0a0dc5 | ||
|
|
c1565a5553 | ||
|
|
1fe7647b47 | ||
|
|
bd5e95a2b8 | ||
|
|
75fb9a4e4c | ||
|
|
f002f7e7b0 | ||
|
|
72c0b196d0 | ||
|
|
4aaf0a1b8c | ||
|
|
1186c6f9d6 | ||
|
|
87a3ccd3ee | ||
|
|
7f08f4cbff | ||
|
|
607b01351e | ||
|
|
b2de3600ce | ||
|
|
ce53f0f05e | ||
|
|
aa69278c44 | ||
|
|
546f3cef9b | ||
|
|
754c4b331e | ||
|
|
4433476038 | ||
|
|
e60c07a18f | ||
|
|
fe0f76bd7b | ||
|
|
e4fec103ca | ||
|
|
28acd68e6e | ||
|
|
fc8a8d6869 | ||
|
|
288630a722 | ||
|
|
5c1d43c702 | ||
|
|
ff7c511f3b | ||
|
|
5f689b8802 | ||
|
|
f73a819ee4 | ||
|
|
ebf8379373 | ||
|
|
d024c37fc5 | ||
|
|
87f3dccb0f | ||
|
|
29e679363d | ||
|
|
6195484a82 | ||
|
|
3d9981d9fa | ||
|
|
06821f172f | ||
|
|
660e472b7c | ||
|
|
af33c2dd7c | ||
|
|
331fb1969e | ||
|
|
b88d852b9f | ||
|
|
281cde7292 | ||
|
|
c9bbf912b0 | ||
|
|
7a189605eb | ||
|
|
ae32e0111d | ||
|
|
e29dd1195b | ||
|
|
dafe93039f | ||
|
|
0adf702f70 | ||
|
|
7be457e3ff | ||
|
|
6e432a133d | ||
|
|
f49bba385c | ||
|
|
a7bb241f8a | ||
|
|
6e0311a330 | ||
|
|
bc6ab77773 | ||
|
|
e4f782f55d | ||
|
|
b29bd6b936 | ||
|
|
2bed6e2d95 | ||
|
|
73253898a2 | ||
|
|
2b30318a08 | ||
|
|
49fb35633c | ||
|
|
052bce7ae1 | ||
|
|
5fb9a0b6b1 | ||
|
|
34d25df8ad | ||
|
|
c4bef8df3e | ||
|
|
31440d4a54 | ||
|
|
06e259714c | ||
|
|
d2bb16a493 | ||
|
|
a0c1fd8bf5 | ||
|
|
c548f3e096 | ||
|
|
69b4169fd5 | ||
|
|
1ee604e4b1 | ||
|
|
5b3f46142e | ||
|
|
845f7e59ec | ||
|
|
633c50bce6 | ||
|
|
347187c411 | ||
|
|
af11b8cbbb | ||
|
|
77ef56ada7 | ||
|
|
081436be42 | ||
|
|
a7cc8ef16e | ||
|
|
79ead0cf55 | ||
|
|
7b415dc700 | ||
|
|
f2a5901fd6 | ||
|
|
2f3f00fc51 | ||
|
|
98675f00fc | ||
|
|
26e94102ce | ||
|
|
fc896872e2 | ||
|
|
e17302f280 | ||
|
|
010642113b | ||
|
|
90f1d446c1 | ||
|
|
23848dc8bf | ||
|
|
9e6defa9d1 | ||
|
|
6a3b470f3c | ||
|
|
91295a4b39 | ||
|
|
8885425b7f | ||
|
|
2060e2103b | ||
|
|
39768a397a | ||
|
|
66a1533425 | ||
|
|
1f7eae1247 | ||
|
|
2c2388ce4a | ||
|
|
be82d2c41d | ||
|
|
ff54368593 | ||
|
|
7b03b99022 | ||
|
|
8a925f010f | ||
|
|
8468687b0c | ||
|
|
da64bb47d5 | ||
|
|
f3b4631bb0 | ||
|
|
2c6704652c | ||
|
|
7cfda0550d | ||
|
|
77e548485a | ||
|
|
79ad691772 | ||
|
|
0980cf0257 | ||
|
|
d9a2ebf090 | ||
|
|
240f22b19c | ||
|
|
8022d3a7fc | ||
|
|
12fab33f52 | ||
|
|
71dac1f51b | ||
|
|
d31228306c | ||
|
|
d37474e7c9 | ||
|
|
3b91ae3668 | ||
|
|
edf7aef3cc | ||
|
|
25e21e71da | ||
|
|
475d29db39 | ||
|
|
bc102ace7f | ||
|
|
08de09cd08 | ||
|
|
15995ac5db | ||
|
|
63f965d0fd | ||
|
|
bfa6dfb3b3 | ||
|
|
521711bf63 | ||
|
|
347132b589 | ||
|
|
53275bebb9 | ||
|
|
7ca2862ad3 | ||
|
|
5a13dd99a7 | ||
|
|
a9f2263da8 | ||
|
|
f6928b62e6 | ||
|
|
a13406a029 | ||
|
|
b9a52df0ff | ||
|
|
5252ce6c53 | ||
|
|
5ef484647a | ||
|
|
f9adac8c56 | ||
|
|
8bb96f3d69 | ||
|
|
22f34ccb40 | ||
|
|
369560f59f | ||
|
|
574c7b05c7 | ||
|
|
fc563acdaa | ||
|
|
0778474353 | ||
|
|
6038fce076 | ||
|
|
3b7fa8d000 | ||
|
|
4116634ddd | ||
|
|
fbaee58767 | ||
|
|
8b18fb613c | ||
|
|
45366e121f | ||
|
|
93ea37158d | ||
|
|
1f58526256 | ||
|
|
041cea8a9a | ||
|
|
53db9379b8 | ||
|
|
02074c678e | ||
|
|
f809a1ebbb | ||
|
|
a5c313843e | ||
|
|
ea0e679c27 | ||
|
|
7ca14b9fc8 | ||
|
|
42977e3131 | ||
|
|
f4e7d1938d | ||
|
|
691694a38d | ||
|
|
19f4aaea4d | ||
|
|
5bbacebe89 | ||
|
|
f9c5215c8b | ||
|
|
564e2b3ec4 | ||
|
|
c5970f2922 | ||
|
|
276c8a2e6c | ||
|
|
b1f0a1f46a | ||
|
|
5795fa154d | ||
|
|
424846ae40 | ||
|
|
db4133d7a8 | ||
|
|
50769ef689 | ||
|
|
dbb776690d | ||
|
|
60746362ac | ||
|
|
f61af29c6b | ||
|
|
1aa149933b | ||
|
|
06a797d793 | ||
|
|
8695a087d5 | ||
|
|
61b3f5f6ed | ||
|
|
868c371c31 | ||
|
|
bd7aedc0dd | ||
|
|
4177d1095c | ||
|
|
97e4dde53d | ||
|
|
884151b322 | ||
|
|
447c0bdaf8 | ||
|
|
e6c5e82a32 | ||
|
|
d237faa5ab | ||
|
|
92d0582201 | ||
|
|
cc206659cc | ||
|
|
8bafe1295b | ||
|
|
027b26047f | ||
|
|
af023a9b44 | ||
|
|
0ec38df1c7 | ||
|
|
be0ac01c4a | ||
|
|
62ae93eee9 | ||
|
|
e292957740 | ||
|
|
eb4efb3458 | ||
|
|
46d6dc8fe5 | ||
|
|
08ba82d16d | ||
|
|
9d882fcd67 | ||
|
|
9e1c33245d | ||
|
|
6dfa4a2e32 | ||
|
|
8ab3018e62 | ||
|
|
e08a3d85db | ||
|
|
42db717668 | ||
|
|
7b1d2836fa | ||
|
|
301ea9e21a | ||
|
|
0b3e9ba8e7 | ||
|
|
189e875939 | ||
|
|
a335684a27 | ||
|
|
9d851e6399 | ||
|
|
c28d104022 | ||
|
|
3859ca38ec | ||
|
|
e06d5ae2e4 | ||
|
|
4ea8fc266e | ||
|
|
5771c49f0d | ||
|
|
471aedae5b | ||
|
|
82955c06ee | ||
|
|
84280fae08 | ||
|
|
b38b3c7e59 | ||
|
|
9c33d34254 | ||
|
|
cd3e8b8b30 | ||
|
|
f0253ba984 | ||
|
|
8e7b2cd390 | ||
|
|
d43f85312a | ||
|
|
ae9d06ed35 | ||
|
|
b84a49db92 | ||
|
|
73fffcf52d | ||
|
|
999d01f48a | ||
|
|
bd758935e7 | ||
|
|
0e284a2309 | ||
|
|
b597e1cecc | ||
|
|
247a6b0375 | ||
|
|
879a10cc9f | ||
|
|
0fef2182eb | ||
|
|
7b00fb8f73 | ||
|
|
cdbc5485b4 | ||
|
|
6249cb8f30 | ||
|
|
7fe9ba2e19 | ||
|
|
996c593242 | ||
|
|
6eb3f60684 | ||
|
|
bbc4529088 | ||
|
|
60e5304cd6 | ||
|
|
28f2320c6e | ||
|
|
819880d1cf | ||
|
|
f08c39ed6d | ||
|
|
1916f4166a | ||
|
|
36bdb5fedb | ||
|
|
15a856dc32 | ||
|
|
1486b5942c | ||
|
|
25319ee004 | ||
|
|
f47ca7fbc0 | ||
|
|
5ef94b819c | ||
|
|
e77ceb6ad6 | ||
|
|
127e74296a | ||
|
|
0aa63db271 | ||
|
|
583f75176d | ||
|
|
11d2c84203 | ||
|
|
2e52ebd7b7 | ||
|
|
4223b44f3f | ||
|
|
3fc48bec11 | ||
|
|
56750a07f2 | ||
|
|
b362e0774b | ||
|
|
d11e421cdd | ||
|
|
99c163f4e5 | ||
|
|
acc3c22bed | ||
|
|
6eb435a82f | ||
|
|
ac760dbb14 | ||
|
|
2adb0cc46d | ||
|
|
ca6cc555f2 | ||
|
|
eca65a8538 | ||
|
|
a063b27592 | ||
|
|
bc2a446c17 | ||
|
|
80b7c047ec | ||
|
|
4b0818bc2c | ||
|
|
28c051a05e | ||
|
|
1f0f98ddaa | ||
|
|
bc35a25b3b | ||
|
|
0399e7b16a | ||
|
|
e8f5fd25f2 | ||
|
|
125053f6d5 | ||
|
|
f38bc64415 | ||
|
|
2ee7cfa515 | ||
|
|
701fdc33bb | ||
|
|
719d4c2b05 | ||
|
|
78cb2fc571 | ||
|
|
6f49d17696 | ||
|
|
f0c56d6da2 | ||
|
|
e86fbd6791 | ||
|
|
3e120aee77 | ||
|
|
e10fd22fcc | ||
|
|
4c3a6696f6 | ||
|
|
5ed2095854 | ||
|
|
f3474a392e | ||
|
|
62fc011c2c | ||
|
|
bdce114251 | ||
|
|
0a440c0433 | ||
|
|
311ffc72d8 | ||
|
|
65fe95472b | ||
|
|
21e1943cab | ||
|
|
4a2d9b54d3 | ||
|
|
3f320be95d | ||
|
|
5712d37a7a | ||
|
|
5d5cc9d30a | ||
|
|
956d42e932 | ||
|
|
1e70aad5f8 | ||
|
|
09841ba9e4 | ||
|
|
c014ea77f4 | ||
|
|
12d8e8f122 | ||
|
|
fe327f10a3 | ||
|
|
5063213d39 | ||
|
|
dca7f9382e | ||
|
|
577e533958 | ||
|
|
98930a6708 | ||
|
|
f08a3cf64d | ||
|
|
8cf7909bc0 | ||
|
|
0c57402b94 | ||
|
|
1e261c165e | ||
|
|
b60e875962 | ||
|
|
693b9d9c23 | ||
|
|
a275a08cfe | ||
|
|
e74db2ad83 | ||
|
|
2709a8e457 | ||
|
|
0682effeca | ||
|
|
c248592d39 | ||
|
|
6049aec381 | ||
|
|
ad6a08c2b0 | ||
|
|
a583069698 | ||
|
|
a67c407bfe | ||
|
|
6138516ad9 | ||
|
|
665f6fd84a | ||
|
|
9c36a8a13b | ||
|
|
2487a5481e | ||
|
|
8cb7da82df | ||
|
|
91513bda93 | ||
|
|
6b62f1c738 | ||
|
|
7257ddc0aa | ||
|
|
bdd919fc48 | ||
|
|
3112eb2bd5 | ||
|
|
e9ed0d1d31 | ||
|
|
ed9b2f0d39 | ||
|
|
24f12a72d7 | ||
|
|
faddbe4af4 | ||
|
|
f4596dc833 | ||
|
|
78006fc5bd | ||
|
|
956be62183 | ||
|
|
60d6fb8b98 | ||
|
|
2b10eff949 | ||
|
|
94b8b655cd | ||
|
|
8019e386bc | ||
|
|
3398c9f2b3 | ||
|
|
0763499562 | ||
|
|
88842eede8 | ||
|
|
ef4f28a0c1 | ||
|
|
79cdec2032 | ||
|
|
ec68bd1049 | ||
|
|
0650c53e47 | ||
|
|
3dfb3505a2 | ||
|
|
f8b2399347 | ||
|
|
9d710e182d | ||
|
|
d59ee1bd35 | ||
|
|
b022f9f5c1 | ||
|
|
390a71ebea | ||
|
|
6afcc00ba7 | ||
|
|
b13aef91d1 | ||
|
|
b61953cc35 | ||
|
|
4b98b24999 | ||
|
|
1fea52d4d0 | ||
|
|
97ba114f8e | ||
|
|
12653111bd | ||
|
|
e03cfde3bc | ||
|
|
654d1dbf36 | ||
|
|
219843dbb8 | ||
|
|
92eef99c13 | ||
|
|
f5b237458a | ||
|
|
04c64e78bc | ||
|
|
8d9d04adc5 | ||
|
|
1e8db5cfbd | ||
|
|
59e0ec54bd | ||
|
|
8f3478361d | ||
|
|
6a242a36ce | ||
|
|
520291162f | ||
|
|
63217770f7 | ||
|
|
91a56eb429 | ||
|
|
c99985f479 | ||
|
|
a6d0a1ffeb | ||
|
|
f746e96b74 | ||
|
|
43ecb7f623 | ||
|
|
0567dd1632 | ||
|
|
6ef6883b8a | ||
|
|
41b25fe60f | ||
|
|
a89eddb135 | ||
|
|
284b945cd8 | ||
|
|
f1978f4b88 | ||
|
|
b6ebf179db | ||
|
|
086b24c490 | ||
|
|
4e8569009e | ||
|
|
32809c9c52 | ||
|
|
64ab19be1a | ||
|
|
27888e0b83 | ||
|
|
5791218f83 | ||
|
|
cc05d1a251 | ||
|
|
81b0172b37 | ||
|
|
4c82d16144 | ||
|
|
e756c20053 | ||
|
|
0ef3428788 | ||
|
|
52ddc7607f | ||
|
|
957de01c8f | ||
|
|
45ca9a1b37 | ||
|
|
8002f2d402 | ||
|
|
dc167c2316 | ||
|
|
6591e7e4a1 | ||
|
|
a97c14e807 | ||
|
|
49bc23682f | ||
|
|
122acb404d | ||
|
|
efac96b011 | ||
|
|
ee9fdc383a | ||
|
|
103c7e66df | ||
|
|
8aef2921d9 | ||
|
|
0d66cfbd5a | ||
|
|
77c18adce5 |
6
.env
6
.env
@@ -1,6 +1,6 @@
|
|||||||
WAZUH_VERSION=4.8.0
|
WAZUH_VERSION=4.13.0
|
||||||
WAZUH_IMAGE_VERSION=4.8.0
|
WAZUH_IMAGE_VERSION=4.13.0
|
||||||
WAZUH_TAG_REVISION=1
|
WAZUH_TAG_REVISION=1
|
||||||
FILEBEAT_TEMPLATE_BRANCH=4.8.0
|
FILEBEAT_TEMPLATE_BRANCH=4.13.0
|
||||||
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
|
WAZUH_FILEBEAT_MODULE=wazuh-filebeat-0.4.tar.gz
|
||||||
WAZUH_UI_REVISION=1
|
WAZUH_UI_REVISION=1
|
||||||
|
|||||||
2
.github/.goss.yaml
vendored
2
.github/.goss.yaml
vendored
@@ -56,7 +56,7 @@ package:
|
|||||||
wazuh-manager:
|
wazuh-manager:
|
||||||
installed: true
|
installed: true
|
||||||
versions:
|
versions:
|
||||||
- 4.8.0-1
|
- 4.13.0
|
||||||
port:
|
port:
|
||||||
tcp:1514:
|
tcp:1514:
|
||||||
listening: true
|
listening: true
|
||||||
|
|||||||
245
.github/free-disk-space/action.yml
vendored
Normal file
245
.github/free-disk-space/action.yml
vendored
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
name: "Free Disk Space (Ubuntu)"
|
||||||
|
description: "A configurable GitHub Action to free up disk space on an Ubuntu GitHub Actions runner."
|
||||||
|
|
||||||
|
# Thanks @jlumbroso for the action code https://github.com/jlumbroso/free-disk-space/
|
||||||
|
# See: https://docs.github.com/en/actions/creating-actions/metadata-syntax-for-github-actions#branding
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
android:
|
||||||
|
description: "Remove Android runtime"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
dotnet:
|
||||||
|
description: "Remove .NET runtime"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
haskell:
|
||||||
|
description: "Remove Haskell runtime"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
|
||||||
|
# option inspired by:
|
||||||
|
# https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh
|
||||||
|
large-packages:
|
||||||
|
description: "Remove large packages"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
|
||||||
|
docker-images:
|
||||||
|
description: "Remove Docker images"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
|
||||||
|
# option inspired by:
|
||||||
|
# https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159
|
||||||
|
tool-cache:
|
||||||
|
description: "Remove image tool cache"
|
||||||
|
required: false
|
||||||
|
default: "false"
|
||||||
|
|
||||||
|
swap-storage:
|
||||||
|
description: "Remove swap storage"
|
||||||
|
required: false
|
||||||
|
default: "true"
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- shell: bash
|
||||||
|
run: |
|
||||||
|
|
||||||
|
# ======
|
||||||
|
# MACROS
|
||||||
|
# ======
|
||||||
|
|
||||||
|
# macro to print a line of equals
|
||||||
|
# (silly but works)
|
||||||
|
printSeparationLine() {
|
||||||
|
str=${1:=}
|
||||||
|
num=${2:-80}
|
||||||
|
counter=1
|
||||||
|
output=""
|
||||||
|
while [ $counter -le $num ]
|
||||||
|
do
|
||||||
|
output="${output}${str}"
|
||||||
|
counter=$((counter+1))
|
||||||
|
done
|
||||||
|
echo "${output}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# macro to compute available space
|
||||||
|
# REF: https://unix.stackexchange.com/a/42049/60849
|
||||||
|
# REF: https://stackoverflow.com/a/450821/408734
|
||||||
|
getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); }
|
||||||
|
|
||||||
|
# macro to make Kb human readable (assume the input is Kb)
|
||||||
|
# REF: https://unix.stackexchange.com/a/44087/60849
|
||||||
|
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
|
||||||
|
|
||||||
|
# macro to output saved space
|
||||||
|
printSavedSpace() {
|
||||||
|
saved=${1}
|
||||||
|
title=${2:-}
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
printSeparationLine '*' 80
|
||||||
|
if [ ! -z "${title}" ]; then
|
||||||
|
echo "=> ${title}: Saved $(formatByteCount $saved)"
|
||||||
|
else
|
||||||
|
echo "=> Saved $(formatByteCount $saved)"
|
||||||
|
fi
|
||||||
|
printSeparationLine '*' 80
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
# macro to print output of dh with caption
|
||||||
|
printDH() {
|
||||||
|
caption=${1:-}
|
||||||
|
|
||||||
|
printSeparationLine '=' 80
|
||||||
|
echo "${caption}"
|
||||||
|
echo ""
|
||||||
|
echo "$ dh -h /"
|
||||||
|
echo ""
|
||||||
|
df -h /
|
||||||
|
echo "$ dh -a /"
|
||||||
|
echo ""
|
||||||
|
df -a /
|
||||||
|
echo "$ dh -a"
|
||||||
|
echo ""
|
||||||
|
df -a
|
||||||
|
printSeparationLine '=' 80
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ======
|
||||||
|
# SCRIPT
|
||||||
|
# ======
|
||||||
|
|
||||||
|
# Display initial disk space stats
|
||||||
|
|
||||||
|
AVAILABLE_INITIAL=$(getAvailableSpace)
|
||||||
|
AVAILABLE_ROOT_INITIAL=$(getAvailableSpace '/')
|
||||||
|
|
||||||
|
printDH "BEFORE CLEAN-UP:"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
|
||||||
|
# Option: Remove Android library
|
||||||
|
|
||||||
|
if [[ ${{ inputs.android }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo rm -rf /usr/local/lib/android || true
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Android library"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove .NET runtime
|
||||||
|
|
||||||
|
if [[ ${{ inputs.dotnet }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
# https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11
|
||||||
|
sudo rm -rf /usr/share/dotnet || true
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED ".NET runtime"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove Haskell runtime
|
||||||
|
|
||||||
|
if [[ ${{ inputs.haskell }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo rm -rf /opt/ghc || true
|
||||||
|
sudo rm -rf /usr/local/.ghcup || true
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Haskell runtime"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove large packages
|
||||||
|
# REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh
|
||||||
|
|
||||||
|
if [[ ${{ inputs.large-packages }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
|
||||||
|
sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Large misc. packages"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove Docker images
|
||||||
|
|
||||||
|
if [[ ${{ inputs.docker-images }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo docker image prune --all --force || true
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Docker images"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove tool cache
|
||||||
|
# REF: https://github.com/actions/virtual-environments/issues/2875#issuecomment-1163392159
|
||||||
|
|
||||||
|
if [[ ${{ inputs.tool-cache }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY" || true
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Tool cache"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Option: Remove Swap storage
|
||||||
|
|
||||||
|
if [[ ${{ inputs.swap-storage }} == 'true' ]]; then
|
||||||
|
BEFORE=$(getAvailableSpace)
|
||||||
|
|
||||||
|
sudo swapoff -a || true
|
||||||
|
sudo rm -f /mnt/swapfile || true
|
||||||
|
free -h
|
||||||
|
|
||||||
|
AFTER=$(getAvailableSpace)
|
||||||
|
SAVED=$((AFTER-BEFORE))
|
||||||
|
printSavedSpace $SAVED "Swap storage"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Output saved space statistic
|
||||||
|
|
||||||
|
AVAILABLE_END=$(getAvailableSpace)
|
||||||
|
AVAILABLE_ROOT_END=$(getAvailableSpace '/')
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
printDH "AFTER CLEAN-UP:"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
echo "/dev/root:"
|
||||||
|
printSavedSpace $((AVAILABLE_ROOT_END - AVAILABLE_ROOT_INITIAL))
|
||||||
|
echo "overall:"
|
||||||
|
printSavedSpace $((AVAILABLE_END - AVAILABLE_INITIAL))
|
||||||
165
.github/workflows/Procedure_push_docker_images.yml
vendored
Normal file
165
.github/workflows/Procedure_push_docker_images.yml
vendored
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
run-name: Launch Push Docker Images - ${{ inputs.id }}
|
||||||
|
name: Push Docker Images
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
image_tag:
|
||||||
|
description: 'Docker image tag'
|
||||||
|
default: '4.13.0'
|
||||||
|
required: true
|
||||||
|
docker_reference:
|
||||||
|
description: 'wazuh-docker reference'
|
||||||
|
required: true
|
||||||
|
products:
|
||||||
|
description: 'Comma-separated list of the image names to build and push'
|
||||||
|
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
|
||||||
|
required: true
|
||||||
|
filebeat_module_version:
|
||||||
|
description: 'Filebeat module version'
|
||||||
|
default: '0.4'
|
||||||
|
required: true
|
||||||
|
revision:
|
||||||
|
description: 'Package revision'
|
||||||
|
default: '1'
|
||||||
|
required: true
|
||||||
|
push_images:
|
||||||
|
description: 'Push images'
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
required: true
|
||||||
|
id:
|
||||||
|
description: "ID used to identify the workflow uniquely."
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
dev:
|
||||||
|
description: "Add tag suffix '-dev' to the image tag ?"
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
required: false
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
image_tag:
|
||||||
|
description: 'Docker image tag'
|
||||||
|
default: '4.13.0'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
docker_reference:
|
||||||
|
description: 'wazuh-docker reference'
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
products:
|
||||||
|
description: 'Comma-separated list of the image names to build and push'
|
||||||
|
default: 'wazuh-manager,wazuh-dashboard,wazuh-indexer'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
filebeat_module_version:
|
||||||
|
description: 'Filebeat module version'
|
||||||
|
default: '0.4'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
revision:
|
||||||
|
description: 'Package revision'
|
||||||
|
default: '1'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
push_images:
|
||||||
|
description: 'Push images'
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
required: true
|
||||||
|
id:
|
||||||
|
description: "ID used to identify the workflow uniquely."
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
dev:
|
||||||
|
description: "Add tag suffix '-dev' to the image tag ?"
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
required: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Print inputs
|
||||||
|
run: |
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "Running Procedure_push_docker_images workflow"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "* BRANCH: ${{ github.ref }}"
|
||||||
|
echo "* COMMIT: ${{ github.sha }}"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "Inputs provided:"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
echo "* id: ${{ inputs.id }}"
|
||||||
|
echo "* image_tag: ${{ inputs.image_tag }}"
|
||||||
|
echo "* docker_reference: ${{ inputs.docker_reference }}"
|
||||||
|
echo "* products: ${{ inputs.products }}"
|
||||||
|
echo "* filebeat_module_version: ${{ inputs.filebeat_module_version }}"
|
||||||
|
echo "* revision: ${{ inputs.revision }}"
|
||||||
|
echo "* push_images: ${{ inputs.push_images }}"
|
||||||
|
echo "* dev: ${{ inputs.dev }}"
|
||||||
|
echo "---------------------------------------------"
|
||||||
|
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
ref: ${{ inputs.docker_reference }}
|
||||||
|
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Install Docker Compose
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y docker-compose
|
||||||
|
echo "Installed Docker Compose version: $(docker-compose --version)"
|
||||||
|
|
||||||
|
- name: Build Wazuh images
|
||||||
|
run: |
|
||||||
|
IMAGE_TAG=${{ inputs.image_tag }}
|
||||||
|
FILEBEAT_MODULE_VERSION=${{ inputs.filebeat_module_version }}
|
||||||
|
REVISION=${{ inputs.revision }}
|
||||||
|
|
||||||
|
if [[ "$IMAGE_TAG" == *"-"* ]]; then
|
||||||
|
IFS='-' read -r -a tokens <<< "$IMAGE_TAG"
|
||||||
|
if [ -z "${tokens[1]}" ]; then
|
||||||
|
echo "Invalid image tag: $IMAGE_TAG"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
DEV_STAGE=${tokens[1]}
|
||||||
|
WAZUH_VER=${tokens[0]}
|
||||||
|
./build-docker-images/build-images.sh -v $WAZUH_VER -r $REVISION -d $DEV_STAGE -f $FILEBEAT_MODULE_VERSION
|
||||||
|
else
|
||||||
|
./build-docker-images/build-images.sh -v $IMAGE_TAG -r $REVISION -f $FILEBEAT_MODULE_VERSION
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Save .env file (generated by build-images.sh) contents to $GITHUB_ENV
|
||||||
|
ENV_FILE_PATH=".env"
|
||||||
|
|
||||||
|
if [ -f $ENV_FILE_PATH ]; then
|
||||||
|
while IFS= read -r line || [ -n "$line" ]; do
|
||||||
|
echo "$line" >> $GITHUB_ENV
|
||||||
|
done < $ENV_FILE_PATH
|
||||||
|
else
|
||||||
|
echo "The environment file $ENV_FILE_PATH does not exist!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Tag and Push Wazuh images
|
||||||
|
if: ${{ inputs.push_images }}
|
||||||
|
run: |
|
||||||
|
IMAGE_TAG="${{ inputs.image_tag }}$( [ "${{ inputs.dev }}" == "true" ] && echo '-dev' || true )"
|
||||||
|
IMAGE_NAMES=${{ inputs.products }}
|
||||||
|
IFS=',' read -r -a images <<< "$IMAGE_NAMES"
|
||||||
|
for image in "${images[@]}"; do
|
||||||
|
echo "Tagging and pushing wazuh/$image:${WAZUH_VERSION} to wazuh/$image:$IMAGE_TAG"
|
||||||
|
docker tag wazuh/$image:${WAZUH_VERSION} wazuh/$image:$IMAGE_TAG
|
||||||
|
echo "Pushing wazuh/$image:$IMAGE_TAG ..."
|
||||||
|
docker push wazuh/$image:$IMAGE_TAG
|
||||||
|
done
|
||||||
50
.github/workflows/push.yml
vendored
50
.github/workflows/push.yml
vendored
@@ -4,12 +4,17 @@ on: [pull_request]
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-docker-images:
|
build-docker-images:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install docker-compose
|
||||||
|
run: |
|
||||||
|
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
|
||||||
- name: Build Wazuh images
|
- name: Build Wazuh images
|
||||||
run: build-docker-images/build-images.sh
|
run: build-docker-images/build-images.sh
|
||||||
|
|
||||||
@@ -24,21 +29,21 @@ jobs:
|
|||||||
docker save wazuh/wazuh-dashboard:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
docker save wazuh/wazuh-dashboard:${{env.WAZUH_IMAGE_VERSION}} -o /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
||||||
|
|
||||||
- name: Temporarily save Wazuh manager Docker image
|
- name: Temporarily save Wazuh manager Docker image
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-manager
|
name: docker-artifact-manager
|
||||||
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-manager.tar
|
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-manager.tar
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
- name: Temporarily save Wazuh indexer Docker image
|
- name: Temporarily save Wazuh indexer Docker image
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-indexer
|
name: docker-artifact-indexer
|
||||||
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-indexer.tar
|
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-indexer.tar
|
||||||
retention-days: 1
|
retention-days: 1
|
||||||
|
|
||||||
- name: Temporarily save Wazuh dashboard Docker image
|
- name: Temporarily save Wazuh dashboard Docker image
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-dashboard
|
name: docker-artifact-dashboard
|
||||||
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
path: /home/runner/work/wazuh-docker/wazuh-docker/docker-images/wazuh-dashboard.tar
|
||||||
@@ -56,28 +61,33 @@ jobs:
|
|||||||
GOSS_FILE: .github/.goss.yaml
|
GOSS_FILE: .github/.goss.yaml
|
||||||
|
|
||||||
check-single-node:
|
check-single-node:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-22.04
|
||||||
needs: build-docker-images
|
needs: build-docker-images
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install docker-compose
|
||||||
|
run: |
|
||||||
|
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
|
||||||
- name: Create enviroment variables
|
- name: Create enviroment variables
|
||||||
run: cat .env > $GITHUB_ENV
|
run: cat .env > $GITHUB_ENV
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh indexer Docker image
|
- name: Retrieve saved Wazuh indexer Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-indexer
|
name: docker-artifact-indexer
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh manager Docker image
|
- name: Retrieve saved Wazuh manager Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-manager
|
name: docker-artifact-manager
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh dashboard Docker image
|
- name: Retrieve saved Wazuh dashboard Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-dashboard
|
name: docker-artifact-dashboard
|
||||||
|
|
||||||
@@ -179,36 +189,36 @@ jobs:
|
|||||||
run: ./.github/single-node-log-check.sh
|
run: ./.github/single-node-log-check.sh
|
||||||
|
|
||||||
check-multi-node:
|
check-multi-node:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-22.04
|
||||||
needs: build-docker-images
|
needs: build-docker-images
|
||||||
steps:
|
steps:
|
||||||
|
|
||||||
- name: Check out code
|
- name: Check out code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Install docker-compose
|
||||||
|
run: |
|
||||||
|
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
|
chmod +x /usr/local/bin/docker-compose
|
||||||
|
|
||||||
- name: Create enviroment variables
|
- name: Create enviroment variables
|
||||||
run: cat .env > $GITHUB_ENV
|
run: cat .env > $GITHUB_ENV
|
||||||
|
|
||||||
- name: free disk space
|
- name: free disk space
|
||||||
run: |
|
uses: ./.github/free-disk-space
|
||||||
sudo swapoff -a
|
|
||||||
sudo rm -f /swapfile
|
|
||||||
sudo apt clean
|
|
||||||
docker rmi $(docker image ls -aq)
|
|
||||||
df -h
|
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh dashboard Docker image
|
- name: Retrieve saved Wazuh dashboard Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-dashboard
|
name: docker-artifact-dashboard
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh manager Docker image
|
- name: Retrieve saved Wazuh manager Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-manager
|
name: docker-artifact-manager
|
||||||
|
|
||||||
- name: Retrieve saved Wazuh indexer Docker image
|
- name: Retrieve saved Wazuh indexer Docker image
|
||||||
uses: actions/download-artifact@v3
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: docker-artifact-indexer
|
name: docker-artifact-indexer
|
||||||
|
|
||||||
@@ -232,7 +242,7 @@ jobs:
|
|||||||
echo 'Waiting for Wazuh indexer start'
|
echo 'Waiting for Wazuh indexer start'
|
||||||
free -m
|
free -m
|
||||||
df -h
|
df -h
|
||||||
sleep 10
|
sleep 120
|
||||||
done
|
done
|
||||||
status_green="`curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l`"
|
status_green="`curl -XGET "https://0.0.0.0:9200/_cluster/health" -u admin:SecretPassword -k -s | grep green | wc -l`"
|
||||||
if [[ $status_green -eq 1 ]]; then
|
if [[ $status_green -eq 1 ]]; then
|
||||||
@@ -270,7 +280,7 @@ jobs:
|
|||||||
sleep 10
|
sleep 10
|
||||||
done
|
done
|
||||||
docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_count" -u admin:SecretPassword -k -s | jq -r ".count"`"
|
docs="`curl -XGET "https://0.0.0.0:9200/wazuh-alerts*/_count" -u admin:SecretPassword -k -s | jq -r ".count"`"
|
||||||
if [[ $docs -gt 1 ]]; then
|
if [[ $docs -gt 0 ]]; then
|
||||||
echo "wazuh-alerts index documents: ${docs}"
|
echo "wazuh-alerts index documents: ${docs}"
|
||||||
else
|
else
|
||||||
echo "wazuh-alerts index documents: ${docs}"
|
echo "wazuh-alerts index documents: ${docs}"
|
||||||
|
|||||||
5
.github/workflows/trivy-dashboard.yml
vendored
5
.github/workflows/trivy-dashboard.yml
vendored
@@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -27,7 +26,7 @@ jobs:
|
|||||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||||
|
|
||||||
name: Build images and upload Trivy results
|
name: Build images and upload Trivy results
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-22.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
5
.github/workflows/trivy-indexer.yml
vendored
5
.github/workflows/trivy-indexer.yml
vendored
@@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -27,7 +26,7 @@ jobs:
|
|||||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||||
|
|
||||||
name: Build images and upload Trivy results
|
name: Build images and upload Trivy results
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-22.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
5
.github/workflows/trivy-manager.yml
vendored
5
.github/workflows/trivy-manager.yml
vendored
@@ -11,8 +11,7 @@ on:
|
|||||||
- published
|
- published
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- main
|
||||||
- stable
|
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '34 2 * * 1'
|
- cron: '34 2 * * 1'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -27,7 +26,7 @@ jobs:
|
|||||||
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
|
||||||
|
|
||||||
name: Build images and upload Trivy results
|
name: Build images and upload Trivy results
|
||||||
runs-on: "ubuntu-latest"
|
runs-on: "ubuntu-22.04"
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
|
|||||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@ single-node/config/wazuh_indexer_ssl_certs/*.pem
|
|||||||
single-node/config/wazuh_indexer_ssl_certs/*.key
|
single-node/config/wazuh_indexer_ssl_certs/*.key
|
||||||
multi-node/config/wazuh_indexer_ssl_certs/*.pem
|
multi-node/config/wazuh_indexer_ssl_certs/*.pem
|
||||||
multi-node/config/wazuh_indexer_ssl_certs/*.key
|
multi-node/config/wazuh_indexer_ssl_certs/*.key
|
||||||
|
*.log
|
||||||
209
CHANGELOG.md
209
CHANGELOG.md
@@ -1,6 +1,215 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [4.13.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Added repository_bumper script. ([#1781](https://github.com/wazuh/wazuh-docker/pull/1781))
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Modify wazuh-keystore use ([#1750](https://github.com/wazuh/wazuh-docker/pull/1750)) \- (wazuh-keystore)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- Remove default docker reference version from workflow ([#1761](https://github.com/wazuh/wazuh-docker/pull/1761))
|
||||||
|
- Remove 'stable' branch ocurrencies ([#1757](https://github.com/wazuh/wazuh-docker/pull/1757))
|
||||||
|
|
||||||
|
## [4.12.2]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
|
||||||
|
## [4.12.1]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.12.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Change VERSION file format ([#1728](https://github.com/wazuh/wazuh-docker/pull/1728)) \- (VERSION file)
|
||||||
|
- Change Ubuntu version used in workflows ([#1662](https://github.com/wazuh/wazuh-docker/pull/1662)) \- (Docker workflows)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix permanent data scripts ([#1603](https://github.com/wazuh/wazuh-docker/pull/1603))
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.11.2]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.11.1]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.11.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Change the cleaning disk step ([#1663](https://github.com/wazuh/wazuh-docker/pull/1663))
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.10.1]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.10.0]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Improve the push docker images workflow ([#1551](https://github.com/wazuh/wazuh-docker/pull/1551))
|
||||||
|
- Update the Procedure push docker images workflow file ([#1524](https://github.com/wazuh/wazuh-docker/pull/1524))
|
||||||
|
- Add the push_docker_images procedure workflow file ([#1518](https://github.com/wazuh/wazuh-docker/pull/1518))
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Add unset capabilities. ([#1619](https://github.com/wazuh/wazuh-docker/pull/1619))
|
||||||
|
- Removed references to module enabling because they are now enabled by default. ([#1416](https://github.com/wazuh/wazuh-docker/pull/1416))
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
## [4.9.2]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update Wazuh to version [4.9.2](https://github.com/wazuh/wazuh/blob/v4.9.2/CHANGELOG.md#v492)
|
||||||
|
|
||||||
|
## [4.9.1]
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix typos into Wazuh manager entrypoint ([#1569](https://github.com/wazuh/wazuh-docker/pull/1569))
|
||||||
|
|
||||||
|
### Deleted
|
||||||
|
|
||||||
|
- None
|
||||||
|
|
||||||
|
|
||||||
|
## Wazuh Docker v4.9.0
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update Wazuh to version [4.9.0](https://github.com/wazuh/wazuh/blob/v4.9.0/CHANGELOG.md#v490)
|
||||||
|
|
||||||
|
## Wazuh Docker v4.8.2
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update Wazuh to version [4.8.2](https://github.com/wazuh/wazuh/blob/v4.8.2/CHANGELOG.md#v482)
|
||||||
|
|
||||||
|
## Wazuh Docker v4.8.1
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Update Wazuh to version [4.8.1](https://github.com/wazuh/wazuh/blob/v4.8.1/CHANGELOG.md#v481)
|
||||||
|
|
||||||
## Wazuh Docker v4.8.0
|
## Wazuh Docker v4.8.0
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
|||||||
117
README.md
117
README.md
@@ -8,19 +8,19 @@
|
|||||||
In this repository you will find the containers to run:
|
In this repository you will find the containers to run:
|
||||||
|
|
||||||
* Wazuh manager: it runs the Wazuh manager, Wazuh API and Filebeat OSS
|
* Wazuh manager: it runs the Wazuh manager, Wazuh API and Filebeat OSS
|
||||||
* Wazuh dashboard: provides a web user interface to browse through alerts data and allows you to visualize agents configuration and status.
|
* Wazuh dashboard: provides a web user interface to browse through alert data and allows you to visualize the agents configuration and status.
|
||||||
* Wazuh indexer: Wazuh indexer container (working as a single-node cluster or as a multi-node cluster). **Be aware to increase the `vm.max_map_count` setting, as it's detailed in the [Wazuh documentation](https://documentation.wazuh.com/current/docker/wazuh-container.html#increase-max-map-count-on-your-host-linux).**
|
* Wazuh indexer: Wazuh indexer container (working as a single-node cluster or as a multi-node cluster). **Be aware to increase the `vm.max_map_count` setting, as it's detailed in the [Wazuh documentation](https://documentation.wazuh.com/current/docker/wazuh-container.html#increase-max-map-count-on-your-host-linux).**
|
||||||
|
|
||||||
The folder `build-docker-images` contains a README explaining how to build the Wazuh images and the necessary assets.
|
The folder `build-docker-images` contains a README explaining how to build the Wazuh images and the necessary assets.
|
||||||
The folder `indexer-certs-creator` contains a README explaining how to create the certificates creator tool and the necessary assets.
|
The folder `indexer-certs-creator` contains a README explaining how to create the certificates creator tool and the necessary assets.
|
||||||
The folder `single-node` contains a README explaining how to run a Wazuh environment with one Wazuh manager, one Wazuh indexer, and one Wazuh dashboard.
|
The folder `single-node` contains a README explaining how to run a Wazuh environment with one Wazuh manager, one Wazuh indexer, and one Wazuh dashboard.
|
||||||
The folder `multi-node` contains a README explaining how to run a Wazuh environment with two Wazuh managers, three Wazuh indexer, and one Wazuh dashboard.
|
The folder `multi-node` contains a README explaining how to run a Wazuh environment with two Wazuh managers, three Wazuh indexers, and one Wazuh dashboard.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
* [Wazuh full documentation](http://documentation.wazuh.com)
|
* [Wazuh full documentation](http://documentation.wazuh.com)
|
||||||
* [Wazuh documentation for Docker](https://documentation.wazuh.com/current/docker/index.html)
|
* [Wazuh documentation for Docker](https://documentation.wazuh.com/current/docker/index.html)
|
||||||
* [Docker hub](https://hub.docker.com/u/wazuh)
|
* [Docker Hub](https://hub.docker.com/u/wazuh)
|
||||||
|
|
||||||
|
|
||||||
### Setup SSL certificate
|
### Setup SSL certificate
|
||||||
@@ -38,7 +38,7 @@ Default values are included when available.
|
|||||||
```
|
```
|
||||||
API_USERNAME="wazuh-wui" # Wazuh API username
|
API_USERNAME="wazuh-wui" # Wazuh API username
|
||||||
API_PASSWORD="MyS3cr37P450r.*-" # Wazuh API password - Must comply with requirements
|
API_PASSWORD="MyS3cr37P450r.*-" # Wazuh API password - Must comply with requirements
|
||||||
# (8+ length, uppercase, lowercase, specials chars)
|
# (8+ length, uppercase, lowercase, special chars)
|
||||||
|
|
||||||
INDEXER_URL=https://wazuh.indexer:9200 # Wazuh indexer URL
|
INDEXER_URL=https://wazuh.indexer:9200 # Wazuh indexer URL
|
||||||
INDEXER_USERNAME=admin # Wazuh indexer Username
|
INDEXER_USERNAME=admin # Wazuh indexer Username
|
||||||
@@ -53,25 +53,11 @@ SSL_KEY="" # Path of Filebeat SSL Key
|
|||||||
```
|
```
|
||||||
PATTERN="wazuh-alerts-*" # Default index pattern to use
|
PATTERN="wazuh-alerts-*" # Default index pattern to use
|
||||||
|
|
||||||
CHECKS_PATTERN=true # Defines which checks must to be consider by the healthcheck
|
CHECKS_PATTERN=true # Defines which checks must be considered by the healthcheck
|
||||||
CHECKS_TEMPLATE=true # step once the Wazuh app starts. Values must to be true or false
|
CHECKS_TEMPLATE=true # step once the Wazuh app starts. Values must be true or false
|
||||||
CHECKS_API=true
|
CHECKS_API=true
|
||||||
CHECKS_SETUP=true
|
CHECKS_SETUP=true
|
||||||
|
|
||||||
EXTENSIONS_PCI=true # Enable PCI Extension
|
|
||||||
EXTENSIONS_GDPR=true # Enable GDPR Extension
|
|
||||||
EXTENSIONS_HIPAA=true # Enable HIPAA Extension
|
|
||||||
EXTENSIONS_NIST=true # Enable NIST Extension
|
|
||||||
EXTENSIONS_TSC=true # Enable TSC Extension
|
|
||||||
EXTENSIONS_AUDIT=true # Enable Audit Extension
|
|
||||||
EXTENSIONS_OSCAP=false # Enable OpenSCAP Extension
|
|
||||||
EXTENSIONS_CISCAT=false # Enable CISCAT Extension
|
|
||||||
EXTENSIONS_AWS=false # Enable AWS Extension
|
|
||||||
EXTENSIONS_GCP=false # Enable GCP Extension
|
|
||||||
EXTENSIONS_VIRUSTOTAL=false # Enable Virustotal Extension
|
|
||||||
EXTENSIONS_OSQUERY=false # Enable OSQuery Extension
|
|
||||||
EXTENSIONS_DOCKER=false # Enable Docker Extension
|
|
||||||
|
|
||||||
APP_TIMEOUT=20000 # Defines maximum timeout to be used on the Wazuh app requests
|
APP_TIMEOUT=20000 # Defines maximum timeout to be used on the Wazuh app requests
|
||||||
|
|
||||||
API_SELECTOR=true Defines if the user is allowed to change the selected API directly from the Wazuh app top menu
|
API_SELECTOR=true Defines if the user is allowed to change the selected API directly from the Wazuh app top menu
|
||||||
@@ -89,19 +75,23 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
|||||||
## Directory structure
|
## Directory structure
|
||||||
|
|
||||||
├── build-docker-images
|
├── build-docker-images
|
||||||
│ ├── docker-compose.yml
|
│ ├── build-images.sh
|
||||||
|
│ ├── build-images.yml
|
||||||
|
│ ├── README.md
|
||||||
│ ├── wazuh-dashboard
|
│ ├── wazuh-dashboard
|
||||||
│ │ ├── config
|
│ │ ├── config
|
||||||
│ │ │ ├── config.sh
|
│ │ │ ├── config.sh
|
||||||
│ │ │ ├── config.yml
|
│ │ │ ├── config.yml
|
||||||
|
│ │ │ ├── dl_base.sh
|
||||||
│ │ │ ├── entrypoint.sh
|
│ │ │ ├── entrypoint.sh
|
||||||
|
│ │ │ ├── install_wazuh_app.sh
|
||||||
│ │ │ ├── opensearch_dashboards.yml
|
│ │ │ ├── opensearch_dashboards.yml
|
||||||
│ │ │ ├── wazuh_app_config.sh
|
│ │ │ ├── wazuh_app_config.sh
|
||||||
│ │ │ └── wazuh.yml
|
│ │ │ └── wazuh.yml
|
||||||
│ │ └── Dockerfile
|
│ │ └── Dockerfile
|
||||||
│ ├── wazuh-indexer
|
│ ├── wazuh-indexer
|
||||||
│ │ ├── config
|
│ │ ├── config
|
||||||
│ │ │ ├── action_groups.yml
|
│ │ │ ├── action_groups.yml
|
||||||
│ │ │ ├── config.sh
|
│ │ │ ├── config.sh
|
||||||
│ │ │ ├── config.yml
|
│ │ │ ├── config.yml
|
||||||
│ │ │ ├── entrypoint.sh
|
│ │ │ ├── entrypoint.sh
|
||||||
@@ -113,6 +103,7 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
|||||||
│ │ └── Dockerfile
|
│ │ └── Dockerfile
|
||||||
│ └── wazuh-manager
|
│ └── wazuh-manager
|
||||||
│ ├── config
|
│ ├── config
|
||||||
|
│ │ ├── check_repository.sh
|
||||||
│ │ ├── create_user.py
|
│ │ ├── create_user.py
|
||||||
│ │ ├── etc
|
│ │ ├── etc
|
||||||
│ │ │ ├── cont-init.d
|
│ │ │ ├── cont-init.d
|
||||||
@@ -125,19 +116,21 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
|||||||
│ │ │ │ └── run
|
│ │ │ │ └── run
|
||||||
│ │ │ └── ossec-logs
|
│ │ │ └── ossec-logs
|
||||||
│ │ │ └── run
|
│ │ │ └── run
|
||||||
|
│ │ ├── filebeat_module.sh
|
||||||
│ │ ├── filebeat.yml
|
│ │ ├── filebeat.yml
|
||||||
│ │ ├── permanent_data.env
|
│ │ ├── permanent_data.env
|
||||||
│ │ ├── permanent_data.sh
|
│ │ └── permanent_data.sh
|
||||||
│ │ └── wazuh.repo
|
|
||||||
│ └── Dockerfile
|
│ └── Dockerfile
|
||||||
├── CHANGELOG.md
|
├── CHANGELOG.md
|
||||||
├── indexer-certs-creator
|
├── indexer-certs-creator
|
||||||
│ ├── config
|
│ ├── config
|
||||||
│ │ └── entrypoint.sh
|
│ │ └── entrypoint.sh
|
||||||
│ └── Dockerfile
|
│ ├── Dockerfile
|
||||||
|
│ └── README.md
|
||||||
├── LICENSE
|
├── LICENSE
|
||||||
├── multi-node
|
├── multi-node
|
||||||
│ ├── config
|
│ ├── config
|
||||||
|
│ │ ├── certs.yml
|
||||||
│ │ ├── nginx
|
│ │ ├── nginx
|
||||||
│ │ │ └── nginx.conf
|
│ │ │ └── nginx.conf
|
||||||
│ │ ├── wazuh_cluster
|
│ │ ├── wazuh_cluster
|
||||||
@@ -146,87 +139,45 @@ WAZUH_MONITORING_REPLICAS=0 ##
|
|||||||
│ │ ├── wazuh_dashboard
|
│ │ ├── wazuh_dashboard
|
||||||
│ │ │ ├── opensearch_dashboards.yml
|
│ │ │ ├── opensearch_dashboards.yml
|
||||||
│ │ │ └── wazuh.yml
|
│ │ │ └── wazuh.yml
|
||||||
│ │ ├── wazuh_indexer
|
│ │ └── wazuh_indexer
|
||||||
│ │ │ ├── internal_users.yml
|
│ │ ├── internal_users.yml
|
||||||
│ │ │ ├── wazuh1.indexer.yml
|
│ │ ├── wazuh1.indexer.yml
|
||||||
│ │ │ ├── wazuh2.indexer.yml
|
│ │ ├── wazuh2.indexer.yml
|
||||||
│ │ │ └── wazuh3.indexer.yml
|
│ │ └── wazuh3.indexer.yml
|
||||||
│ │ └── wazuh_indexer_ssl_certs
|
|
||||||
│ │ └── certs.yml
|
|
||||||
│ ├── docker-compose.yml
|
│ ├── docker-compose.yml
|
||||||
│ ├── generate-indexer-certs.yml
|
│ ├── generate-indexer-certs.yml
|
||||||
│ ├── Migration-to-Wazuh-4.3.md
|
│ ├── Migration-to-Wazuh-4.4.md
|
||||||
|
│ ├── README.md
|
||||||
│ └── volume-migrator.sh
|
│ └── volume-migrator.sh
|
||||||
├── README.md
|
├── README.md
|
||||||
|
├── SECURITY.md
|
||||||
├── single-node
|
├── single-node
|
||||||
│ ├── config
|
│ ├── config
|
||||||
|
│ │ ├── certs.yml
|
||||||
│ │ ├── wazuh_cluster
|
│ │ ├── wazuh_cluster
|
||||||
│ │ │ └── wazuh_manager.conf
|
│ │ │ └── wazuh_manager.conf
|
||||||
│ │ ├── wazuh_dashboard
|
│ │ ├── wazuh_dashboard
|
||||||
│ │ │ ├── opensearch_dashboards.yml
|
│ │ │ ├── opensearch_dashboards.yml
|
||||||
│ │ │ └── wazuh.yml
|
│ │ │ └── wazuh.yml
|
||||||
│ │ ├── wazuh_indexer
|
│ │ └── wazuh_indexer
|
||||||
│ │ │ ├── internal_users.yml
|
│ │ ├── internal_users.yml
|
||||||
│ │ │ └── wazuh.indexer.yml
|
│ │ └── wazuh.indexer.yml
|
||||||
│ │ └── wazuh_indexer_ssl_certs
|
|
||||||
│ │ ├── admin-key.pem
|
|
||||||
│ │ ├── admin.pem
|
|
||||||
│ │ ├── certs.yml
|
|
||||||
│ │ ├── root-ca.key
|
|
||||||
│ │ ├── root-ca.pem
|
|
||||||
│ │ ├── wazuh.dashboard-key.pem
|
|
||||||
│ │ ├── wazuh.dashboard.pem
|
|
||||||
│ │ ├── wazuh.indexer-key.pem
|
|
||||||
│ │ ├── wazuh.indexer.pem
|
|
||||||
│ │ ├── wazuh.manager-key.pem
|
|
||||||
│ │ └── wazuh.manager.pem
|
|
||||||
│ ├── docker-compose.yml
|
│ ├── docker-compose.yml
|
||||||
│ ├── generate-indexer-certs.yml
|
│ ├── generate-indexer-certs.yml
|
||||||
│ └── README.md
|
│ └── README.md
|
||||||
└── VERSION
|
└── VERSION.json
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Branches
|
## Branches
|
||||||
|
|
||||||
* `master` branch contains the latest code, be aware of possible bugs on this branch.
|
* `main` branch contains the latest code, be aware of possible bugs on this branch.
|
||||||
* `stable` branch on correspond to the last Wazuh stable version.
|
|
||||||
|
|
||||||
## Compatibility Matrix
|
## Compatibility Matrix
|
||||||
|
|
||||||
| Wazuh version | ODFE | XPACK |
|
| Wazuh version | ODFE | XPACK |
|
||||||
|---------------|---------|--------|
|
|---------------|---------|--------|
|
||||||
| v4.8.0 | | |
|
| v4.3.0+ | N/A | N/A |
|
||||||
| v4.7.5 | | |
|
|
||||||
| v4.7.4 | | |
|
|
||||||
| v4.7.3 | | |
|
|
||||||
| v4.7.2 | | |
|
|
||||||
| v4.7.1 | | |
|
|
||||||
| v4.7.0 | | |
|
|
||||||
| v4.6.0 | | |
|
|
||||||
| v4.5.4 | | |
|
|
||||||
| v4.5.3 | | |
|
|
||||||
| v4.5.2 | | |
|
|
||||||
| v4.5.1 | | |
|
|
||||||
| v4.5.0 | | |
|
|
||||||
| v4.4.5 | | |
|
|
||||||
| v4.4.4 | | |
|
|
||||||
| v4.4.3 | | |
|
|
||||||
| v4.4.2 | | |
|
|
||||||
| v4.4.1 | | |
|
|
||||||
| v4.4.0 | | |
|
|
||||||
| v4.3.11 | | |
|
|
||||||
| v4.3.10 | | |
|
|
||||||
| v4.3.9 | | |
|
|
||||||
| v4.3.8 | | |
|
|
||||||
| v4.3.7 | | |
|
|
||||||
| v4.3.6 | | |
|
|
||||||
| v4.3.5 | | |
|
|
||||||
| v4.3.4 | | |
|
|
||||||
| v4.3.3 | | |
|
|
||||||
| v4.3.2 | | |
|
|
||||||
| v4.3.1 | | |
|
|
||||||
| v4.3.0 | | |
|
|
||||||
| v4.2.7 | 1.13.2 | 7.11.2 |
|
| v4.2.7 | 1.13.2 | 7.11.2 |
|
||||||
| v4.2.6 | 1.13.2 | 7.11.2 |
|
| v4.2.6 | 1.13.2 | 7.11.2 |
|
||||||
| v4.2.5 | 1.13.2 | 7.11.2 |
|
| v4.2.5 | 1.13.2 | 7.11.2 |
|
||||||
@@ -254,7 +205,7 @@ These Docker containers are based on:
|
|||||||
* "deviantony" dockerfiles which can be found at [https://github.com/deviantony/docker-elk](https://github.com/deviantony/docker-elk)
|
* "deviantony" dockerfiles which can be found at [https://github.com/deviantony/docker-elk](https://github.com/deviantony/docker-elk)
|
||||||
* "xetus-oss" dockerfiles, which can be found at [https://github.com/xetus-oss/docker-ossec-server](https://github.com/xetus-oss/docker-ossec-server)
|
* "xetus-oss" dockerfiles, which can be found at [https://github.com/xetus-oss/docker-ossec-server](https://github.com/xetus-oss/docker-ossec-server)
|
||||||
|
|
||||||
We thank you them and everyone else who has contributed to this project.
|
We thank them and everyone else who has contributed to this project.
|
||||||
|
|
||||||
## License and copyright
|
## License and copyright
|
||||||
|
|
||||||
|
|||||||
12
SECURITY.md
12
SECURITY.md
@@ -16,11 +16,11 @@ Please submit your findings as security advisories under the "Security" tab in t
|
|||||||
## Vulnerability Disclosure Policy
|
## Vulnerability Disclosure Policy
|
||||||
Upon receiving a report of a potential vulnerability, our team will initiate an investigation. If the reported issue is confirmed as a vulnerability, we will take the following steps:
|
Upon receiving a report of a potential vulnerability, our team will initiate an investigation. If the reported issue is confirmed as a vulnerability, we will take the following steps:
|
||||||
|
|
||||||
- Acknowledgment: We will acknowledge the receipt of your vulnerability report and begin our investigation.
|
1. Acknowledgment: We will acknowledge the receipt of your vulnerability report and begin our investigation.
|
||||||
- Validation: We will validate the issue and work on reproducing it in our environment.
|
2. Validation: We will validate the issue and work on reproducing it in our environment.
|
||||||
- Remediation: We will work on a fix and thoroughly test it
|
3. Remediation: We will work on a fix and thoroughly test it
|
||||||
- Release & Disclosure: After 90 days from the discovery of the vulnerability, or as soon as a fix is ready and thoroughly tested (whichever comes first), we will release a security update for the affected project. We will also publicly disclose the vulnerability by publishing a CVE (Common Vulnerabilities and Exposures) and acknowledging the discovering party.
|
4. Release & Disclosure: After 90 days from the discovery of the vulnerability, or as soon as a fix is ready and thoroughly tested (whichever comes first), we will release a security update for the affected project. We will also publicly disclose the vulnerability by publishing a CVE (Common Vulnerabilities and Exposures) and acknowledging the discovering party.
|
||||||
- Exceptions: In order to preserve the security of the Wazuh community at large, we might extend the disclosure period to allow users to patch their deployments.
|
5. Exceptions: In order to preserve the security of the Wazuh community at large, we might extend the disclosure period to allow users to patch their deployments.
|
||||||
|
|
||||||
This 90-day period allows for end-users to update their systems and minimizes the risk of widespread exploitation of the vulnerability.
|
This 90-day period allows for end-users to update their systems and minimizes the risk of widespread exploitation of the vulnerability.
|
||||||
|
|
||||||
@@ -42,4 +42,4 @@ We ask that all users and contributors respect this policy and the security of o
|
|||||||
## Changes to this Security Policy
|
## Changes to this Security Policy
|
||||||
This policy may be revised from time to time. Each version of the policy will be identified at the top of the page by its effective date.
|
This policy may be revised from time to time. Each version of the policy will be identified at the top of the page by its effective date.
|
||||||
|
|
||||||
If you have any questions about this Security Policy, please contact us at [security@wazuh.com](mailto:security@wazuh.com).
|
If you have any questions about this Security Policy, please contact us at [security@wazuh.com](mailto:security@wazuh.com)
|
||||||
|
|||||||
4
VERSION.json
Normal file
4
VERSION.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"version": "4.13.0",
|
||||||
|
"stage": "alpha0"
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ This script initializes the environment variables needed to build each of the im
|
|||||||
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
The script allows you to build images from other versions of Wazuh, to do this you must use the -v or --version argument:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ build-docker-images/build-images.sh -v 4.8.0
|
$ build-docker-images/build-images.sh -v 4.13.0
|
||||||
```
|
```
|
||||||
|
|
||||||
To get all the available script options use the -h or --help option:
|
To get all the available script options use the -h or --help option:
|
||||||
@@ -26,7 +26,7 @@ Usage: build-docker-images/build-images.sh [OPTIONS]
|
|||||||
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
-d, --dev <ref> [Optional] Set the development stage you want to build, example rc1 or beta1, not used by default.
|
||||||
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
|
-f, --filebeat-module <ref> [Optional] Set Filebeat module version. By default 0.4.
|
||||||
-r, --revision <rev> [Optional] Package revision. By default 1
|
-r, --revision <rev> [Optional] Package revision. By default 1
|
||||||
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.8.0.
|
-v, --version <ver> [Optional] Set the Wazuh version should be builded. By default, 4.13.0.
|
||||||
-h, --help Show this help.
|
-h, --help Show this help.
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
WAZUH_IMAGE_VERSION=4.8.0
|
WAZUH_IMAGE_VERSION=4.13.0
|
||||||
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
WAZUH_VERSION=$(echo $WAZUH_IMAGE_VERSION | sed -e 's/\.//g')
|
||||||
WAZUH_TAG_REVISION=1
|
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')
|
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')
|
||||||
@@ -12,7 +12,7 @@ IMAGE_VERSION=${WAZUH_IMAGE_VERSION}
|
|||||||
# License (version 2) as published by the FSF - Free Software
|
# License (version 2) as published by the FSF - Free Software
|
||||||
# Foundation.
|
# Foundation.
|
||||||
|
|
||||||
WAZUH_IMAGE_VERSION="4.8.0"
|
WAZUH_IMAGE_VERSION="4.13.0"
|
||||||
WAZUH_TAG_REVISION="1"
|
WAZUH_TAG_REVISION="1"
|
||||||
WAZUH_DEV_STAGE=""
|
WAZUH_DEV_STAGE=""
|
||||||
FILEBEAT_MODULE_VERSION="0.4"
|
FILEBEAT_MODULE_VERSION="0.4"
|
||||||
@@ -52,16 +52,11 @@ build() {
|
|||||||
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}"
|
FILEBEAT_TEMPLATE_BRANCH="v${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
elif curl --output /dev/null --silent --head --fail "https://github.com/wazuh/wazuh/tree/${FILEBEAT_TEMPLATE_BRANCH}"; then
|
||||||
FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
|
FILEBEAT_TEMPLATE_BRANCH="${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
else
|
|
||||||
WAZUH_MASTER_VERSION="$(curl -s https://raw.githubusercontent.com/wazuh/wazuh/master/src/VERSION | sed -e 's/v//g')"
|
|
||||||
if [ "${FILEBEAT_TEMPLATE_BRANCH}" == "${WAZUH_MASTER_VERSION}" ]; then
|
|
||||||
FILEBEAT_TEMPLATE_BRANCH="master"
|
|
||||||
else
|
else
|
||||||
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
echo "The indicated branch does not exist in the wazuh/wazuh repository: ${FILEBEAT_TEMPLATE_BRANCH}"
|
||||||
clean 1
|
clean 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
echo WAZUH_VERSION=$WAZUH_IMAGE_VERSION > .env
|
||||||
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env
|
echo WAZUH_IMAGE_VERSION=$WAZUH_IMAGE_VERSION >> .env
|
||||||
@@ -70,7 +65,7 @@ build() {
|
|||||||
echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env
|
echo WAZUH_FILEBEAT_MODULE=$WAZUH_FILEBEAT_MODULE >> .env
|
||||||
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env
|
echo WAZUH_UI_REVISION=$WAZUH_UI_REVISION >> .env
|
||||||
|
|
||||||
docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache
|
docker-compose -f build-docker-images/build-images.yml --env-file .env build --no-cache || clean 1
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,37 +3,31 @@ FROM amazonlinux:2023 AS builder
|
|||||||
|
|
||||||
ARG WAZUH_VERSION
|
ARG WAZUH_VERSION
|
||||||
ARG WAZUH_TAG_REVISION
|
ARG WAZUH_TAG_REVISION
|
||||||
ARG INSTALL_DIR=/usr/share/wazuh-dashboard
|
|
||||||
ARG WAZUH_UI_REVISION
|
ARG WAZUH_UI_REVISION
|
||||||
|
ARG INSTALL_DIR=/usr/share/wazuh-dashboard
|
||||||
|
|
||||||
# Update and install dependencies
|
# Update and install dependencies
|
||||||
RUN yum install curl-minimal libcap xz tar openssl -y
|
RUN yum install curl-minimal libcap openssl -y
|
||||||
|
|
||||||
# Create Install dir
|
COPY config/check_repository.sh /
|
||||||
RUN mkdir -p $INSTALL_DIR
|
RUN chmod 775 /check_repository.sh && \
|
||||||
|
source /check_repository.sh
|
||||||
|
|
||||||
# Download and extract Wazuh dashboard base
|
RUN yum install wazuh-dashboard-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
|
||||||
COPY config/dl_base.sh .
|
yum clean all
|
||||||
RUN bash dl_base.sh
|
|
||||||
|
|
||||||
# Generate certificates
|
|
||||||
COPY config/config.sh .
|
|
||||||
COPY config/config.yml /
|
|
||||||
RUN bash config.sh
|
|
||||||
|
|
||||||
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/
|
|
||||||
COPY config/wazuh.yml $INSTALL_DIR/data/wazuh/config/
|
|
||||||
RUN chmod 664 $INSTALL_DIR/config/opensearch_dashboards.yml
|
|
||||||
|
|
||||||
# Create and set permissions to data directories
|
# Create and set permissions to data directories
|
||||||
RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
|
RUN mkdir -p $INSTALL_DIR/data/wazuh && chmod -R 775 $INSTALL_DIR/data/wazuh
|
||||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/config && chmod -R 775 $INSTALL_DIR/data/wazuh/config
|
RUN mkdir -p $INSTALL_DIR/data/wazuh/config && chmod -R 775 $INSTALL_DIR/data/wazuh/config
|
||||||
RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chmod -R 775 $INSTALL_DIR/data/wazuh/logs
|
RUN mkdir -p $INSTALL_DIR/data/wazuh/logs && chmod -R 775 $INSTALL_DIR/data/wazuh/logs
|
||||||
|
COPY config/wazuh.yml $INSTALL_DIR/data/wazuh/config/
|
||||||
|
RUN setcap 'cap_net_bind_service=-ep' /usr/share/wazuh-dashboard/node/bin/node
|
||||||
|
RUN setcap 'cap_net_bind_service=-ep' /usr/share/wazuh-dashboard/node/fallback/bin/node
|
||||||
|
|
||||||
|
# Generate certificates
|
||||||
|
COPY config/config.sh .
|
||||||
|
COPY config/config.yml /
|
||||||
|
RUN bash config.sh
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Build stage 1 (the current Wazuh dashboard image):
|
# Build stage 1 (the current Wazuh dashboard image):
|
||||||
@@ -56,21 +50,6 @@ ENV PATTERN="" \
|
|||||||
CHECKS_TEMPLATE="" \
|
CHECKS_TEMPLATE="" \
|
||||||
CHECKS_API="" \
|
CHECKS_API="" \
|
||||||
CHECKS_SETUP="" \
|
CHECKS_SETUP="" \
|
||||||
EXTENSIONS_PCI="" \
|
|
||||||
EXTENSIONS_GDPR="" \
|
|
||||||
EXTENSIONS_HIPAA="" \
|
|
||||||
EXTENSIONS_NIST="" \
|
|
||||||
EXTENSIONS_TSC="" \
|
|
||||||
EXTENSIONS_AUDIT="" \
|
|
||||||
EXTENSIONS_OSCAP="" \
|
|
||||||
EXTENSIONS_CISCAT="" \
|
|
||||||
EXTENSIONS_AWS="" \
|
|
||||||
EXTENSIONS_GCP="" \
|
|
||||||
EXTENSIONS_GITHUB=""\
|
|
||||||
EXTENSIONS_OFFICE=""\
|
|
||||||
EXTENSIONS_VIRUSTOTAL="" \
|
|
||||||
EXTENSIONS_OSQUERY="" \
|
|
||||||
EXTENSIONS_DOCKER="" \
|
|
||||||
APP_TIMEOUT="" \
|
APP_TIMEOUT="" \
|
||||||
API_SELECTOR="" \
|
API_SELECTOR="" \
|
||||||
IP_SELECTOR="" \
|
IP_SELECTOR="" \
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
## variables
|
||||||
|
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||||
|
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||||
|
|
||||||
|
## check tag to use the correct repository
|
||||||
|
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||||
|
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rpm --import "${APT_KEY}"
|
||||||
|
echo -e "${REPOSITORY}" | tee /etc/yum.repos.d/wazuh.repo
|
||||||
@@ -9,8 +9,8 @@ export CONFIG_DIR=${INSTALLATION_DIR}/config
|
|||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.8/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.8/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
|
|||||||
@@ -1,25 +0,0 @@
|
|||||||
REPOSITORY="packages.wazuh.com/4.x"
|
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
|
||||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
|
||||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
|
||||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
|
||||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
|
||||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
|
||||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
## check version to use the correct repository
|
|
||||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
|
||||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
|
||||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
curl -o wazuh-dashboard-base.tar.xz https://${REPOSITORY}/stack/dashboard/wazuh-dashboard-base-${WAZUH_VERSION}-${WAZUH_TAG_REVISION}-linux-x64.tar.xz
|
|
||||||
tar -xf wazuh-dashboard-base.tar.xz --directory $INSTALL_DIR --strip-components=1
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
## variables
|
|
||||||
WAZUH_APP=https://packages.wazuh.com/4.x/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CHECK_UPDATES=https://packages.wazuh.com/4.x/ui/dashboard/wazuhCheckUpdates-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CORE=https://packages.wazuh.com/4.x/ui/dashboard/wazuhCore-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
|
||||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
|
||||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
|
||||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
|
||||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
|
||||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
|
||||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
## check version to use the correct repository
|
|
||||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
|
||||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CHECK_UPDATES=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCheckUpdates-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CORE=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCore-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
|
||||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
|
||||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CHECK_UPDATES=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCheckUpdates-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CORE=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCore-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
|
||||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
|
||||||
WAZUH_APP=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuh-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CHECK_UPDATES=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCheckUpdates-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
WAZUH_CORE=https://packages-dev.wazuh.com/pre-release/ui/dashboard/wazuhCore-${WAZUH_VERSION}-${WAZUH_UI_REVISION}.zip
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install Wazuh App
|
|
||||||
$INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_APP --allow-root
|
|
||||||
$INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_CHECK_UPDATES --allow-root
|
|
||||||
$INSTALL_DIR/bin/opensearch-dashboards-plugin install $WAZUH_CORE --allow-root
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
server.host: 0.0.0.0
|
|
||||||
server.port: 5601
|
|
||||||
opensearch.hosts: https://wazuh.indexer:9200
|
|
||||||
opensearch.ssl.verificationMode: none
|
|
||||||
opensearch.requestHeadersWhitelist: [ authorization,securitytenant ]
|
|
||||||
opensearch_security.multitenancy.enabled: false
|
|
||||||
opensearch_security.readonly_mode.roles: ["kibana_read_only"]
|
|
||||||
server.ssl.enabled: true
|
|
||||||
server.ssl.key: "/usr/share/wazuh-dashboard/config/certs/dashboard-key.pem"
|
|
||||||
server.ssl.certificate: "/usr/share/wazuh-dashboard/config/certs/dashboard.pem"
|
|
||||||
opensearch.ssl.certificateAuthorities: ["/usr/share/wazuh-dashboard/config/certs/root-ca.pem"]
|
|
||||||
uiSettings.overrides.defaultRoute: /app/wz-home
|
|
||||||
|
|
||||||
@@ -15,21 +15,6 @@ declare -A CONFIG_MAP=(
|
|||||||
[checks.template]=$CHECKS_TEMPLATE
|
[checks.template]=$CHECKS_TEMPLATE
|
||||||
[checks.api]=$CHECKS_API
|
[checks.api]=$CHECKS_API
|
||||||
[checks.setup]=$CHECKS_SETUP
|
[checks.setup]=$CHECKS_SETUP
|
||||||
[extensions.pci]=$EXTENSIONS_PCI
|
|
||||||
[extensions.gdpr]=$EXTENSIONS_GDPR
|
|
||||||
[extensions.hipaa]=$EXTENSIONS_HIPAA
|
|
||||||
[extensions.nist]=$EXTENSIONS_NIST
|
|
||||||
[extensions.tsc]=$EXTENSIONS_TSC
|
|
||||||
[extensions.audit]=$EXTENSIONS_AUDIT
|
|
||||||
[extensions.oscap]=$EXTENSIONS_OSCAP
|
|
||||||
[extensions.ciscat]=$EXTENSIONS_CISCAT
|
|
||||||
[extensions.aws]=$EXTENSIONS_AWS
|
|
||||||
[extensions.gcp]=$EXTENSIONS_GCP
|
|
||||||
[extensions.github]=$EXTENSIONS_GITHUB
|
|
||||||
[extensions.office]=$EXTENSIONS_OFFICE
|
|
||||||
[extensions.virustotal]=$EXTENSIONS_VIRUSTOTAL
|
|
||||||
[extensions.osquery]=$EXTENSIONS_OSQUERY
|
|
||||||
[extensions.docker]=$EXTENSIONS_DOCKER
|
|
||||||
[timeout]=$APP_TIMEOUT
|
[timeout]=$APP_TIMEOUT
|
||||||
[api.selector]=$API_SELECTOR
|
[api.selector]=$API_SELECTOR
|
||||||
[ip.selector]=$IP_SELECTOR
|
[ip.selector]=$IP_SELECTOR
|
||||||
|
|||||||
@@ -6,6 +6,13 @@ ARG WAZUH_TAG_REVISION
|
|||||||
|
|
||||||
RUN yum install curl-minimal openssl xz tar findutils shadow-utils -y
|
RUN yum install curl-minimal openssl xz tar findutils shadow-utils -y
|
||||||
|
|
||||||
|
COPY config/check_repository.sh /
|
||||||
|
RUN chmod 775 /check_repository.sh && \
|
||||||
|
source /check_repository.sh
|
||||||
|
|
||||||
|
RUN yum install wazuh-indexer-${WAZUH_VERSION}-${WAZUH_TAG_REVISION} -y && \
|
||||||
|
yum clean all
|
||||||
|
|
||||||
COPY config/opensearch.yml /
|
COPY config/opensearch.yml /
|
||||||
|
|
||||||
COPY config/config.sh .
|
COPY config/config.sh .
|
||||||
@@ -59,7 +66,8 @@ RUN chmod 700 /entrypoint.sh && chmod 700 /securityadmin.sh
|
|||||||
|
|
||||||
RUN chown 1000:1000 /*.sh
|
RUN chown 1000:1000 /*.sh
|
||||||
|
|
||||||
COPY --from=builder --chown=1000:1000 /debian/wazuh-indexer/usr/share/wazuh-indexer /usr/share/wazuh-indexer
|
COPY --from=builder --chown=1000:1000 /usr/share/wazuh-indexer /usr/share/wazuh-indexer
|
||||||
|
COPY --from=builder --chown=1000:1000 /etc/wazuh-indexer /usr/share/wazuh-indexer
|
||||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/systemd /usr/lib/systemd
|
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/systemd /usr/lib/systemd
|
||||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/sysctl.d /usr/lib/sysctl.d
|
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/sysctl.d /usr/lib/sysctl.d
|
||||||
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/tmpfiles.d /usr/lib/tmpfiles.d
|
COPY --from=builder --chown=0:0 /debian/wazuh-indexer/usr/lib/tmpfiles.d /usr/lib/tmpfiles.d
|
||||||
|
|||||||
15
build-docker-images/wazuh-indexer/config/check_repository.sh
Normal file
15
build-docker-images/wazuh-indexer/config/check_repository.sh
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
## variables
|
||||||
|
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||||
|
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||||
|
|
||||||
|
## check tag to use the correct repository
|
||||||
|
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||||
|
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rpm --import "${APT_KEY}"
|
||||||
|
echo -e "${REPOSITORY}" | tee /etc/yum.repos.d/wazuh.repo
|
||||||
@@ -19,42 +19,11 @@ export INDEXER_FILE=wazuh-indexer-base.tar.xz
|
|||||||
export BASE_FILE=wazuh-indexer-base-${VERSION}-linux-x64.tar.xz
|
export BASE_FILE=wazuh-indexer-base-${VERSION}-linux-x64.tar.xz
|
||||||
export REPO_DIR=/unattended_installer
|
export REPO_DIR=/unattended_installer
|
||||||
|
|
||||||
rm -rf ${INSTALLATION_DIR}/
|
|
||||||
|
|
||||||
## variables
|
|
||||||
REPOSITORY="packages.wazuh.com/4.x"
|
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
|
||||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
|
||||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
|
||||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
|
||||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
|
||||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
|
||||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
## check version to use the correct repository
|
|
||||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
|
||||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
|
||||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
curl -o ${INDEXER_FILE} https://${REPOSITORY}/stack/indexer/${BASE_FILE}
|
|
||||||
tar -xf ${INDEXER_FILE}
|
|
||||||
|
|
||||||
## TOOLS
|
|
||||||
|
|
||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.8/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.8/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
@@ -103,20 +72,6 @@ mkdir -p ${TARGET_DIR}/usr/lib/tmpfiles.d
|
|||||||
mkdir -p ${TARGET_DIR}/usr/lib/sysctl.d
|
mkdir -p ${TARGET_DIR}/usr/lib/sysctl.d
|
||||||
mkdir -p ${TARGET_DIR}/usr/lib/systemd/system
|
mkdir -p ${TARGET_DIR}/usr/lib/systemd/system
|
||||||
mkdir -p ${TARGET_DIR}${CONFIG_DIR}/certs
|
mkdir -p ${TARGET_DIR}${CONFIG_DIR}/certs
|
||||||
# Move configuration files for wazuh-indexer
|
|
||||||
mv -f ${BASE_DIR}/etc/init.d/${NAME} ${TARGET_DIR}/etc/init.d/${NAME}
|
|
||||||
mv -f ${BASE_DIR}/etc/wazuh-indexer/* ${TARGET_DIR}${CONFIG_DIR}
|
|
||||||
mv -f ${BASE_DIR}/etc/sysconfig/${NAME} ${TARGET_DIR}/etc/default/
|
|
||||||
mv -f ${BASE_DIR}/usr/lib/tmpfiles.d/* ${TARGET_DIR}/usr/lib/tmpfiles.d/
|
|
||||||
mv -f ${BASE_DIR}/usr/lib/sysctl.d/* ${TARGET_DIR}/usr/lib/sysctl.d/
|
|
||||||
mv -f ${BASE_DIR}/usr/lib/systemd/system/* ${TARGET_DIR}/usr/lib/systemd/system/
|
|
||||||
rm -rf ${BASE_DIR}/etc
|
|
||||||
rm -rf ${BASE_DIR}/usr
|
|
||||||
# Copy installation files to final location
|
|
||||||
cp -pr ${BASE_DIR}/* ${TARGET_DIR}${INSTALLATION_DIR}
|
|
||||||
# Copy the security tools
|
|
||||||
cp /$CERT_TOOL ${TARGET_DIR}${INSTALLATION_DIR}/plugins/opensearch-security/tools/
|
|
||||||
cp /$PASSWORD_TOOL ${TARGET_DIR}${INSTALLATION_DIR}/plugins/opensearch-security/tools/
|
|
||||||
# Copy Wazuh's config files for the security plugin
|
# Copy Wazuh's config files for the security plugin
|
||||||
cp -pr /roles_mapping.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
cp -pr /roles_mapping.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||||
cp -pr /roles.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
cp -pr /roles.yml ${TARGET_DIR}${INSTALLATION_DIR}/opensearch-security/
|
||||||
@@ -132,9 +87,9 @@ cp -pr /wazuh-certificates/admin.pem ${TARGET_DIR}${CONFIG_DIR}/certs/admin.pem
|
|||||||
cp -pr /wazuh-certificates/admin-key.pem ${TARGET_DIR}${CONFIG_DIR}/certs/admin-key.pem
|
cp -pr /wazuh-certificates/admin-key.pem ${TARGET_DIR}${CONFIG_DIR}/certs/admin-key.pem
|
||||||
|
|
||||||
# Delete xms and xmx parameters in jvm.options
|
# Delete xms and xmx parameters in jvm.options
|
||||||
sed '/-Xms/d' -i ${TARGET_DIR}${CONFIG_DIR}/jvm.options
|
sed '/-Xms/d' -i /etc/wazuh-indexer/jvm.options
|
||||||
sed '/-Xmx/d' -i ${TARGET_DIR}${CONFIG_DIR}/jvm.options
|
sed '/-Xmx/d' -i /etc/wazuh-indexer/jvm.options
|
||||||
sed -i 's/-Djava.security.policy=file:\/\/\/etc\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/-Djava.security.policy=file:\/\/\/usr\/share\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/g' ${TARGET_DIR}${CONFIG_DIR}/jvm.options
|
sed -i 's/-Djava.security.policy=file:\/\/\/etc\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/-Djava.security.policy=file:\/\/\/usr\/share\/wazuh-indexer\/opensearch-performance-analyzer\/opensearch_security.policy/g' /etc/wazuh-indexer/jvm.options
|
||||||
|
|
||||||
|
|
||||||
chmod -R 500 ${TARGET_DIR}${CONFIG_DIR}/certs
|
chmod -R 500 ${TARGET_DIR}${CONFIG_DIR}/certs
|
||||||
|
|||||||
@@ -60,6 +60,8 @@ RUN mkdir -p /var/ossec/var/multigroups && \
|
|||||||
sync && /permanent_data.sh && \
|
sync && /permanent_data.sh && \
|
||||||
sync && rm /permanent_data.sh
|
sync && rm /permanent_data.sh
|
||||||
|
|
||||||
|
RUN rm /etc/yum.repos.d/wazuh.repo
|
||||||
|
|
||||||
# Services ports
|
# Services ports
|
||||||
EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp
|
EXPOSE 55000/tcp 1514/tcp 1515/tcp 514/udp 1516/tcp
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,14 @@
|
|||||||
## variables
|
## variables
|
||||||
|
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
||||||
|
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||||
|
|
||||||
|
## check tag to use the correct repository
|
||||||
|
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||||
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
APT_KEY=https://packages.wazuh.com/key/GPG-KEY-WAZUH
|
||||||
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
GPG_SIGN="gpgcheck=1\ngpgkey=${APT_KEY}]"
|
||||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1"
|
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=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-)
|
|
||||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
|
||||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
|
||||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
|
||||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
|
||||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
|
||||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
## check version to use the correct repository
|
|
||||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
|
||||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
|
||||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
|
||||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
|
||||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
|
||||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
|
||||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
|
||||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
|
||||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
|
||||||
APT_KEY=https://packages-dev.wazuh.com/key/GPG-KEY-WAZUH
|
|
||||||
REPOSITORY="[wazuh]\n${GPG_SIGN}\nenabled=1\nname=EL-\$releasever - Wazuh\nbaseurl=https://packages-dev.wazuh.com/pre-release/yum/\nprotect=1"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rpm --import "${APT_KEY}"
|
rpm --import "${APT_KEY}"
|
||||||
|
|||||||
@@ -47,12 +47,8 @@ mount_permanent_data() {
|
|||||||
if find ${permanent_dir} -mindepth 1 | read; then
|
if find ${permanent_dir} -mindepth 1 | read; then
|
||||||
print "The path ${permanent_dir} is already mounted"
|
print "The path ${permanent_dir} is already mounted"
|
||||||
else
|
else
|
||||||
if find ${data_tmp} -mindepth 1 | read; then
|
|
||||||
print "Installing ${permanent_dir}"
|
print "Installing ${permanent_dir}"
|
||||||
exec_cmd "cp -a ${data_tmp}. ${permanent_dir}"
|
exec_cmd "cp -ar ${data_tmp}. ${permanent_dir}"
|
||||||
else
|
|
||||||
print "The path ${permanent_dir} is empty, skiped"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
if [ "$INDEXER_URL" != "" ]; then
|
if [ "$INDEXER_URL" != "" ]; then
|
||||||
>&2 echo "Customize Elasticsearch ouput IP"
|
>&2 echo "Customize Elasticsearch output IP"
|
||||||
sed -i "s|hosts:.*|hosts: ['$INDEXER_URL']|g" /etc/filebeat/filebeat.yml
|
sed -i "s|hosts:.*|hosts: ['$INDEXER_URL']|g" /etc/filebeat/filebeat.yml
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -115,8 +115,8 @@ function_entrypoint_scripts() {
|
|||||||
function_configure_vulnerability_detection() {
|
function_configure_vulnerability_detection() {
|
||||||
if [ "$INDEXER_PASSWORD" != "" ]; then
|
if [ "$INDEXER_PASSWORD" != "" ]; then
|
||||||
>&2 echo "Configuring password."
|
>&2 echo "Configuring password."
|
||||||
/var/ossec/bin/wazuh-keystore -f indexer -k username -v $INDEXER_USERNAME
|
echo "$INDEXER_USERNAME" | /var/ossec/bin/wazuh-keystore -f indexer -k username
|
||||||
/var/ossec/bin/wazuh-keystore -f indexer -k password -v $INDEXER_PASSWORD
|
echo "$INDEXER_PASSWORD" | /var/ossec/bin/wazuh-keystore -f indexer -k password
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +1,10 @@
|
|||||||
REPOSITORY="packages.wazuh.com/4.x"
|
## variables
|
||||||
WAZUH_CURRENT_VERSION=$(curl --silent https://api.github.com/repos/wazuh/wazuh/releases/latest | grep '["]tag_name["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 2-)
|
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
||||||
MAJOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f1)
|
WAZUH_TAG=$(curl --silent https://api.github.com/repos/wazuh/wazuh/git/refs/tags | grep '["]ref["]:' | sed -E 's/.*\"([^\"]+)\".*/\1/' | cut -c 11- | grep ^v${WAZUH_VERSION}$)
|
||||||
MID_BUILD=$(echo $WAZUH_VERSION | cut -d. -f2)
|
|
||||||
MINOR_BUILD=$(echo $WAZUH_VERSION | cut -d. -f3)
|
|
||||||
MAJOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f1)
|
|
||||||
MID_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f2)
|
|
||||||
MINOR_CURRENT=$(echo $WAZUH_CURRENT_VERSION | cut -d. -f3)
|
|
||||||
|
|
||||||
## check version to use the correct repository
|
## check tag to use the correct repository
|
||||||
if [ "$MAJOR_BUILD" -gt "$MAJOR_CURRENT" ]; then
|
if [[ -n "${WAZUH_TAG}" ]]; then
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
REPOSITORY="packages.wazuh.com/4.x"
|
||||||
elif [ "$MAJOR_BUILD" -eq "$MAJOR_CURRENT" ]; then
|
|
||||||
if [ "$MID_BUILD" -gt "$MID_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
elif [ "$MID_BUILD" -eq "$MID_CURRENT" ]; then
|
|
||||||
if [ "$MINOR_BUILD" -gt "$MINOR_CURRENT" ]; then
|
|
||||||
REPOSITORY="packages-dev.wazuh.com/pre-release"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-x86_64.rpm &&\
|
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/${FILEBEAT_CHANNEL}-${FILEBEAT_VERSION}-x86_64.rpm &&\
|
||||||
|
|||||||
@@ -79,7 +79,14 @@ PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/sqs_message_proc
|
|||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/sqs_queue.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/aws/subscribers/sqs_queue.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure-logs.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/orm.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/orm.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/utils.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/db/__init__.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure_utils.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure_services/__init__.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure_services/analytics.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure_services/graph.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/azure/azure_services/storage.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/docker/DockerListener.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/gcloud"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/gcloud"
|
||||||
@@ -87,6 +94,9 @@ PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/gcloud.py"
|
|||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/integration.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/integration.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/tools.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/tools.py"
|
||||||
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/exceptions.py"
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/exceptions.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/buckets/bucket.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/buckets/access_logs.py"
|
||||||
|
PERMANENT_DATA_EXCP[((i++))]="/var/ossec/wodles/gcloud/pubsub/subscriber.py"
|
||||||
export PERMANENT_DATA_EXCP
|
export PERMANENT_DATA_EXCP
|
||||||
|
|
||||||
# Files mounted in a volume that should be deleted
|
# Files mounted in a volume that should be deleted
|
||||||
|
|||||||
@@ -30,11 +30,7 @@ mkdir ${PERMANENT_PATH}
|
|||||||
for permanent_dir in "${PERMANENT_DATA[@]}"; do
|
for permanent_dir in "${PERMANENT_DATA[@]}"; do
|
||||||
# Create the directory for the permanent file if it does not exist
|
# Create the directory for the permanent file if it does not exist
|
||||||
DIR=$(dirname "${permanent_dir}")
|
DIR=$(dirname "${permanent_dir}")
|
||||||
if [ ! -e ${PERMANENT_PATH}${DIR} ]
|
|
||||||
then
|
|
||||||
mkdir -p ${PERMANENT_PATH}${DIR}
|
mkdir -p ${PERMANENT_PATH}${DIR}
|
||||||
fi
|
cp -ar ${permanent_dir} ${PERMANENT_PATH}${DIR}
|
||||||
|
|
||||||
mv ${permanent_dir} ${PERMANENT_PATH}${permanent_dir}
|
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
## Variables
|
## Variables
|
||||||
CERT_TOOL=wazuh-certs-tool.sh
|
CERT_TOOL=wazuh-certs-tool.sh
|
||||||
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
PASSWORD_TOOL=wazuh-passwords-tool.sh
|
||||||
PACKAGES_URL=https://packages.wazuh.com/4.8/
|
PACKAGES_URL=https://packages.wazuh.com/4.13/
|
||||||
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.8/
|
PACKAGES_DEV_URL=https://packages-dev.wazuh.com/4.13/
|
||||||
|
|
||||||
## Check if the cert tool exists in S3 buckets
|
## Check if the cert tool exists in S3 buckets
|
||||||
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
CERT_TOOL_PACKAGES=$(curl --silent -I $PACKAGES_URL$CERT_TOOL | grep -E "^HTTP" | awk '{print $2}')
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ version: '3.7'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
wazuh.master:
|
wazuh.master:
|
||||||
image: wazuh/wazuh-manager:4.8.0
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.master
|
hostname: wazuh.master
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@@ -45,7 +45,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh.worker:
|
wazuh.worker:
|
||||||
image: wazuh/wazuh-manager:4.8.0
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.worker
|
hostname: wazuh.worker
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@@ -81,7 +81,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_worker.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh1.indexer:
|
wazuh1.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.8.0
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh1.indexer
|
hostname: wazuh1.indexer
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
@@ -107,7 +107,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh2.indexer:
|
wazuh2.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.8.0
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh2.indexer
|
hostname: wazuh2.indexer
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@@ -129,7 +129,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh3.indexer:
|
wazuh3.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.8.0
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh3.indexer
|
hostname: wazuh3.indexer
|
||||||
restart: always
|
restart: always
|
||||||
environment:
|
environment:
|
||||||
@@ -151,7 +151,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh.dashboard:
|
wazuh.dashboard:
|
||||||
image: wazuh/wazuh-dashboard:4.8.0
|
image: wazuh/wazuh-dashboard:4.13.0
|
||||||
hostname: wazuh.dashboard
|
hostname: wazuh.dashboard
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ version: '3.7'
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
wazuh.manager:
|
wazuh.manager:
|
||||||
image: wazuh/wazuh-manager:4.8.0
|
image: wazuh/wazuh-manager:4.13.0
|
||||||
hostname: wazuh.manager
|
hostname: wazuh.manager
|
||||||
restart: always
|
restart: always
|
||||||
ulimits:
|
ulimits:
|
||||||
@@ -46,7 +46,7 @@ services:
|
|||||||
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
- ./config/wazuh_cluster/wazuh_manager.conf:/wazuh-config-mount/etc/ossec.conf
|
||||||
|
|
||||||
wazuh.indexer:
|
wazuh.indexer:
|
||||||
image: wazuh/wazuh-indexer:4.8.0
|
image: wazuh/wazuh-indexer:4.13.0
|
||||||
hostname: wazuh.indexer
|
hostname: wazuh.indexer
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
@@ -71,7 +71,7 @@ services:
|
|||||||
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
- ./config/wazuh_indexer/internal_users.yml:/usr/share/wazuh-indexer/opensearch-security/internal_users.yml
|
||||||
|
|
||||||
wazuh.dashboard:
|
wazuh.dashboard:
|
||||||
image: wazuh/wazuh-dashboard:4.8.0
|
image: wazuh/wazuh-dashboard:4.13.0
|
||||||
hostname: wazuh.dashboard
|
hostname: wazuh.dashboard
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
150
tools/repository_bumper.sh
Normal file
150
tools/repository_bumper.sh
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# This script is used to update the version of a repository in the specified files.
|
||||||
|
# It takes a version number as an argument and updates the version in the specified files.
|
||||||
|
# Usage: ./repository_bumper.sh <version>
|
||||||
|
|
||||||
|
# Global variables
|
||||||
|
DIR=$(dirname "$(pwd)")
|
||||||
|
LOG_FILE="${DIR}/tools/repository_bumper_$(date +"%Y-%m-%d_%H-%M-%S-%3N").log"
|
||||||
|
VERSION=""
|
||||||
|
STAGE=""
|
||||||
|
FILES_EDITED=()
|
||||||
|
|
||||||
|
get_old_version_and_stage() {
|
||||||
|
local VERSION_FILE="${DIR}/VERSION.json"
|
||||||
|
|
||||||
|
OLD_VERSION=$(jq -r '.version' "${VERSION_FILE}")
|
||||||
|
OLD_STAGE=$(jq -r '.stage' "${VERSION_FILE}")
|
||||||
|
echo "Old version: ${OLD_VERSION}" | tee -a "${LOG_FILE}"
|
||||||
|
echo "Old stage: ${OLD_STAGE}" | tee -a "${LOG_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
grep_command() {
|
||||||
|
# This function is used to search for a specific string in the specified directory.
|
||||||
|
# It takes two arguments: the string to search for and the directory to search in.
|
||||||
|
# Usage: grep_command <string> <directory>
|
||||||
|
eval grep -Rl "${1}" "${2}" --exclude-dir=".git" --exclude="repository_bumper_*.log" --exclude="CHANGELOG.md" "${3}"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_version_in_files() {
|
||||||
|
|
||||||
|
local OLD_MAYOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 1)"
|
||||||
|
local OLD_MINOR="$(echo "${OLD_VERSION}" | cut -d '.' -f 2)"
|
||||||
|
local OLD_PATCH="$(echo "${OLD_VERSION}" | cut -d '.' -f 3)"
|
||||||
|
local NEW_MAYOR="$(echo "${VERSION}" | cut -d '.' -f 1)"
|
||||||
|
local NEW_MINOR="$(echo "${VERSION}" | cut -d '.' -f 2)"
|
||||||
|
local NEW_PATCH="$(echo "${VERSION}" | cut -d '.' -f 3)"
|
||||||
|
m_m_p_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}" "${DIR}") )
|
||||||
|
for file in "${m_m_p_files[@]}"; do
|
||||||
|
sed -i "s/\bv${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}\b/v${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g; s/\b${OLD_MAYOR}\.${OLD_MINOR}\.${OLD_PATCH}/${NEW_MAYOR}\.${NEW_MINOR}\.${NEW_PATCH}/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
m_m_files=( $(grep_command "${OLD_MAYOR}\.${OLD_MINOR}" "${DIR}") )
|
||||||
|
for file in "${m_m_files[@]}"; do
|
||||||
|
sed -i -E "/[0-9]+\.[0-9]+\.[0-9]+/! s/(^|[^0-9.])(${OLD_MAYOR}\.${OLD_MINOR})([^0-9.]|$)/\1${NEW_MAYOR}.${NEW_MINOR}\3/g" "$file"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
m_x_files=( $(grep_command "${OLD_MAYOR}\.x" "${DIR}") )
|
||||||
|
for file in "${m_x_files[@]}"; do
|
||||||
|
sed -i "s/\b${OLD_MAYOR}\.x\b/${NEW_MAYOR}\.x/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if ! sed -i "/^All notable changes to this project will be documented in this file.$/a \\\n## [${VERSION}]\\n\\n### Added\\n\\n- None\\n\\n### Changed\\n\\n- None\\n\\n### Fixed\\n\\n- None\\n\\n### Deleted\\n\\n- None" "${DIR}/CHANGELOG.md"; then
|
||||||
|
echo "Error: Failed to update CHANGELOG.md" | tee -a "${LOG_FILE}"
|
||||||
|
fi
|
||||||
|
if [[ $(git diff --name-only "${DIR}/CHANGELOG.md") ]]; then
|
||||||
|
FILES_EDITED+=("${DIR}/CHANGELOG.md")
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
update_stage_in_files() {
|
||||||
|
local OLD_STAGE="$(echo "${OLD_STAGE}")"
|
||||||
|
files=( $(grep_command "${OLD_STAGE}" "${DIR}" --exclude="README.md") )
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
sed -i "s/${OLD_STAGE}/${STAGE}/g" "${file}"
|
||||||
|
if [[ $(git diff --name-only "${file}") ]]; then
|
||||||
|
FILES_EDITED+=("${file}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
|
||||||
|
echo "Starting repository version bumping process..." | tee -a "${LOG_FILE}"
|
||||||
|
echo "Log file: ${LOG_FILE}"
|
||||||
|
# Parse arguments
|
||||||
|
while [[ $# -gt 0 ]]; do
|
||||||
|
case $1 in
|
||||||
|
--version)
|
||||||
|
VERSION="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
--stage)
|
||||||
|
STAGE="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument: $1"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Validate arguments
|
||||||
|
if [[ -z "$VERSION" ]]; then
|
||||||
|
echo "Error: --version argument is required." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$STAGE" ]]; then
|
||||||
|
echo "Error: --stage argument is required." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate if version is in the correct format
|
||||||
|
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||||
|
echo "Error: Version must be in the format X.Y.Z (e.g., 1.2.3)." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate if stage is in the correct format
|
||||||
|
STAGE=$(echo "$STAGE" | tr '[:upper:]' '[:lower:]')
|
||||||
|
if ! [[ "$STAGE" =~ ^(alpha[0-9]*|beta[0-9]*|rc[0-9]*|stable)$ ]]; then
|
||||||
|
echo "Error: Stage must be one of the following examples: alpha1, beta1, rc1, stable." | tee -a "${LOG_FILE}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get old version and stage
|
||||||
|
get_old_version_and_stage
|
||||||
|
|
||||||
|
if [[ "$OLD_VERSION" == "$VERSION" && "$OLD_STAGE" == "$STAGE" ]]; then
|
||||||
|
echo "Version and stage are already up to date." | tee -a "${LOG_FILE}"
|
||||||
|
echo "No changes needed." | tee -a "${LOG_FILE}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if [[ "$OLD_VERSION" != "$VERSION" ]]; then
|
||||||
|
echo "Updating version from $OLD_VERSION to $VERSION" | tee -a "${LOG_FILE}"
|
||||||
|
update_version_in_files "$VERSION"
|
||||||
|
fi
|
||||||
|
if [[ "$OLD_STAGE" != "$STAGE" ]]; then
|
||||||
|
echo "Updating stage from $OLD_STAGE to $STAGE" | tee -a "${LOG_FILE}"
|
||||||
|
update_stage_in_files "$STAGE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "The following files were edited:" | tee -a "${LOG_FILE}"
|
||||||
|
for file in $(printf "%s\n" "${FILES_EDITED[@]}" | sort -u); do
|
||||||
|
echo "${file}" | tee -a "${LOG_FILE}"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Version and stage updated successfully." | tee -a "${LOG_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Call the main method with all arguments
|
||||||
|
main "$@"
|
||||||
Reference in New Issue
Block a user