diff --git a/group_vars/aws_node_local.yml b/group_vars/aws_node_local.yml
index 5f5dc16..24d8b21 100644
--- a/group_vars/aws_node_local.yml
+++ b/group_vars/aws_node_local.yml
@@ -100,6 +100,11 @@ atl_db_engine_to_db_type_map:
rds_postgres: "postgres72"
rds_mysql: "mysql57"
atl_db_type: "{{ atl_db_engine_to_db_type_map[atl_db_engine] | default('postgres72') }}"
+atl_db_general_type_map:
+ aurora_postgres: "postgres"
+ rds_postgres: "postgres"
+ rds_mysql: "mysql"
+atl_db_general_type: "{{ atl_db_general_type_map[atl_db_engine] }}"
atl_jdbc_db_name: "{{ lookup('env', 'ATL_JDBC_DB_NAME') }}"
atl_jdbc_user: "{{ lookup('env', 'ATL_JDBC_USER') }}"
@@ -111,11 +116,7 @@ atl_jdbc_template: "{{ lookup('env', 'ATL_JDBC_TEMPLATE') or 'template1' }}"
atl_jdbc_query_params_for_engine:
aurora_postgres: "?targetServerType=master"
rds_mysql: "?useUnicode=true&characterEncoding=UTF8&sessionVariables=default_storage_engine=InnoDB"
-atl_jdbc_engine_map:
- aurora_postgres: "postgres"
- rds_postgres: "postgres"
- rds_mysql: "mysql"
-atl_jdbc_url: "jdbc:{{ atl_jdbc_engine_map[atl_db_engine] }}://{{ atl_db_host }}:{{ atl_db_port }}/{{ atl_jdbc_db_name }}{{ atl_jdbc_query_params_for_engine[atl_db_engine]| default('') }}"
+atl_jdbc_url: "jdbc:{{ atl_db_general_type }}://{{ atl_db_host }}:{{ atl_db_port }}/{{ atl_jdbc_db_name }}{{ atl_jdbc_query_params_for_engine[atl_db_engine]| default('') }}"
atl_jvm_heap: "{{ lookup('env', 'ATL_JVM_HEAP') or '2048m' }}"
atl_jvm_opts: "{{ lookup('env', 'ATL_JVM_OPTS') or '' }}"
diff --git a/roles/database_init/tasks/main.yml b/roles/database_init/tasks/main.yml
index 832d24a..0eee13d 100644
--- a/roles/database_init/tasks/main.yml
+++ b/roles/database_init/tasks/main.yml
@@ -1,4 +1,9 @@
---
+- name: Include database specific configuration
+ include_vars:
+ file:
+
- name: Initialise database
- include_tasks: "{{ atl_jdbc_engine_map[atl_db_engine] }}.yml" # TODO this is done to have same tasks for aurora and postgres
+ include_tasks: "{{ atl_db_general_type }}.yml" # TODO this is done to have same tasks for aurora and postgres
+
\ No newline at end of file
diff --git a/roles/database_init/tasks/mysql.yml b/roles/database_init/tasks/mysql.yml
index 533d3bc..7ebb7ad 100644
--- a/roles/database_init/tasks/mysql.yml
+++ b/roles/database_init/tasks/mysql.yml
@@ -14,13 +14,13 @@
- name: Download and unzip MySQL driver
unarchive:
- src: https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.21.tar.gz
+ src: "{{ mysql_jdbc_connector_url }}"
dest: /tmp
remote_src: yes
- name: Copy the MySQL driver
copy:
- src: /tmp/mysql-connector-java-8.0.21/mysql-connector-java-8.0.21.jar
+ src: "/tmp/{{ mysql_jdbc_connector }}/{{ mysql_jdbc_connector }}.jar"
dest: "{{ atl_product_installation_versioned }}/lib"
- name: Create application DB user
@@ -42,34 +42,16 @@
login_password: "{{ atl_db_root_password }}"
login_port: "{{ atl_db_port }}"
name: "{{ atl_jdbc_db_name }}"
- encoding: "utf8" # TODO "{{ atl_jdbc_encoding }}"
- collation: "utf8_bin" # TODO "{{ atl_jdbc_collation }}"
+ encoding: utf8mb4 # TODO "{{ atl_jdbc_encoding }}"
+ collation: "utf8mb4_bin" # TODO "{{ atl_jdbc_collation }}"
register: db_created
- name: Assert ownership of public schema
command: >
mysql --user={{ atl_db_root_user }} --password={{ atl_db_root_password }} {{ atl_jdbc_db_name }}
--host={{ atl_db_host }} --port={{ atl_db_port }} --batch --skip-column-names
- --execute="GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on {{ atl_jdbc_db_name }}.* TO '{{ atl_jdbc_user }}'@'{{ atl_db_host }}' IDENTIFIED BY '{{ atl_jdbc_password }}'; flush privileges;"
+ --execute="GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX,REFERENCES on {{ atl_jdbc_db_name }}.* TO '{{ atl_jdbc_user }}'@'{{ atl_db_host }}' IDENTIFIED BY '{{ atl_jdbc_password }}'; flush privileges;"
no_log: true
tags:
- new_only
-
-
-
-# - name: Grant privs to root user on public schema
-# postgresql_query:
-# login_host: "{{ atl_db_host }}"
-# login_user: "{{ atl_db_root_user }}"
-# login_password: "{{ atl_db_root_password }}"
-# db: "{{ atl_jdbc_db_name }}"
-# query: "GRANT ALL ON SCHEMA public TO {{ atl_db_root_user }};"
-
-# - name: Grant privs to application user on public schema
-# postgresql_query:
-# login_host: "{{ atl_db_host }}"
-# login_user: "{{ atl_db_root_user }}"
-# login_password: "{{ atl_db_root_password }}"
-# db: "{{ atl_jdbc_db_name }}"
-# query: "GRANT ALL ON SCHEMA public TO {{ atl_jdbc_user }};"
diff --git a/roles/database_init/vars/mysql.yml b/roles/database_init/vars/mysql.yml
new file mode 100644
index 0000000..90132f4
--- /dev/null
+++ b/roles/database_init/vars/mysql.yml
@@ -0,0 +1,10 @@
+---
+
+atl_db_port: '5432'
+atl_db_root_user: 'root'
+atl_jdbc_encoding: 'utf8mb4'
+atl_jdbc_collation: 'utf8mb4_bin'
+atl_jdbc_ctype: 'utf8mb4_bin'
+
+mysql_jdbc_connector: 'mysql-connector-java-8.0.21'
+mysql_jdbc_connector_url: "https://dev.mysql.com/get/Downloads/Connector-J/{{ mysql_jdbc_connector }}.tar.gz"
\ No newline at end of file
diff --git a/roles/database_init/defaults/main.yml b/roles/database_init/vars/postgres.yml
similarity index 100%
rename from roles/database_init/defaults/main.yml
rename to roles/database_init/vars/postgres.yml
diff --git a/roles/jira_config/templates/dbconfig.xml.j2 b/roles/jira_config/templates/dbconfig.xml.j2
index 992a3f6..dd480f5 100644
--- a/roles/jira_config/templates/dbconfig.xml.j2
+++ b/roles/jira_config/templates/dbconfig.xml.j2
@@ -4,7 +4,9 @@
defaultDS
default
{{ atl_db_type }}
+ {% if atl_db_general_type == 'postgres' %}}
public
+ {% endif %}}
{{ atl_jdbc_url }}
{{ atl_jdbc_user }}