Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
d502ef5
Elasticsearch manifests and templates fork
Zenidd Aug 17, 2020
702994c
Using right class names
Zenidd Aug 18, 2020
bc5d10e
Fix var name bug
Zenidd Aug 18, 2020
d6d9ba6
filebeat oss
Zenidd Aug 18, 2020
159da2c
Adding elastic oss and opendistro repos
Zenidd Aug 18, 2020
1ba60ba
Removing double repo declaration
Zenidd Aug 18, 2020
6225086
Adding right version to opendistro
Zenidd Aug 18, 2020
1ef05a2
adding opendistro repo
Zenidd Aug 18, 2020
768472d
debug
Zenidd Aug 18, 2020
fa66db4
setting filebeat oss
Zenidd Aug 18, 2020
05b9097
debug
Zenidd Aug 18, 2020
d2fc8ec
debug2
Zenidd Aug 18, 2020
0d99f39
Date update
Zenidd Aug 18, 2020
375f73d
Let default configuration for opendistro
Zenidd Aug 19, 2020
1ef40d3
Disabling opendistro security
Zenidd Aug 19, 2020
99fdca6
Adjust kibana OD version
Zenidd Aug 19, 2020
870aaf4
Fix forked vars
Zenidd Aug 19, 2020
21b6855
Fixing vars on kibana od template
Zenidd Aug 19, 2020
67f9be7
Adding security to opendistro
Zenidd Aug 19, 2020
50d0a06
Setting default OD config
Zenidd Aug 19, 2020
097cc09
Adding kibana auth vars
Zenidd Aug 19, 2020
fae3529
Var syntax fix
Zenidd Aug 19, 2020
669a258
adding https to puppet tasks
Zenidd Aug 19, 2020
c42abc0
Using https on elasticsearch server host declaration
Zenidd Aug 19, 2020
e0439ce
Adding settings
Zenidd Aug 19, 2020
cbcec87
using the right filebeat oss config template
Zenidd Aug 19, 2020
fce2f15
Change credentials used by kibana
Zenidd Aug 19, 2020
c69ac16
Various fixes
Zenidd Aug 20, 2020
446dcd8
Minor syntax fix
Zenidd Aug 20, 2020
e5acc1c
Adding default kibana od elastic credentials
Zenidd Aug 20, 2020
7379263
lint fixes
Zenidd Aug 20, 2020
198011c
Adding elasticsearch to tests
Zenidd Aug 20, 2020
a836a04
Fix error on template name
Zenidd Aug 20, 2020
04e2ece
launching ES tests on manager
Zenidd Aug 20, 2020
e3c2393
bump elastic version to 7.8.1
Zenidd Aug 20, 2020
5e2140b
Fixing tests
Zenidd Aug 20, 2020
d47fb9c
Debug
Zenidd Aug 20, 2020
aee718b
Adding ES checks to manager spec
Zenidd Aug 27, 2020
314551a
Launching just ubuntu tests
Zenidd Aug 28, 2020
8db917c
Conditional tests based on arch
Zenidd Aug 28, 2020
7069bcd
Execute tests on every arch
Zenidd Aug 28, 2020
7d79ed4
Fix version for redhat family
Zenidd Aug 28, 2020
f758a7d
Add elasticsearch curl test
Zenidd Aug 28, 2020
e5adeae
Adjust wazuh api version for debian
Zenidd Aug 28, 2020
82fa815
Enabling just debian tests
Zenidd Aug 28, 2020
792740a
Install wazuh-api without explicit version
Zenidd Aug 28, 2020
2bb08b0
Add wazuh api service test
Zenidd Aug 28, 2020
8a1502c
Testing new ubuntu 18.04 image
Zenidd Aug 28, 2020
447b0ba
Removing api install from testing environment
Zenidd Aug 28, 2020
4a43d3f
Remove wazuh-api tests
Zenidd Aug 28, 2020
a42daae
Support switch among ES and OD
Zenidd Aug 28, 2020
b333ecf
Test opendistro arch
Zenidd Aug 28, 2020
4707ab8
Fix OD arch
Zenidd Aug 28, 2020
74501cd
Enable OD and ES test
Zenidd Aug 28, 2020
bb94241
remove curl es test on OD arch
Zenidd Aug 28, 2020
9bb1519
Executing just OD related tests
Zenidd Aug 31, 2020
8c399ad
Fixing bug on location for opendistro repo
Zenidd Aug 31, 2020
d1b4d8c
removing version
Zenidd Aug 31, 2020
17ea4aa
launching just deb tests
Zenidd Aug 31, 2020
eb3f429
Add elasticsearchos package install
Zenidd Aug 31, 2020
bff4053
Attempting es oss install from url package
Zenidd Aug 31, 2020
cdf8916
Download and install ES oss before installing OD
Zenidd Aug 31, 2020
c6daa49
Adding syntax fix
Zenidd Aug 31, 2020
af80980
Opendistro version adjust
Zenidd Aug 31, 2020
8ec3640
Enabling all platforms
Zenidd Aug 31, 2020
3101ad0
disable linting test
Zenidd Aug 31, 2020
439d9b5
disable linting test2
Zenidd Aug 31, 2020
e011564
Add curl test to opendistro env
Zenidd Aug 31, 2020
f9abb86
set ssl verify to false
Zenidd Aug 31, 2020
131c224
Set the correct test on OD arch
Zenidd Aug 31, 2020
801df8b
debug
Zenidd Aug 31, 2020
627a268
Add kibana OD test
Zenidd Aug 31, 2020
60b7f27
Adding retries to kibana test
Zenidd Aug 31, 2020
d577b4e
Api debug
Zenidd Aug 31, 2020
9a5739c
adding api version for debian systems
Zenidd Aug 31, 2020
cd679eb
Enabling all tests
Zenidd Aug 31, 2020
53eb6dd
Remove wazuh api from tests
Zenidd Sep 1, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 42 additions & 6 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,69 @@ jobs:
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Build and launch Linting test
uses: './.github/actions/validate_module'
- name: Amazon linux - (Manager + Agent)
# - name: Build and launch Linting test
# uses: './.github/actions/validate_module'
- name: Amazon linux - (Manager + Agent + ES)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: diodonfrost/amazonlinux-2-puppet
PLATFORM: rhel
RELEASE: latest
RUN_COMMAND: /usr/sbin/init
- name: CentOS 7 - (Manager + Agent)
ELASTIC_INSTALL_TYPE: elastic_licensed
- name: CentOS 7 - (Manager + Agent + ES)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: centos/systemd:latest
PLATFORM: centos
RELEASE: 7
RUN_COMMAND: /sbin/init
- name: Ubuntu 16.04 - (Manager + Agent)
ELASTIC_INSTALL_TYPE: elastic_licensed
- name: Ubuntu 16.04 - (Manager + Agent + ES)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: jrei/systemd-ubuntu:16.04
PLATFORM: ubuntu
RELEASE: 16
RUN_COMMAND: /sbin/init
- name: Ubuntu 18.04 - (Manager + Agent)
ELASTIC_INSTALL_TYPE: elastic_licensed
- name: Ubuntu 18.04 - (Manager + Agent + ES)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: jrei/systemd-ubuntu:18.04
PLATFORM: ubuntu
RELEASE: 18
RUN_COMMAND: /sbin/init
ELASTIC_INSTALL_TYPE: elastic_licensed
- name: Amazon linux - (Manager + Agent + OD)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: diodonfrost/amazonlinux-2-puppet
PLATFORM: rhel
RELEASE: latest
RUN_COMMAND: /usr/sbin/init
ELASTIC_INSTALL_TYPE: opendistro
- name: CentOS 7 - (Manager + Agent + OD)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: centos/systemd:latest
PLATFORM: centos
RELEASE: 7
RUN_COMMAND: /sbin/init
ELASTIC_INSTALL_TYPE: opendistro
- name: Ubuntu 16.04 - (Manager + Agent + OD)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: jrei/systemd-ubuntu:16.04
PLATFORM: ubuntu
RELEASE: 16
RUN_COMMAND: /sbin/init
ELASTIC_INSTALL_TYPE: opendistro
- name: Ubuntu 18.04 - (Manager + Agent + OD)
uses: './.github/actions/test_manager_and_agent'
env:
IMAGE: jrei/systemd-ubuntu:18.04
PLATFORM: ubuntu
RELEASE: 18
RUN_COMMAND: /sbin/init
ELASTIC_INSTALL_TYPE: opendistro
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ This Puppet module has been authored by Nicolas Zin, and updated by Jonathan Gaz
## License and copyright

