Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
8320b77
Merge pull request #748 from IBM/dev
rajan-mis Nov 3, 2023
6dd30fa
Fix for remote mount
rajan-mis Jan 4, 2024
bcc0826
Merge pull request #759 from rajan-mis/remotemount-fix
rajan-mis Jan 4, 2024
b93247f
Fixed sync issue
rajan-mis Apr 28, 2024
7645246
Merge pull request #784 from rajan-mis/devtomain52sync
rajan-mis Apr 28, 2024
e0ef8d1
Merge pull request #783 from IBM/dev
rajan-mis Apr 28, 2024
eeb79e2
Merge pull request #814 from IBM/dev
rajan-mis Aug 17, 2024
0dbe217
CES S3 upgrade support role
rajan-mis Aug 28, 2024
87d4c86
Merge pull request #821 from rajan-mis/main-cess3upgrade
rajan-mis Aug 29, 2024
c9d237e
Merge pull request #844 from IBM/dev
rajan-mis Dec 18, 2024
abbe501
Fixed callhome defect fixes
sujeetkjha Jan 8, 2025
ca8c33e
Merge pull request #848 from sujeetkjha/callhomemain_fixes
rajan-mis Jan 8, 2025
7b8484d
README file update for CES S3 and supported OS
sujeetkjha Jan 20, 2025
669f65a
Merge pull request #852 from sujeetkjha/Readme_File_update_Main
rajan-mis Jan 20, 2025
0469e3e
Merge pull request #881 from IBM/dev
rajan-mis May 13, 2025
bffd367
Fixed SLES15 issue fix
rajan-mis Jul 31, 2025
e4ef6b4
Merge pull request #904 from rajan-mis/mainslesdeefct
rajan-mis Jul 31, 2025
064ce8f
Fixed SLES15 issue
rajan-mis Aug 1, 2025
a7a2ce3
Merge pull request #908 from rajan-mis/mainslesdeefct
rajan-mis Aug 1, 2025
c4b8070
Merge remote-tracking branch 'upstream/dev' into firewall_ansible
Sep 11, 2025
5d2c0c2
Ansible role to open required scale firweall ports
asingla-23 Sep 11, 2025
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
1 change: 1 addition & 0 deletions roles/scale_firewall_config/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
../../README.md
18 changes: 18 additions & 0 deletions roles/scale_firewall_config/defaults/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
firewall:
# - { port: 80, protocol: http }
# - { port: 443, protocol: https }
# - { port: 22, protocol: ssh }
# - { port: 20, protocol: ftp }
# - { port: 21, protocol: ftp }
# - { port: 25, protocol: smtp }
# - { port: 110, protocol: pop3 }
# - { port: 143, protocol: imap }
# - { port: 53, protocol: dns }
# - { port: 123, protocol: ntp }
# - { port: 23, protocol: telnet }
# - { port: 445, protocol: smb }





13 changes: 13 additions & 0 deletions roles/scale_firewall_config/group_vars/all.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
firewall:
- { port: 80, protocol: tcp }
- { port: 22, protocol: tcp }
- { port: 443, protocol: tcp }


required_ports:
- { port: 80, protocol: tcp}
- { port: 443, protocol: tcp }
- { port: 22, protocol: tcp }



3 changes: 3 additions & 0 deletions roles/scale_firewall_config/handlers/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
- name: Reload firewalld
command: "firewall-cmd --reload"
Empty file.
134 changes: 134 additions & 0 deletions roles/scale_firewall_config/tasks/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
---
# 1) install and start firewalld
- name: Debug - About to install firewalld
debug:
msg: "Executing: yum install firewalld -y"

- name: Install firewalld (if not installed)
yum:
name: firewalld
state: present
register: install_firewalld

- name: Debug - Firewalld install output
debug:
msg: "{{ install_firewalld.stdout }}"
when: install_firewalld.rc == 0 and install_firewalld.stdout is defined

- name: Start and enable firewalld
service:
name: firewalld
state: started
enabled: yes
register: start_firewalld

- name: Debug - Firewalld start output
debug:
var: start_firewalld
when: install_firewalld is changed

