diff --git a/README.md b/README.md index a54c64a..51dc0f9 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ## Introduction This repository is a suite of Ansible roles, playbooks and support scripts to -automate the installation and maintenance of Atlassian Data-Center products in +automate the installation and maintenance of Atlassian Data Center products in cloud environments. ## Usage diff --git a/group_vars/aws_node_local.yml b/group_vars/aws_node_local.yml index a69c57c..85b2edd 100644 --- a/group_vars/aws_node_local.yml +++ b/group_vars/aws_node_local.yml @@ -38,11 +38,20 @@ atl_db_host: "{{ lookup('env', 'ATL_DB_HOST') }}" atl_db_port: "{{ lookup('env', 'ATL_DB_PORT') or '5432' }}" atl_db_root_user: "{{ lookup('env', 'ATL_DB_ROOT_USER') or 'postgres' }}" atl_db_root_password: "{{ lookup('env', 'ATL_DB_ROOT_PASSWORD') }}" +atl_db_driver: "{{ lookup('env', 'ATL_DB_DRIVER') or 'org.postgresql.Driver' }}" + atl_db_poolminsize: "{{ lookup('env', 'ATL_DB_POOLMINSIZE') or '20' }}" atl_db_poolmaxsize: "{{ lookup('env', 'ATL_DB_POOLMAXSIZE') or '100' }}" atl_db_minidle: "{{ lookup('env', 'ATL_DB_MINIDLE') or '10' }}" atl_db_maxidle: "{{ lookup('env', 'ATL_DB_MAXIDLE') or '20' }}" -atl_db_driver: "{{ lookup('env', 'ATL_DB_DRIVER') or 'org.postgresql.Driver' }}" + +atl_db_maxwaitmillis: "{{ lookup('env', 'ATL_DB_MAXWAITMILLIS') or '30000' }}" +atl_db_timebetweenevictionrunsmillis: "{{ lookup('env', 'ATL_DB_TIMEBETWEENEVICTIONRUNSMILLIS') or '30000' }}" +atl_db_minevictableidletimemillis: "{{ lookup('env', 'ATL_DB_MINEVICTABLEIDLETIMEMILLIS') or '5000' }}" +atl_db_removeabandoned: "{{ lookup('env', 'ATL_DB_REMOVEABANDONED') or 'true' }}" +atl_db_removeabandonedtimeout: "{{ lookup('env', 'ATL_DB_REMOVEABANDONEDTIMEOUT') or '300' }}" +atl_db_testwhileidle: "{{ lookup('env', 'ATL_DB_TESTWHILEIDLE') or 'true'}}" +atl_db_testonborrow: "{{ lookup('env', 'ATL_DB_TESTONBORROW') or 'false' }}" atl_jdbc_db_name: "{{ lookup('env', 'ATL_JDBC_DB_NAME') }}" atl_jdbc_user: "{{ lookup('env', 'ATL_JDBC_USER') }}" diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..9572a3d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +ansible==2.7.10 +molecule==2.20.1 +docker==4.0.1 \ No newline at end of file diff --git a/roles/jira_config/defaults/main.yml b/roles/jira_config/defaults/main.yml index 20b8473..0a90817 100644 --- a/roles/jira_config/defaults/main.yml +++ b/roles/jira_config/defaults/main.yml @@ -21,3 +21,16 @@ atl_tomcat_protocol: "HTTP/1.1" atl_tomcat_redirectport: "" atl_tomcat_scheme: "http" atl_tomcat_secure: "false" + +atl_db_poolminsize: '20' +atl_db_poolmaxsize: '100' +atl_db_minidle: '10' +atl_db_maxidle: '20' + +atl_db_maxwaitmillis: '30000' +atl_db_timebetweenevictionrunsmillis: '30000' +atl_db_minevictableidletimemillis: '5000' +atl_db_removeabandoned: 'true' +atl_db_removeabandonedtimeout: '300' +atl_db_testwhileidle: 'true' +atl_db_testonborrow: 'false' diff --git a/roles/jira_config/molecule/default/playbook.yml b/roles/jira_config/molecule/default/playbook.yml index 51783ff..be14065 100644 --- a/roles/jira_config/molecule/default/playbook.yml +++ b/roles/jira_config/molecule/default/playbook.yml @@ -6,9 +6,23 @@ atl_product_edition: "jira-software" atl_product_user: "jira" atl_product_version: "7.13.2" + + # dbconfig.xml variables atl_jdbc_user: 'atljira' + atl_jdbc_password: 'molecule_password' atl_jvm_heap: 'PLACEHOLDER' atl_cluster_node_id: 'FAKEID' + atl_db_poolminsize: 1111 + atl_db_poolmaxsize: 1111 + atl_db_minidle: 1111 + atl_db_maxidle: 1111 + atl_db_maxwaitmillis: 1111 + atl_db_minevictableidletimemillis: 1111 + atl_db_timebetweenevictionrunsmillis: 1111 + atl_db_removeabandoned: 'false' + atl_db_removeabandonedtimeout: 1111 + atl_db_testwhileidle: 'false' + atl_db_testonborrow: 'true' roles: - role: linux_common diff --git a/roles/jira_config/molecule/default/tests/test_default.py b/roles/jira_config/molecule/default/tests/test_default.py index 2be5dfb..d34ecde 100644 --- a/roles/jira_config/molecule/default/tests/test_default.py +++ b/roles/jira_config/molecule/default/tests/test_default.py @@ -12,22 +12,23 @@ def test_dbconfig_file(host): assert f.user == 'jira' assert f.contains("org.postgresql.Driver") assert f.contains("atljira") - assert f.contains("20") + assert f.contains("molecule_password") -def test_setenv_file(host): - f = host.file('/opt/atlassian/jira-software/current/bin/setenv.sh') - assert f.exists - assert f.contains('^JVM_MINIMUM_MEMORY="PLACEHOLDER"') - assert f.contains('^JVM_MAXIMUM_MEMORY="PLACEHOLDER"') - assert f.contains('^JIRA_HOME="/var/atlassian/application-data/jira"') - assert f.contains('^export CATALINA_OPTS="') + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("false") + assert f.contains("1111") + assert f.contains("1111") + assert f.contains("false") + assert f.contains("1111") + assert f.contains("false") + assert f.contains("true") -def test_cluster_file(host): - f = host.file('/var/atlassian/application-data/jira/cluster.properties') - assert f.exists - assert f.contains('jira.node.id = FAKEID') - assert f.contains('jira.shared.home = /media/atl/jira/shared') def test_server_file(host): f = host.file('/opt/atlassian/jira-software/current/conf/server.xml') @@ -47,6 +48,7 @@ def test_server_file(host): assert not f.contains('proxyName=') assert not f.contains('proxyPort=') + def test_install_permissions(host): assert host.file('/opt/atlassian/jira-software/current/conf/server.xml').user == 'root' assert host.file('/opt/atlassian/jira-software/current/atlassian-jira/WEB-INF/web.xml').user == 'root' diff --git a/roles/jira_config/templates/dbconfig.xml.j2 b/roles/jira_config/templates/dbconfig.xml.j2 index 9e83a9a..18c9ed7 100644 --- a/roles/jira_config/templates/dbconfig.xml.j2 +++ b/roles/jira_config/templates/dbconfig.xml.j2 @@ -16,13 +16,13 @@ {{ atl_db_minidle }} {{ atl_db_maxidle }} - 30000 + {{ atl_db_maxwaitmillis }} select 1 - 30000 - 5000 - true - 300 - true - false + {{ atl_db_timebetweenevictionrunsmillis }} + {{ atl_db_minevictableidletimemillis }} + {{ atl_db_removeabandoned }} + {{ atl_db_removeabandonedtimeout }} + {{ atl_db_testwhileidle }} + {{ atl_db_testonborrow }}