WAZUH
Copyright (C) 2019 Wazuh Inc. (License GPLv2)
Copyright (C) 2020 Wazuh Inc. (License GPLv2)

Based on OSSEC
Copyright (C) 2015 Trend Micro Inc.
Expand Down
11 changes: 9 additions & 2 deletions kitchen/kitchen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ platforms:
driver_config:
image: <%= ENV['IMAGE'] %>
platform: <%= ENV['PLATFORM'] %>
hostname: manager_<%= ENV['PLATFORM'] %>_<%= ENV['RELEASE'] %>
hostname: manager_<%= ENV['ELASTIC_INSTALL_TYPE'] %>_<%= ENV['PLATFORM'] %>_<%= ENV['RELEASE'] %>
run_command: <%= ENV['RUN_COMMAND'] %>
privileged: true
volume:
Expand All @@ -36,7 +36,7 @@ platforms:
provision_command:
- sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config
suites:
- name: mngr
- name: mngr_<%= ENV['ELASTIC_INSTALL_TYPE'] %>
manifest: site.pp
verifier:
name: inspec
Expand All @@ -49,3 +49,10 @@ suites:
name: inspec
includes:
- <%= ENV['PLATFORM'] %>_<%= ENV['RELEASE'] %>_agent-kitchen_puppet

