From 85a2a669df5cac8e45193af2a1d73893bc8ddba1 Mon Sep 17 00:00:00 2001 From: Helmut Wolf Date: Mon, 22 May 2023 11:20:58 +0200 Subject: [PATCH 1/4] Infinespan: Add `sqlserver` JDBC support --- roles/infinispan/README.md | 2 +- roles/infinispan/vars/main.yml | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/roles/infinispan/README.md b/roles/infinispan/README.md index d871aa6..2c76563 100644 --- a/roles/infinispan/README.md +++ b/roles/infinispan/README.md @@ -86,7 +86,7 @@ The following are _required_ when `infinispan_jgroups_jdbcping` is enabled: | Variable | Description | Default | |:---------|:------------|:--------| -|`infinispan_jdbc_engine`| backend database engine (values: `['mariadb','postgres']`) | `mariadb` | +| `infinispan_jdbc_engine` | backend database engine (values: `['mariadb','postgres','sqlserver']`) | `mariadb` | |`infinispan_jdbc_driver_version`| driver version to download | `2.7.4` | |`infinispan_jdbc_url`| URL for jdbc connection | `jdbc:mariadb://localhost:3306/keycloak` | |`infinispan_jdbc_user`| username for jdbc connection | `keycloak-user` | diff --git a/roles/infinispan/vars/main.yml b/roles/infinispan/vars/main.yml index 7d67903..11e2040 100644 --- a/roles/infinispan/vars/main.yml +++ b/roles/infinispan/vars/main.yml @@ -85,6 +85,25 @@ infinispan_jgroups_jdbc: updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ping_data BYTEA, constraint PK_JGROUPSPING PRIMARY KEY (own_addr, cluster_name)) + sqlserver: + enabled: "{{ infinispan_jgroups_jdbcping and infinispan_jdbc_engine == 'sqlserver' }}" + driver_class: com.microsoft.sqlserver.jdbc.SQLServerDriver + driver_version: "{{ infinispan_jdbc_driver_version | default('9.2.0') }}" + driver_jar_filename: "mssql-java-client-{{ infinispan_jdbc_driver_version }}.jar" + driver_jar_url: "https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/{{ infinispan_jdbc_driver_version }}.jre11/mssql-jdbc-{{ infinispan_jdbc_driver_version }}.jre11.jar" # e.g., https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/12.2.0.jre11/mssql-jdbc-12.2.0.jre11.jar + connection_url: "{{ infinispan_jdbc_url | default('jdbc:postgresql://localhost:5432/keycloak') }}" + db_user: "{{ infinispan_jdbc_user }}" + db_password: "{{ infinispan_jdbc_pass }}" + initialize_sql: > + IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[JGROUPSPING]') AND type in (N'U')) + BEGIN + CREATE TABLE JGROUPSPING ( + own_addr varchar(200) NOT NULL, + cluster_name varchar(200) NOT NULL, + updated DATETIME2 DEFAULT SYSUTCDATETIME(), + ping_data varbinary(5000) DEFAULT NULL, + PRIMARY KEY (own_addr, cluster_name)) + END infinispan_keycloak_cache: enabled: "{{ infinispan_keycloak_caches }}" From a3ad39e26c7e048856ef8dc800a58b1fb9dedee3 Mon Sep 17 00:00:00 2001 From: Helmut Wolf Date: Mon, 22 May 2023 11:22:21 +0200 Subject: [PATCH 2/4] Infinspan: Various `become: yes` fixes --- roles/infinispan/tasks/jdg_user.yml | 4 +++- roles/infinispan/tasks/main.yml | 6 ++++++ roles/infinispan/tasks/restart.yml | 4 +++- roles/infinispan/tasks/start.yml | 2 ++ 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/roles/infinispan/tasks/jdg_user.yml b/roles/infinispan/tasks/jdg_user.yml index 964c49c..bd1a1a5 100644 --- a/roles/infinispan/tasks/jdg_user.yml +++ b/roles/infinispan/tasks/jdg_user.yml @@ -15,6 +15,7 @@ mode: 0644 notify: - restart infinispan + become: yes - name: "Ensure {{ infinispan.config.groups }} exists" ansible.builtin.template: @@ -24,4 +25,5 @@ group: "{{ infinispan.group.name }}" mode: 0644 notify: - - restart infinispan \ No newline at end of file + - restart infinispan + become: yes diff --git a/roles/infinispan/tasks/main.yml b/roles/infinispan/tasks/main.yml index 1cd4afb..45861c4 100644 --- a/roles/infinispan/tasks/main.yml +++ b/roles/infinispan/tasks/main.yml @@ -67,6 +67,7 @@ jdg_rpm_java_home: "{{ rpm_java_home.stdout }}" notify: - restart infinispan + become: yes - name: "Get xsd schema versions" ansible.builtin.find: @@ -74,6 +75,7 @@ use_regex: yes patterns: ['^.*-server-[0-9.]*[.]xsd$'] register: server_schema + become: yes - name: "Set fetched schema version for template" ansible.builtin.set_fact: @@ -89,6 +91,7 @@ backup: yes notify: - restart infinispan + become: yes - name: "Ensure {{ infinispan.service.name }} log4j2 configuration is deployed" ansible.builtin.template: @@ -100,6 +103,7 @@ backup: yes notify: - restart infinispan + become: yes - name: Download database driver jar to target ansible.builtin.get_url: @@ -110,6 +114,7 @@ mode: 0644 when: - infinispan_jgroups_jdbcping + become: yes - name: Include users tasks ansible.builtin.include_tasks: jdg_user.yml @@ -132,3 +137,4 @@ state: link src: "{{ infinispan.home }}/server/log" dest: "/var/log/infinispan{{ '-' + infinispan_nodename if infinispan_nodename != inventory_hostname else '' }}" + become: yes diff --git a/roles/infinispan/tasks/restart.yml b/roles/infinispan/tasks/restart.yml index 1ae8955..77de7a7 100644 --- a/roles/infinispan/tasks/restart.yml +++ b/roles/infinispan/tasks/restart.yml @@ -5,10 +5,12 @@ - name: "Restart service" ansible.builtin.systemd: name: "{{ infinispan.service.unit_file }}" - state: restarted + state: restarted + become: yes - name: "Wait for used port to be open" ansible.builtin.wait_for: port: "{{ infinispan.port }}" delay: 0 when: - infinispan_healthcheck + become: yes diff --git a/roles/infinispan/tasks/start.yml b/roles/infinispan/tasks/start.yml index 5b0a6da..a593a61 100644 --- a/roles/infinispan/tasks/start.yml +++ b/roles/infinispan/tasks/start.yml @@ -6,9 +6,11 @@ name: "{{ infinispan.service.unit_file }}" state: started enabled: yes + become: yes - name: "Wait for used port to be open" ansible.builtin.wait_for: port: "{{ infinispan.port }}" delay: 0 when: - infinispan_healthcheck + become: yes From 591d349685e3cfc299f9f0ebf3a8e349fc8cf0e9 Mon Sep 17 00:00:00 2001 From: Helmut Wolf Date: Mon, 22 May 2023 11:22:49 +0200 Subject: [PATCH 3/4] JDG: Minor fix for alternate download location --- roles/infinispan/tasks/install.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/roles/infinispan/tasks/install.yml b/roles/infinispan/tasks/install.yml index a45af46..2f257f1 100644 --- a/roles/infinispan/tasks/install.yml +++ b/roles/infinispan/tasks/install.yml @@ -4,12 +4,14 @@ name: "{{ infinispan.group.name }}" state: present gid: "{{ infinispan.group.id | default(omit) }}" + become: yes - name: "Create user {{ infinispan.user.name }}" ansible.builtin.user: name: "{{ infinispan.user.name }}" state: present uid: "{{ infinispan.user.id | default(omit) }}" + become: yes - name: "Create download directory" ansible.builtin.file: @@ -18,6 +20,7 @@ owner: "{{ infinispan.user.name }}" group: "{{ infinispan.group.name }}" mode: 0750 + become: yes ## check remote archive - name: Set download archive path @@ -28,6 +31,7 @@ ansible.builtin.stat: path: "{{ archive }}" register: archive_path + become: yes - name: Check local download archive path ansible.builtin.stat: @@ -77,7 +81,7 @@ delegate_to: localhost run_once: yes - - name: Download AMQ Broker + - name: Download Data Grid middleware_automation.common.product_download: client_id: "{{ rhn_username }}" client_secret: "{{ rhn_password }}" @@ -94,6 +98,7 @@ mode: 0644 delegate_to: localhost when: + - jdg_download_url is defined and jdg_download_url | length > 0 - archive_path is defined - archive_path.stat is defined - not archive_path.stat.exists @@ -128,10 +133,10 @@ register: path_to_workdir become: yes -- name: "Create target directory {{ infinispan.installation_path | dirname | dirname }}" +- name: "Create target directory {{ infinispan.installation_path | dirname }}" ansible.builtin.file: state: directory - path: "{{ infinispan.installation_path | dirname | dirname }}" + path: "{{ infinispan.installation_path | dirname }}" owner: "{{ infinispan.user.name }}" group: "{{ infinispan.group.name }}" mode: 0750 From 280e0c962aaab70256aed16255ede5dd3975c0d5 Mon Sep 17 00:00:00 2001 From: Helmut Wolf Date: Mon, 22 May 2023 11:23:58 +0200 Subject: [PATCH 4/4] Infinispan: Config: remove obsolete line which causes service start failure --- roles/infinispan/templates/infinispan.xml.j2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/infinispan/templates/infinispan.xml.j2 b/roles/infinispan/templates/infinispan.xml.j2 index 9fc332d..d1b6637 100644 --- a/roles/infinispan/templates/infinispan.xml.j2 +++ b/roles/infinispan/templates/infinispan.xml.j2 @@ -161,7 +161,7 @@ /> -{% endif %} +{% endif %}