File tree Expand file tree Collapse file tree 12 files changed +186
-73
lines changed Expand file tree Collapse file tree 12 files changed +186
-73
lines changed Original file line number Diff line number Diff line change 2
2
3
3
## 0.3.1 (Unreleased)
4
4
5
+ ENHANCEMENTS:
6
+
7
+ * Split the default Molecule scenario into a simple and advanced scenario to solve timeout issues encountered in TravisCI.
8
+
5
9
BUG FIXES:
6
10
7
11
* Rename handlers to use more specific role related naming and prevent namespace collision issues.
Original file line number Diff line number Diff line change @@ -79,4 +79,5 @@ nginx_app_protect_conf_template:
79
79
out_file_location : /etc/nginx/
80
80
nginx_app_protect_demo_workload_protocol : http://
81
81
nginx_app_protect_demo_workload_host : 10.1.1.1:8080
82
- nginx_app_protect_log_policy_syslog_target : 127.0.0.1:514
82
+ nginx_app_protect_log_policy_syslog_target : 127.0.0.1:514 # DEPRECATED -- use nginx_app_protect_log_policy_target instead
83
+ nginx_app_protect_log_policy_target : " syslog:server={{ nginx_app_protect_log_policy_syslog_target }}"
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Converge
3
+ hosts : nap
4
+ tasks :
5
+ - name : Install NGINX App Protect
6
+ include_role :
7
+ name : ansible-role-nginx-app-protect
8
+ vars :
9
+ nginx_app_protect_license :
10
+ certificate : license/nginx-repo.crt
11
+ key : license/nginx-repo.key
12
+ nginx_app_protect_remove_license : false
13
+ nginx_app_protect_install_signatures : true
14
+ nginx_app_protect_install_threat_campaigns : true
15
+ nginx_app_protect_configure : true
16
+ nginx_app_protect_security_policy_template_enable : true
17
+ nginx_app_protect_security_policy_enforcement_mode : blocking
18
+ nginx_app_protect_log_policy_template_enable : true
19
+ nginx_app_protect_log_policy_filter_request_type : all
20
+ nginx_app_protect_conf_template_enable : true
21
+ nginx_app_protect_demo_workload_protocol : http://
22
+ nginx_app_protect_demo_workload_host : test-workload:80
23
+ nginx_app_protect_log_policy_syslog_target : localhost:514
24
+ nginx_app_protect_timeout : 180
Original file line number Diff line number Diff line change
1
+ ---
2
+ driver :
3
+ name : docker
4
+ lint : |
5
+ set -e
6
+ yamllint .
7
+ ansible-lint --force-color
8
+ platforms :
9
+ - name : test-workload
10
+ groups :
11
+ - workload
12
+ image : nginxdemos/hello
13
+ privileged : true
14
+ networks :
15
+ - name : molecule-test
16
+ - name : centos-7
17
+ groups :
18
+ - nap
19
+ image : centos:7
20
+ dockerfile : ../Dockerfile.j2
21
+ privileged : true
22
+ networks :
23
+ - name : molecule-test
24
+ volumes :
25
+ - " /sys/fs/cgroup:/sys/fs/cgroup:rw"
26
+ command : " /usr/sbin/init"
27
+ - name : ubuntu-bionic
28
+ groups :
29
+ - nap
30
+ image : ubuntu:bionic
31
+ dockerfile : ../Dockerfile.j2
32
+ privileged : true
33
+ networks :
34
+ - name : molecule-test
35
+ volumes :
36
+ - " /sys/fs/cgroup:/sys/fs/cgroup:rw"
37
+ command : " /sbin/init"
38
+ - name : debian-stretch
39
+ groups :
40
+ - nap
41
+ image : debian:stretch-slim
42
+ dockerfile : ../Dockerfile.j2
43
+ privileged : true
44
+ networks :
45
+ - name : molecule-test
46
+ volumes :
47
+ - " /sys/fs/cgroup:/sys/fs/cgroup:rw"
48
+ command : " /sbin/init"
49
+ provisioner :
50
+ name : ansible
51
+ config_options :
52
+ defaults :
53
+ no_target_syslog : true
54
+ log : false
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Prepare
3
+ hosts : localhost
4
+ gather_facts : false
5
+ tasks :
6
+ - name : Create ephemeral license certificate file from b64 decoded env var
7
+ copy :
8
+ content : " {{ lookup('env','NGINX_CRT') | b64decode }}"
9
+ dest : ../../files/license/nginx-repo.crt
10
+ force : false
11
+ mode : 0444
12
+
13
+ - name : Create ephemeral license key file from b64 decoded env var
14
+ copy :
15
+ content : " {{ lookup('env','NGINX_KEY') | b64decode }}"
16
+ dest : ../../files/license/nginx-repo.key
17
+ force : false
18
+ mode : 0444
19
+
20
+ - name : Set up rsyslog server for verifying NAP syslog events
21
+ hosts : nap
22
+ roles :
23
+ - role : robertdebock.rsyslog
24
+ vars :
25
+ rsyslog_receiver : true
26
+ rsyslog_remote_tcp : true
27
+ rsyslog_remote_port : 514
28
+
29
+ - name : Prepare workload for tests
30
+ hosts : workload
31
+ gather_facts : false
32
+ tasks :
33
+ - name : Start nginx on test workload
34
+ raw : nohup nginx </dev/null >/dev/null 2>&1 & sleep 1
35
+ changed_when : false
File renamed without changes.
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Verify
3
+ hosts : nap
4
+ tasks :
5
+ - name : Check if NGINX is installed
6
+ package :
7
+ name : nginx-plus
8
+ check_mode : true
9
+ register : install
10
+ failed_when : (install is changed) or (install is failed)
11
+
12
+ - name : Check if NGINX App Protect is installed
13
+ package :
14
+ name : app-protect
15
+ check_mode : true
16
+ register : install
17
+ failed_when : (install is changed) or (install is failed)
18
+
19
+ - name : Check if NGINX App Protect Signatures is installed
20
+ package :
21
+ name : app-protect-attack-signatures
22
+ check_mode : true
23
+ register : install
24
+ failed_when : (install is changed) or (install is failed)
25
+
26
+ - name : Check if NGINX App Protect Threat Campaigns is installed
27
+ package :
28
+ name : app-protect-threat-campaigns
29
+ check_mode : true
30
+ register : install
31
+ failed_when : (install is changed) or (install is failed)
32
+
33
+ - name : Check if NGINX service is running
34
+ service :
35
+ name : nginx
36
+ state : started
37
+ enabled : true
38
+ check_mode : true
39
+ register : service
40
+ failed_when : (service is changed) or (service is failed)
41
+
42
+ - name : Check that a page returns a status 200 and fail if the words Hello World are not in the page contents
43
+ uri :
44
+ url : " http://localhost"
45
+ return_content : true
46
+ register : this
47
+ failed_when : " 'Hello World' not in this.content"
48
+
49
+ - name : Check that a page returns a status 200 and fail if the words Request Rejected are not in the page contents
50
+ uri :
51
+ url : " http://localhost/?v=<script>"
52
+ return_content : true
53
+ register : this
54
+ failed_when : " 'Request Rejected' not in this.content"
55
+
56
+ - name : Ensure /var/log/messages contains block event from above test
57
+ shell : grep -c "Non-browser Client,Abuse of Functionality,Cross Site Scripting (XSS)" /var/log/messages || true
58
+ register : event
59
+ changed_when : false
60
+ failed_when : event.stdout == "0"
Original file line number Diff line number Diff line change 1
1
---
2
2
- name : Converge
3
- hosts : nap
3
+ hosts : all
4
4
tasks :
5
5
- name : Install NGINX App Protect
6
6
include_role :
7
7
name : ansible-role-nginx-app-protect
8
8
vars :
9
- nginx_app_protect_enable : true
9
+ nginx_app_protect_license :
10
+ certificate : license/nginx-repo.crt
11
+ key : license/nginx-repo.key
10
12
nginx_app_protect_remove_license : false
11
13
nginx_app_protect_install_signatures : true
12
14
nginx_app_protect_install_threat_campaigns : true
15
17
nginx_app_protect_security_policy_enforcement_mode : blocking
16
18
nginx_app_protect_log_policy_template_enable : true
17
19
nginx_app_protect_log_policy_filter_request_type : all
18
- nginx_app_protect_log_policy_syslog_target : localhost:514
19
- nginx_app_protect_conf_template_enable : true
20
- nginx_app_protect_demo_workload_protocol : http://
21
- nginx_app_protect_demo_workload_host : test-workload:80
22
- nginx_app_protect_license :
23
- certificate : license/nginx-repo.crt
24
- key : license/nginx-repo.key
25
- nginx_app_protect_timeout : 180
20
+ nginx_app_protect_conf_template_enable : false
Original file line number Diff line number Diff line change @@ -6,49 +6,26 @@ lint: |
6
6
yamllint .
7
7
ansible-lint --force-color
8
8
platforms :
9
- - name : test-workload
10
- groups :
11
- - workload
12
- image : nginxdemos/hello
13
- privileged : true
14
- networks :
15
- - name : molecule-test
16
9
- name : centos-7
17
- groups :
18
- - nap
19
10
image : centos:7
20
11
dockerfile : ../Dockerfile.j2
21
12
privileged : true
22
- networks :
23
- - name : molecule-test
24
13
volumes :
25
14
- " /sys/fs/cgroup:/sys/fs/cgroup:rw"
26
15
command : " /usr/sbin/init"
27
16
- name : ubuntu-bionic
28
- groups :
29
- - nap
30
17
image : ubuntu:bionic
31
18
dockerfile : ../Dockerfile.j2
32
19
privileged : true
33
- networks :
34
- - name : molecule-test
35
20
volumes :
36
21
- " /sys/fs/cgroup:/sys/fs/cgroup:rw"
37
22
command : " /sbin/init"
38
23
- name : debian-stretch
39
- groups :
40
- - nap
41
24
image : debian:stretch-slim
42
25
dockerfile : ../Dockerfile.j2
43
26
privileged : true
44
- networks :
45
- - name : molecule-test
46
27
volumes :
47
28
- " /sys/fs/cgroup:/sys/fs/cgroup:rw"
48
29
command : " /sbin/init"
49
30
provisioner :
50
31
name : ansible
51
- config_options :
52
- defaults :
53
- no_target_syslog : true
54
- log : false
Original file line number Diff line number Diff line change 16
16
dest : ../../files/license/nginx-repo.key
17
17
force : false
18
18
mode : 0444
19
-
20
- - name : Set up rsyslog server for verifying NAP syslog events
21
- hosts : nap
22
- roles :
23
- - role : robertdebock.rsyslog
24
- vars :
25
- rsyslog_receiver : true
26
- rsyslog_remote_tcp : true
27
- rsyslog_remote_port : 514
28
-
29
- - name : Prepare workload for tests
30
- hosts : workload
31
- gather_facts : false
32
- tasks :
33
- - name : Start nginx on test workload
34
- raw : nohup nginx </dev/null >/dev/null 2>&1 & sleep 1
35
- changed_when : false
You can’t perform that action at this time.
0 commit comments