blob: 470d4f4f9f156fdb43aa367e0631a3c378ccbc93 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
---
- name: Check if firewalld is installed
command: rpm -q firewalld
args:
# Disables the following warning:
# Consider using yum, dnf or zypper module rather than running rpm
warn: no
register: pkg_check
failed_when: pkg_check.rc > 1
changed_when: no
- name: Ensure firewalld service is not enabled
service:
name: firewalld
state: stopped
enabled: no
when: pkg_check.rc == 0
# TODO: submit PR upstream to add mask/unmask to service module
- name: Mask firewalld service
command: systemctl mask firewalld
register: result
changed_when: "'firewalld' in result.stdout"
when: pkg_check.rc == 0
ignore_errors: yes
- name: Install iptables packages
action: "{{ ansible_pkg_mgr }} name={{ item }} state=present"
with_items:
- iptables
- iptables-services
register: install_result
when: not openshift.common.is_atomic | bool
- name: Reload systemd units
command: systemctl daemon-reload
when: install_result | changed
- name: Determine if iptables service masked
command: >
systemctl is-enabled {{ item }}
with_items:
- iptables
- ip6tables
register: os_firewall_iptables_masked_output
changed_when: false
failed_when: false
- name: Unmask iptables service
command: >
systemctl unmask {{ item }}
with_items:
- iptables
- ip6tables
when: "'masked' in os_firewall_iptables_masked_output.results | map(attribute='stdout')"
- name: Start and enable iptables service
service:
name: iptables
state: started
enabled: yes
register: result
- name: need to pause here, otherwise the iptables service starting can sometimes cause ssh to fail
pause: seconds=10
when: result | changed
- name: Add iptables allow rules
os_firewall_manage_iptables:
name: "{{ item.service }}"
action: add
protocol: "{{ item.port.split('/')[1] }}"
port: "{{ item.port.split('/')[0] }}"
with_items: "{{ os_firewall_allow }}"
- name: Remove iptables rules
os_firewall_manage_iptables:
name: "{{ item.service }}"
action: remove
protocol: "{{ item.port.split('/')[1] }}"
port: "{{ item.port.split('/')[0] }}"
with_items: "{{ os_firewall_deny }}"
|