diff --git a/README.md b/README.md index 734cc36..213cb55 100644 --- a/README.md +++ b/README.md @@ -108,6 +108,3 @@ AWX tar -xzf k9s_*.tar.gz -C . ln -s /etc/kubernetes/k9s/k9s /usr/bin/k9s kubectl taint nodes --all node-role.kubernetes.io/master- - -Wordpress Database Dump - ansible-playbook upload-database-dumb.yml -e "cluster_services_str='connect,connect_wordpress' stage='dev' upload_file="smardigo/wordpress_portal.sql.gz"" diff --git a/create-database-backup.yml b/create-database-backup.yml index a17ebdd..983b26b 100644 --- a/create-database-backup.yml +++ b/create-database-backup.yml @@ -10,9 +10,10 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') -# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_services_str }}__gehtdichnixan.sql +# cluster_size := (WIP node count for the cluster) +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) +# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_service }}__gehtdichnixan.sql # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -34,11 +35,12 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - tags: - - always + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: "Add postgres servers to hosts if necessary" @@ -48,19 +50,19 @@ - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" - when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy'] + with_items: "{{ cluster_features }}" + when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns'] ############################################################# -# create database backup +# Creating database backups for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: - ansible_ssh_host: "{{ stage_server_domain }}" postgres_backup_state: dump + ansible_ssh_host: "{{ stage_server_domain }}" roles: - role: connect-postgres @@ -82,10 +84,10 @@ when: "'workflow_proxy' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/create-database.yml b/create-database.yml index 03901dc..c831967 100644 --- a/create-database.yml +++ b/create-database.yml @@ -17,8 +17,9 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_size := (WIP node count for the cluster) +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -40,35 +41,39 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - - name: Add postgres servers to hosts if necessary + - name: "Add postgres servers to hosts if necessary" add_host: name: "{{ stage }}-postgres-01" groups: - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" + with_items: "{{ cluster_features }}" when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns'] - - name: Add maria servers to hosts if necessary + - name: "Add maria servers to hosts if necessary" add_host: name: "{{ stage }}-maria-01" groups: - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" + with_items: "{{ cluster_features }}" when: item in ['connect_wordpress'] ############################################################# -# Setup databases for created inventory +# Creating databases for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: @@ -78,14 +83,10 @@ - name: "Import autodiscover pre-tasks" include_tasks: tasks/autodiscover_pre_tasks.yml - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - roles: - role: connect-postgres when: "'connect' in group_names" - + - role: pdns-postgres vars: initialize: True @@ -93,7 +94,7 @@ - role: pdns-admin-postgres vars: - initialize: True + initialize: True when: "'pdns' in group_names" - role: gitea-postgres @@ -115,10 +116,10 @@ when: "'connect_wordpress' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/create-kibana-objects.yml b/create-kibana-objects.yml index d64bc83..f5831fa 100644 --- a/create-kibana-objects.yml +++ b/create-kibana-objects.yml @@ -10,8 +10,9 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_size := (WIP node count for the cluster) +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -33,22 +34,26 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - - tasks: - - name: Add kibana server(s) to hosts if necessary + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" add_host: - name: "{{ stage }}-elastic-stack-kibana-01-kibana" + name: "{{ stage }}-smardigo-management-message" groups: - "stage_{{ stage }}" - with_items: "{{ cluster_services }}" - when: item in ['connect'] + changed_when: False + + tasks: + - name: Add hosts + add_host: + name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" + groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}" + with_sequence: start=1 end={{ cluster_size | default(1) }} + changed_when: False ############################################################# -# configure elastic search objects +# Creating kibana search objects for created inventory ############################################################# -- hosts: "stage_{{ stage }}" + +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: no remote_user: root @@ -121,8 +126,8 @@ - osquery - savedObjectsTagging es_indexpattern_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-*' - es_search_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_services_str }}' - es_dashboard_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_services_str }}' + es_search_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}' + es_dashboard_name: '{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ cluster_service }}' tasks: - name: "Do some stuff in elastic with spaces ... " @@ -184,10 +189,10 @@ - es-importobjects ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/create-realm.yml b/create-realm.yml index 81d0b4a..e84d570 100644 --- a/create-realm.yml +++ b/create-realm.yml @@ -9,7 +9,8 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # playbook roles (keycloak / oidc) # current_realm_name := # current_realm_display_name := @@ -34,22 +35,26 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: Add hosts add_host: name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" - groups: "{{ ['stage_' + stage ] + cluster_services }}" + groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}" with_sequence: start=1 end={{ cluster_size | default(1) }} changed_when: False ############################################################# -# Setup realms for created inventory +# Creating realms for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false @@ -61,25 +66,21 @@ - name: "Import autodiscover pre-tasks" include_tasks: tasks/autodiscover_pre_tasks.yml - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - roles: - role: connect-realm - when: '"connect" in cluster_services' + when: '"connect" in group_names' - role: gitea-realm - when: '"gitea" in cluster_services' + when: '"gitea" in group_names' - role: workflow-proxy-realm - when: '"workflow-proxy" in cluster_services' + when: '"workflow-proxy" in group_names' ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/create-server.yml b/create-server.yml index 3c1aa86..8c0a60f 100644 --- a/create-server.yml +++ b/create-server.yml @@ -6,7 +6,7 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services := (services to setup, e.g. ['connect', 'wordpress', ...]) +# cluster_service := (service to setup, e.g. 'connect', ...) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -28,6 +28,13 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False + tasks: - name: Add hosts add_host: @@ -39,10 +46,10 @@ changed_when: False ############################################################# -# Provisioning servers for created inventory +# Creating servers for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(5) }}" gather_facts: false @@ -83,10 +90,10 @@ - role: hcloud ############################################################# -# Setup servers for created inventory +# Provisioning servers for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: @@ -129,10 +136,10 @@ when: traefik_enabled | default(True) ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/create-service.yml b/create-service.yml index 47dc631..d4d98be 100644 --- a/create-service.yml +++ b/create-service.yml @@ -6,7 +6,8 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -28,29 +29,26 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: Add hosts add_host: - name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01" -# name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" - groups: - - "stage_{{ stage }}" - - "{{ cluster_service }}" - - "{{ item }}" + name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" + groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}" + with_sequence: start=1 end={{ cluster_size | default(1) }} changed_when: False -# with_sequence: start=1 end={{ cluster_count | default(1) }} - with_items: "{{ cluster_services }}" - when: item in ['connect', 'connect_wordpress'] ############################################################# -# Setup services for created inventory +# Creating services for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: @@ -60,10 +58,6 @@ - name: "Import autodiscover pre-tasks" include_tasks: tasks/autodiscover_pre_tasks.yml - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - roles: - role: connect when: "'connect' in group_names" @@ -72,10 +66,10 @@ when: "'connect_wordpress' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/group_vars/connect_resubmission/man.yml b/group_vars/connect_resubmission/man.yml new file mode 100644 index 0000000..486df6b --- /dev/null +++ b/group_vars/connect_resubmission/man.yml @@ -0,0 +1,3 @@ +--- + +connect_resubmission_enabled: "true" diff --git a/group_vars/management/plain.yml b/group_vars/management/plain.yml index 7f38f23..7647b33 100644 --- a/group_vars/management/plain.yml +++ b/group_vars/management/plain.yml @@ -14,7 +14,6 @@ spring_profiles_include: "prod,postgres,elastic,swagger" tenant_id: "{{ management_oidc_realm }}" cluster_size: "1" cluster_name: "{{ management_oidc_client_id }}" -cluster_services_str: "connect" current_realm_name: "management" current_realm_display_name: "Stage Management" diff --git a/import-database.yml b/import-database.yml index b988bf2..ee2c5a7 100644 --- a/import-database.yml +++ b/import-database.yml @@ -5,8 +5,9 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_size := (WIP node count for the cluster) +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # database_backup_file := the dump file to import, has to be on the database server under /tmp (e.g. wordpress_portal.sql) # target_database := (optional) the database to import into ( see {{ connect_wordpress_maria_database }}) # smardigo message callback @@ -29,26 +30,30 @@ - ansible_version.major >= 2 - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - - name: Add hosts + - name: Add maria servers to hosts if necessary add_host: name: "{{ stage }}-maria-01" groups: - "stage_{{ stage }}" - "{{ item }}" - cluster_service: "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" + with_items: "{{ cluster_features }}" + when: item in ['connect_wordpress'] ############################################################# -# Setup services for created inventory +# Importing database backups for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: @@ -57,9 +62,6 @@ pre_tasks: - name: "Import autodiscover pre-tasks" include_tasks: tasks/autodiscover_pre_tasks.yml - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" roles: - role: import-maria-database @@ -67,6 +69,7 @@ - "'connect_wordpress' in group_names" - "target_database is defined" - "database_backup_file is defined" + - role: import-maria-database vars: target_database: "{{ connect_wordpress_maria_database }}" @@ -75,10 +78,10 @@ - "database_backup_file is defined" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/remove-database.yml b/remove-database.yml index 21671a6..715d8a7 100644 --- a/remove-database.yml +++ b/remove-database.yml @@ -9,8 +9,9 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_size := (WIP node count for the cluster) +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -31,8 +32,13 @@ - ansible_version.major >= 2 - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: Add postgres servers to hosts if necessary @@ -42,8 +48,8 @@ - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" - when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'pdns'] + with_items: "{{ cluster_features }}" + when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns'] - name: Add maria servers to hosts if necessary add_host: @@ -52,30 +58,26 @@ - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" + with_items: "{{ cluster_features }}" when: item in ['connect_wordpress'] ############################################################# -# Setup databases for created inventory +# Deleting databases for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: + database_state: absent ansible_ssh_host: "{{ stage_server_domain }}" pre_tasks: - name: "Import autodiscover pre-tasks" include_tasks: tasks/autodiscover_pre_tasks.yml - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" roles: - role: connect-postgres - vars: - database_state: absent when: "'connect' in group_names" - role: pdns-admin-postgres @@ -85,23 +87,19 @@ when: "'pdns' in group_names" - role: keycloak-postgres - vars: - database_state: absent when: "'keycloak' in group_names" - role: webdav-postgres - vars: - database_state: absent when: "'webdav' in group_names" - role: connect-wordpress-maria when: "'connect_wordpress' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/remove-realm.yml b/remove-realm.yml index de2b90a..0b9e1df 100644 --- a/remove-realm.yml +++ b/remove-realm.yml @@ -9,7 +9,8 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # playbook roles (keycloak / oidc) # current_realm_name := # current_realm_display_name := @@ -33,22 +34,27 @@ - ansible_version.major >= 2 - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" + + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: Add hosts add_host: name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" - groups: "{{ ['stage_' + stage ] + cluster_services }}" + groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}" with_sequence: start=1 end={{ cluster_size | default(1) }} changed_when: False ############################################################# -# Setup realms for created inventory +# Deleting client for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false @@ -70,10 +76,10 @@ client_name: "{{ cluster_name }}" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/remove-server.yml b/remove-server.yml index bc90ee7..73e74ca 100644 --- a/remove-server.yml +++ b/remove-server.yml @@ -6,7 +6,7 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services := (services to setup, e.g. ['connect', 'wordpress', ...]) +# cluster_service := (service to setup, e.g. 'connect', ...) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -33,6 +33,13 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False + tasks: - name: Add hosts add_host: @@ -48,7 +55,7 @@ - cluster_service is defined ############################################################# -# Delete and DNS servers for created inventory +# Deleting servers/domains for created inventory ############################################################# - hosts: "stage_{{ stage }}" @@ -62,6 +69,7 @@ tasks_from: _set_server_state vars: - server_state: "absent" + - name: "Delete DNS entry <{{ inventory_hostname }}> for <{{ domain }}>" include_role: name: _digitalocean @@ -70,10 +78,10 @@ record_to_remove: '{{ inventory_hostname }}' ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/remove-service.yml b/remove-service.yml index 90a6d2c..882e572 100644 --- a/remove-service.yml +++ b/remove-service.yml @@ -6,7 +6,8 @@ # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) # cluster_size := (WIP node count for the cluster) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -27,34 +28,24 @@ - ansible_version.major >= 2 - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - tasks: - - name: Add hosts + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" add_host: - name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01" + name: "{{ stage }}-smardigo-management-message" groups: - "stage_{{ stage }}" - - "{{ cluster_service }}" - - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" - when: item in ['connect'] + + tasks: - name: Add hosts add_host: - name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-01" - groups: - - "stage_{{ stage }}" - - "{{ cluster_service }}" - - "{{ item }}" + name: "{{ stage }}-{{ tenant_id }}-{{ cluster_name }}-{{ '%02d' | format(item|int) }}" + groups: "{{ ['stage_' + stage ] + [cluster_service] + cluster_features }}" + with_sequence: start=1 end={{ cluster_size | default(1) }} changed_when: False - with_items: "{{ cluster_services }}" - when: item in ['connect_wordpress'] ############################################################# -# Setup services for created inventory +# Removing services for created inventory ############################################################# - hosts: "stage_{{ stage }}" @@ -83,10 +74,10 @@ when: "'connect_wordpress' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/restore-database-backup.yml b/restore-database-backup.yml index cdd17e4..32decda 100644 --- a/restore-database-backup.yml +++ b/restore-database-backup.yml @@ -10,9 +10,9 @@ # stage := the type of the stage (e.g. dev, int, qa, prod) # tenant_id := (unique key for the tenant, e.g. customer) # cluster_name := (business name for the cluster, e.g. product, department ) -# cluster_size := (WIP node count for the cluster) (Currently max is 2 master/slave) -# cluster_services_str := (services to setup, e.g. 'connect,wordpress') -# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_services_str }}__gehtdichnixan.sql +# cluster_service := (service to setup, e.g. 'connect', ...) +# cluster_features := (optional features to use, e.g. ['wordpress', 'resubmission', ...]) +# custom_backup_name := defines a substring for backup file => {{ stage }}_{{ tenant_id }}_{{ cluster_name }}_{{ cluster_service }}__gehtdichnixan.sql # smardigo message callback # scope_id := (scope id of the management process) # process_instance_id := (process instance id of the management process) @@ -34,11 +34,12 @@ - ansible_version.minor >= 10 msg: "The ansible version has to be at least ({{ ansible_version.full }})" - - name: "Parsing cluster_services_str into cluster_services" - set_fact: - cluster_services: "{{ cluster_services_str | split(',') }}" - tags: - - always + - name: "Add <{{ stage }}-smardigo-management-message> to hosts" + add_host: + name: "{{ stage }}-smardigo-management-message" + groups: + - "stage_{{ stage }}" + changed_when: False tasks: - name: "Add postgres servers to hosts if necessary" @@ -48,19 +49,19 @@ - "stage_{{ stage }}" - "{{ item }}" changed_when: False - with_items: "{{ cluster_services }}" - when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy'] + with_items: "{{ cluster_features }}" + when: item in ['connect', 'management_connect', 'keycloak', 'webdav', 'gitea', 'workflow_index', 'workflow_proxy', 'pdns'] ############################################################# -# Setup databases for created inventory +# Restoring databases for created inventory ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "stage_{{ stage }}:!{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" remote_user: root vars: - ansible_ssh_host: "{{ stage_server_domain }}" postgres_backup_state: restore + ansible_ssh_host: "{{ stage_server_domain }}" roles: - role: connect-postgres @@ -82,10 +83,10 @@ when: "'workflow_proxy' in group_names" ############################################################# -# Sending smardigo management message to process +# Sending smardigo management message to process ############################################################# -- hosts: "stage_{{ stage }}" +- hosts: "{{ stage }}-smardigo-management-message" serial: "{{ serial_number | default(1) }}" gather_facts: false connection: local diff --git a/roles/connect/vars/main.yml b/roles/connect/vars/main.yml index 3cd2444..6f574a4 100644 --- a/roles/connect/vars/main.yml +++ b/roles/connect/vars/main.yml @@ -68,6 +68,7 @@ connect_environment: [ "ELASTIC_MESSAGE_INDEX: \"{{ connect_elastic_message_index | default('message') }}\"", "ELASTIC_ANALYSIS_INDEX: \"{{ connect_elastic_analysis_index | default('analysis') }}\"", + "RESUBMISSION_ENABLED: \"{{ connect_resubmission_enabled | default('false') }}\"", "ELEMENT_TEMPLATE_ENABLED: \"{{ connect_element_template_enabled | default('true') }}\"", "CONFIG_DELETE_SCOPE_ENABLED: \"{{ connect_config_delete_scope_enabled | default('true') }}\"", "EXTERNAL_TASK_SCRIPT_WORKER_ENABLED: \"{{ connect_external_task_script_worker_enabled | default('true') }}\"", @@ -85,6 +86,8 @@ connect_environment: [ "SMA_CORS_ALLOWED_HEADERS: \"*\"", "SMA_CORS_PATH_PATTERN: \"/**\"", + "LOG_LEVEL_CAMUNDA: \"{{ connect_loglevel_camunda | default('OFF') }}\"", + "LOG_LEVEL_JASYPT: \"{{ connect_loglevel_jasypt | default('ERROR') }}\"", "LOG_LEVEL_MESSAGE_QUEUE: \"{{ connect_loglevel_message_queue | default('INFO') }}\"", "LOG_LEVEL_DOCUMENT_INDEX: \"{{ connect_loglevel_document_index | default('INFO') }}\"", "LOG_LEVEL_WORKFLOW_INDEX: \"{{ connect_loglevel_workflow_index | default('INFO') }}\"", diff --git a/smardigo/provisioning/datasource-file/connect-features.xlsx b/smardigo/provisioning/datasource-file/connect-features.xlsx index df0f90a..7cacd79 100644 Binary files a/smardigo/provisioning/datasource-file/connect-features.xlsx and b/smardigo/provisioning/datasource-file/connect-features.xlsx differ diff --git a/smardigo/provisioning/datasource-file/connect-versions.xlsx b/smardigo/provisioning/datasource-file/connect-versions.xlsx new file mode 100644 index 0000000..aba9d32 Binary files /dev/null and b/smardigo/provisioning/datasource-file/connect-versions.xlsx differ diff --git a/smardigo/provisioning/datasource/connect-versions.json b/smardigo/provisioning/datasource/connect-versions.json new file mode 100644 index 0000000..e60f521 --- /dev/null +++ b/smardigo/provisioning/datasource/connect-versions.json @@ -0,0 +1 @@ +{"name":"connect-versions","restApi":true,"configKey":"connect-versions","payloadType":"EXCEL","config":[{"name":"file","type":"FILE","value":"connect-versions.xlsx"},{"name":"columnNames","type":"STRING","value":"label,value"},{"name":"sqlStatement","type":"STRING","value":"SELECT * from version"},{"name":"columnNameLineNumber","type":"INT","value":1},{"name":"skipEmptyLines","type":"BOOLEAN","value":false},{"name":"skipEmptyColumns","type":"BOOLEAN","value":false}]} \ No newline at end of file diff --git a/smardigo/provisioning/form/simple-connect.json b/smardigo/provisioning/form/simple-connect.json index c0a3b11..5f2dbd2 100644 --- a/smardigo/provisioning/form/simple-connect.json +++ b/smardigo/provisioning/form/simple-connect.json @@ -3,478 +3,469 @@ "configKey" : "simple-connect", "page" : 0, "components" : [ { - "label" : "HTML", - "labelPosition" : "left-left", - "className" : "", - "attrs" : [ { - "attr" : "", - "value" : "" - } ], - "content" : "