Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
803dc8a
fix lsapd
tpurschke Nov 18, 2025
cbb316b
Merge branch 'importer-rework' of https://github.com/CactuseSecurity/…
tpurschke Nov 18, 2025
84f26ce
add galaxy parts to venv
tpurschke Nov 18, 2025
93a6d6a
fix ldap override config
tpurschke Nov 18, 2025
c7d9dc5
add ansible tmp dir
tpurschke Nov 18, 2025
9f31be3
fix audit user rendering
tpurschke Nov 18, 2025
27beec2
update ansible postgres db to dbname
tpurschke Nov 18, 2025
0048460
avoid warning for ssh key generation
tpurschke Nov 18, 2025
1e893b9
fix postgresql in ansible
tpurschke Nov 18, 2025
1c3c1f3
working on all OSes with login_db instead
tpurschke Nov 18, 2025
e4b3ee8
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 19, 2025
224a9f4
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 19, 2025
4e610fa
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 19, 2025
f7010a8
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 19, 2025
6749d18
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 21, 2025
359ff0f
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 24, 2025
a5298f9
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 24, 2025
01cfba2
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 24, 2025
b8824d3
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 24, 2025
5f50067
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 25, 2025
a41a153
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 27, 2025
dff4601
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 27, 2025
89d89c8
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 27, 2025
d780a82
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 27, 2025
0a1dcad
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 27, 2025
62cc0a8
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 28, 2025
69d3bfc
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Nov 28, 2025
1f0deb9
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Dec 1, 2025
32d60ce
Merge branch 'importer-rework' into fix/imp-rework/ldap-server-on-deb…
tpurschke Dec 1, 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
5 changes: 5 additions & 0 deletions collections/requirements.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
collections:
- name: ansible.posix
- name: community.general
- name: community.postgresql
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
Say you register a variable like this

- name: check if there already is an ldap connection in DB
postgresql_query:
db: fworchdb
community.postgresql.postgresql_query:
login_db: fworchdb
query: SELECT COUNT(*) FROM ldap_connection
become: yes
become_user: postgres
Expand Down
6 changes: 6 additions & 0 deletions documentation/installer/basic-installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ Note that if your server is behind a proxy, you will have to set the proxy for p

pip config set global.proxy http://YOUR-PROXY-NAME:YOUR-PROXY-PORT

Regardless of how Ansible is installed, make sure the required collections are available (they contain the `synchronize` and PostgreSQL modules used by the playbooks):

```console
ansible-galaxy collection install -r collections/requirements.yml
```

4) Firewall Orchestrator installation