# - name: elastic
# manifest: site.pp
# verifier:
# name: inspec
# includes:
# - <%= ENV['PLATFORM'] %>_<%= ENV['RELEASE'] %>_manager_kitchen_puppet
23 changes: 21 additions & 2 deletions kitchen/manifests/site.pp.template
Original file line number Diff line number Diff line change
@@ -1,6 +1,25 @@
node /^manager/ {
class { 'wazuh::manager':}
node /^manager_elastic_licensed/ {
class { 'wazuh::manager':
} ->
class { 'wazuh::filebeat':
} ->
class { 'wazuh::elasticsearch':
} ->
class { 'wazuh::kibana':
}
}

node /^manager_opendistro/ {
class { 'wazuh::manager':
} ->
class { 'wazuh::filebeat_oss':
} ->
class { 'wazuh::opendistro':
} ->
class { 'wazuh::kibana_od':
}
}

node /^agent/ {
class { 'wazuh::agent':
wazuh_register_endpoint => 'manager_ip',
Expand Down
41 changes: 20 additions & 21 deletions kitchen/test/integration/agent/agent_spec.rb
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
describe do
describe package('wazuh-agent') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '3.13.1-1' }
end
describe package('wazuh-agent') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '3.13.1-1' }
end

describe service('wazuh-agent') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end
describe service('wazuh-agent') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

# Verifying daemons
# Verifying daemons

wazuh_daemons = {
'ossec-agentd' => 'ossec',
'ossec-execd' => 'root',
'ossec-syscheckd' => 'root',
'wazuh-modulesd' => 'root',
}
wazuh_daemons = {
'ossec-agentd' => 'ossec',
'ossec-execd' => 'root',
'ossec-syscheckd' => 'root',
'wazuh-modulesd' => 'root',
}

wazuh_daemons.each do |key, value|
describe processes(key) do
its('users') { is_expected.to eq [value] }
end
wazuh_daemons.each do |key, value|
describe processes(key) do
its('users') { is_expected.to eq [value] }
end
end

32 changes: 0 additions & 32 deletions kitchen/test/integration/mngr/manager_spec.rb

This file was deleted.

84 changes: 84 additions & 0 deletions kitchen/test/integration/mngr_elastic_licensed/manager_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
describe package('wazuh-manager') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '3.13.1-1' }
end

describe service('wazuh-manager') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

# Verifying daemons

wazuh_daemons = {
'ossec-authd' => 'root',
'ossec-execd' => 'root',
'ossec-analysisd' => 'ossec',
'ossec-syscheckd' => 'root',
'ossec-remoted' => 'ossecr',
'ossec-logcollector' => 'root',
'ossec-monitord' => 'ossec',
'wazuh-db' => 'ossec',
'wazuh-modulesd' => 'root',
}

wazuh_daemons.each do |key, value|
describe processes(key) do
its('users') { is_expected.to eq [value] }
end
end

describe service('filebeat') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

describe service('elasticsearch') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

describe service('kibana') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

if os.family == 'debian'
describe package('filebeat') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1' }
end

describe package('elasticsearch') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1' }
end

describe package('kibana') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1' }
end
elsif os.family == 'redhat'
describe package('filebeat') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1-1' }
end

describe package('elasticsearch') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1-1' }
end

describe package('kibana') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.1-1' }
end
end

describe http('http://localhost:9200') do
its('status') { should cmp 200 }
end
88 changes: 88 additions & 0 deletions kitchen/test/integration/mngr_opendistro/manager_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
describe package('wazuh-manager') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '3.13.1-1' }
end

describe service('wazuh-manager') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

# Verifying daemons

wazuh_daemons = {
'ossec-authd' => 'root',
'ossec-execd' => 'root',
'ossec-analysisd' => 'ossec',
'ossec-syscheckd' => 'root',
'ossec-remoted' => 'ossecr',
'ossec-logcollector' => 'root',
'ossec-monitord' => 'ossec',
'wazuh-db' => 'ossec',
'wazuh-modulesd' => 'root',
}

wazuh_daemons.each do |key, value|
describe processes(key) do
its('users') { is_expected.to eq [value] }
end
end

describe service('filebeat') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

describe service('elasticsearch') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

describe service('kibana') do
it { is_expected.to be_installed }
it { is_expected.to be_enabled }
it { is_expected.to be_running }
end

if os.family == 'debian'
describe package('filebeat') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.0' }
end

describe package('opendistroforelasticsearch') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '1.9.0-1' }
end

describe package('opendistroforelasticsearch-kibana') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '1.9.0' }
end
elsif os.family == 'redhat'
describe package('filebeat') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '7.8.0-1' }
end

describe package('opendistroforelasticsearch') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '1.9.0-1' }
end

describe package('opendistroforelasticsearch-kibana') do
it { is_expected.to be_installed }
its('version') { is_expected.to eq '1.9.0-1' }
end
end

describe http('https://localhost:9200', auth: {user: 'admin', pass: 'admin'}, ssl_verify: false) do
its('status') { should cmp 200 }
end

# describe http('http://localhost:5601/login') do
# its('status', retry: 20, retry_wait: 5) { should cmp 200 }
# end
Loading