# 2)querying firewalld
- name: Debug - Executing Precheck List current firewalld configuration
debug:
msg: "Executing command: firewall-cmd --list-all"

- name: Precheck List current firewalld configuration
command: firewall-cmd --list-all
register: firewalld_config_precheck
changed_when: false # so failures here don’t show as “changed”

- name: Debug - Show stdout if precheck succeeded
debug:
msg: "{{ firewalld_config_precheck.stdout }}"
when: firewalld_config_precheck.rc == 0 and firewalld_config_precheck.stdout is defined

- name: Debug - Show stderr if precheck failed
debug:
msg: "Precheck error: {{ firewalld_config_precheck.stderr }}"
when: firewalld_config_precheck.rc != 0 and firewalld_config_precheck.stderr is defined

# 3) extracting open ports
- name: Extract open ports from firewalld config
set_fact:
open_ports: "{{ firewalld_config_precheck.stdout | regex_findall('(\\d+)/tcp') | map('int') | list }}"

- name: Identify missing required ports
set_fact:
missing_ports: "{{ required_ports | map(attribute='port') | difference(open_ports) }}"

- name: Debug - Missing ports before applying changes
debug:
msg: "Missing ports: {{ missing_ports | join(', ') }}"
when: missing_ports | length > 0

- name: Warn if required ports are missing
debug:
msg: "WARNING: Required ports not open: {{ missing_ports | join(', ') }}. They must be added to all.yml under 'firewall:' to proceed."
when: missing_ports | length > 0

- name: Debug - Executing open-ports commands
debug:
msg: "Executing: firewall-cmd --permanent --add-port={{ item.port }}/{{ item.protocol | default('tcp') }}"
loop: "{{ firewall }}"

- name: Open all ports defined in 'firewall' variable
firewalld:
port: "{{ item.port }}/{{ item.protocol | default('tcp') }}"
permanent: yes
state: enabled
loop: "{{ firewall }}"
when: firewall is defined and firewall | length > 0
notify: Reload firewalld

# 4) reloading and post check firewalld
- name: Debug - Executing firewalld reload
debug:
msg: "Executing command: firewall-cmd --reload"

- name: Reload firewalld
command: firewall-cmd --reload
register: reload_firewalld
changed_when: false

- name: Debug - Reload stdout
debug:
msg: "{{ reload_firewalld.stdout }}"
when: reload_firewalld.rc == 0 and reload_firewalld.stdout is defined

- name: Debug - Reload stderr
debug:
msg: "Reload error: {{ reload_firewalld.stderr }}"
when: reload_firewalld.rc != 0 and reload_firewalld.stderr is defined

- name: Debug - Executing post-check list-all
debug:
msg: "Executing command: firewall-cmd --list-all"

- name: Post-check List updated firewalld configuration
command: firewall-cmd --list-all
register: firewalld_config_postcheck
changed_when: false

- name: Debug - Show post-check stdout
debug:
msg: "{{ firewalld_config_postcheck.stdout }}"

- name: Extract open ports after changes
set_fact:
open_ports_after: "{{ firewalld_config_postcheck.stdout | regex_findall('(\\d+)/tcp') | map('int') | list }}"

- name: Identify remaining missing ports
set_fact:
missing_ports_after: "{{ required_ports | map(attribute='port') | difference(open_ports_after) }}"

- name: Debug - Ports still missing
debug:
msg: "Ports still missing after changes: {{ missing_ports_after | join(', ') }}"
when: missing_ports_after | length > 0

- name: Fail if required ports are still missing
fail:
msg: "ERROR: The following required ports are STILL missing: {{ missing_ports_after | join(', ') }}. Please add them to 'all.yml' under 'firewall:' and retry!"
when: missing_ports_after | length > 0


3 changes: 3 additions & 0 deletions roles/scale_firewall_config/tests/inventory.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[cluster01]
ess-11 ansible_host=192.168.100.100 ansible_user=root
ess-12 ansible_host=192.168.100.101 ansible_user=root
5 changes: 5 additions & 0 deletions roles/scale_firewall_config/tests/playbook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- name: Configure firewall ports on ESS cluster nodes
hosts: cluster01
become: yes
roles:
- scale_firewall_config