```console
Expand Down
4 changes: 2 additions & 2 deletions roles/api/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@
become: true

- name: set grants for hasura schemas (after hasura install)
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: "GRANT USAGE ON SCHEMA {{ item }} TO dbbackupusers; Grant select on ALL TABLES in SCHEMA {{ item }} to group dbbackupusers; ALTER DEFAULT PRIVILEGES IN SCHEMA {{ item }} GRANT SELECT ON TABLES TO group dbbackupusers;"
become: true
become_user: postgres
Expand Down
17 changes: 16 additions & 1 deletion roles/common/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@
state: present
become: true

- name: check for existing ssh key for {{ fworch_user }}
stat:
path: "{{ fworch_home }}/.ssh/id_rsa"
register: fworch_existing_ssh_key

- name: add user {{ fworch_user }}
user:
name: "{{ fworch_user }}"
Expand All @@ -79,11 +84,21 @@
home: "{{ fworch_home }}"
shell: /bin/bash
group: "{{ fworch_group }}"
generate_ssh_key: true
generate_ssh_key: "{{ not fworch_existing_ssh_key.stat.exists | default(false) }}"
ssh_key_bits: 4096
ssh_key_file: .ssh/id_rsa
become: true

- name: ensure ansible remote tmp directory exists
file:
path: "/tmp/.ansible-{{ fworch_user }}/tmp"
state: directory
owner: "{{ fworch_user }}"
group: "{{ fworch_group }}"
mode: "0770"
recurse: true
become: true

- name: global apache config
include_tasks: global-apache2-config.yml
# vars:
Expand Down
4 changes: 2 additions & 2 deletions roles/common/tasks/uninstall.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@
when: pg_version|int >= 13

- name: check if db still exists
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: "select exists(SELECT datname FROM pg_catalog.pg_database WHERE lower(datname) = lower('fworchdb'))"
register: db_exists

Expand Down
8 changes: 4 additions & 4 deletions roles/database/tasks/create-ro-user.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@
role_attr_flags: LOGIN,NOSUPERUSER,INHERIT,NOCREATEDB,NOCREATEROLE

- name: GRANT ro user
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: GRANT CONNECT ON DATABASE {{ fworch_db_name }} TO {{ fwo_db_ro_user }}

- name: GRANT ro user all access to schemata
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: |
GRANT USAGE ON SCHEMA {{ item }} TO {{ fwo_db_ro_user }};
GRANT SELECT ON ALL TABLES IN SCHEMA {{ item }} TO {{ fwo_db_ro_user }};
Expand Down
12 changes: 6 additions & 6 deletions roles/database/tasks/create-users.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
loop: "{{ database_users }}"

- name: add user dbbackup to group dbbackupusers
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: GRANT dbbackupusers TO dbbackup

- name: add user fworchimporter to group configimporters
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: GRANT configimporters TO fworchimporter

- name: add user fworch to group fworchadmins
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: GRANT fworchadmins TO fworch

become: true
Expand Down
16 changes: 8 additions & 8 deletions roles/database/tasks/install-database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@
# include add-tablespace.yml here

- name: make sure sorting order of psql client and postgresql server match for databases to be created
postgresql_query:
community.postgresql.postgresql_query:
login_user: postgres
db: postgres
login_db: postgres
query: "ALTER DATABASE template1 REFRESH COLLATION VERSION"
when: pg_version|int >= 15

Expand All @@ -66,8 +66,8 @@
state: present

- name: test module postgresql_query functionality (only works with ansible >= 2.8) in case of an error message you may run scripts/install-lastes-ansible.yml
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: 'select version()'
register: test_query
when: ansible_version.full is version ('2.8', '>=')
Expand All @@ -82,7 +82,7 @@

- name: creating {{ fworch_db_name }}-db-model
community.postgresql.postgresql_script:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
path: "{{ database_install_dir }}/sql/creation/{{ item }}"
loop:
- fworch-create-tables.sql
Expand All @@ -96,7 +96,7 @@

- name: add colors to the database
postgresql_copy:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
copy_from: "{{ database_install_dir }}/csv/color.csv"
dst: stm_color
columns:
Expand All @@ -109,7 +109,7 @@

- name: add error messages to the database
postgresql_copy:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
copy_from: "{{ database_install_dir }}/csv/error.csv"
dst: error
columns:
Expand All @@ -124,7 +124,7 @@

- name: add ip protocols to the database
postgresql_copy:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
copy_from: "{{ database_install_dir }}/csv/ip-protocol-list.csv"
dst: stm_ip_proto
columns:
Expand Down
6 changes: 3 additions & 3 deletions roles/database/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,9 +160,9 @@
become: true

- name: check if database already exists
postgresql_query:
community.postgresql.postgresql_query:
query: SELECT count(*) FROM pg_database WHERE datname='{{ fworch_db_name }}'
db: postgres
login_db: postgres
register: db_exists
become: true
become_user: postgres
Expand Down Expand Up @@ -194,7 +194,7 @@

- name: (re)defines functions and views (idempotent)
community.postgresql.postgresql_script:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
path: "{{ database_install_dir }}/sql/idempotent/{{ item }}"
become: true
become_user: postgres
Expand Down
2 changes: 1 addition & 1 deletion roles/database/tasks/run-unit-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

- name: run db unit tests
community.postgresql.postgresql_script:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
path: "{{ database_install_dir }}/sql/test/{{ item }}"
become: true
become_user: "postgres"
Expand Down
2 changes: 1 addition & 1 deletion roles/database/tasks/upgrade-database.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

- name: install upgrades
community.postgresql.postgresql_script:
db: "{{ fworch_db_name }}"
login_db: "{{ fworch_db_name }}"
path: "{{ database_install_dir }}/upgrade/{{ item }}.sql"
loop: "{{ upgrade_files | community.general.version_sort }}"
become: true
Expand Down
4 changes: 2 additions & 2 deletions roles/finalize/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@
when: "'frontends' in group_names"

- name: test whether demo data is present
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
SELECT * FROM device WHERE dev_name='{{ sample_fortigate_name }}'
register: demo_data_present
Expand Down
14 changes: 7 additions & 7 deletions roles/middleware/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
bind_pw: "{{ ldap_manager_pwd }}"
when: installation_mode == "new"

- name: Set {{ audit_user }} password in ldap
- name: Set audit user password in ldap
ldap_passwd:
dn: "uid={{ audit_user }},ou=tenant0,ou=operator,ou=user,{{ openldap_path }}"
passwd: "{{ auditor_initial_pwd }}"
Expand All @@ -169,8 +169,8 @@
when: audit_user is defined and auditor_initial_pwd is defined and installation_mode=='new'

- name: insert admin tenant0 to database
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN IF NOT EXISTS
(SELECT tenant_id FROM tenant WHERE tenant_name='tenant0')
Expand All @@ -182,8 +182,8 @@
when: installation_mode == "new"

- name: add connection for internal ldap with encrypted passwords
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
PERFORM insertLocalLdapWithEncryptedPasswords ('{{ openldap_server }}', {{ openldap_port }},
Expand All @@ -196,8 +196,8 @@
when: installation_mode == "new"

- name: insert admin tenant0 to device mapping - tenant0 can see all devices
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN IF NOT EXISTS (SELECT * FROM tenant_to_device LEFT JOIN tenant USING (tenant_id) WHERE tenant_name='tenant0')
THEN INSERT INTO tenant_to_device (tenant_id, device_id)
Expand Down
4 changes: 2 additions & 2 deletions roles/middleware/tasks/upgrade/5.5.5.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
- name: set ldap tenant level to 5
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN IF EXISTS
(SELECT * FROM ldap_connection
Expand Down
6 changes: 3 additions & 3 deletions roles/openldap-server/templates/config.ldif.j2
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_mdb.la
olcModuleLoad: {1}memberof.la
olcModuleLoad: {2}refint.la
olcModuleLoad: {0}back_mdb
olcModuleLoad: {1}memberof
olcModuleLoad: {2}refint

# internal schema
dn: cn=schema,cn=config
Expand Down
4 changes: 3 additions & 1 deletion roles/openldap-server/templates/override.conf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@
ExecStartPre=/bin/mkdir -p /run/slapd
ExecStartPre=/bin/chown openldap:openldap /run/slapd
ExecStart=
ExecStart=/usr/sbin/slapd -u {{ openldap_server_user }} -g {{ openldap_server_user }} -h "ldap://{{ openldap_server }} ldaps:///"
Type=forking
PIDFile=/run/slapd/slapd.pid
ExecStart=/usr/sbin/slapd -F {{ openldap_server_app_path }}/slapd.d -u {{ openldap_server_user }} -g {{ openldap_server_user }} -h "ldap://{{ openldap_server }} ldaps:///"
28 changes: 14 additions & 14 deletions roles/sample-auth-data/tasks/auth_sample_data.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
- block:

- name: insert tenant tenant1{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS (SELECT tenant_id FROM tenant WHERE tenant_name='tenant1{{ sample_postfix }}') THEN
Expand All @@ -12,8 +12,8 @@
END $do$

- name: add device mapping for tenant tenant1{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS (SELECT * FROM tenant_to_device LEFT JOIN tenant USING (tenant_id) WHERE tenant_name='tenant1{{ sample_postfix }}') THEN
Expand All @@ -23,8 +23,8 @@
END $do$

- name: add management mapping for tenant tenant1{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS (SELECT * FROM tenant_to_management LEFT JOIN tenant USING (tenant_id) WHERE tenant_name='tenant1{{ sample_postfix }}') THEN
Expand All @@ -38,8 +38,8 @@
END $do$

- name: insert tenant tenant2{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS (SELECT tenant_id FROM tenant WHERE tenant_name='tenant2{{ sample_postfix }}') THEN
Expand All @@ -49,8 +49,8 @@
END $do$

- name: add device mapping for tenant tenant2{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS
Expand All @@ -62,8 +62,8 @@
when: sample_role_purpose is not match('test')

- name: add management mapping for tenant tenant2{{ sample_postfix }}
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF NOT EXISTS (SELECT * FROM tenant_to_management LEFT JOIN tenant USING (tenant_id) WHERE tenant_name='tenant2{{ sample_postfix }}') THEN
Expand All @@ -77,8 +77,8 @@
END $do$

- name: insert demo tenant network data
postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
IF EXISTS (SELECT tenant_id FROM tenant WHERE tenant_name='tenant1_demo') THEN
Expand Down
4 changes: 2 additions & 2 deletions roles/sample-auth-data/tasks/sample_owner_data.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
- name: adding demo owner data

postgresql_query:
db: "{{ fworch_db_name }}"
community.postgresql.postgresql_query:
login_db: "{{ fworch_db_name }}"
query: >
DO $do$ BEGIN
INSERT INTO owner (name, dn, group_dn, is_default, tenant_id, recert_interval, app_id_external)
Expand Down
Loading