mirror of
https://bitbucket.org/atlassian/dc-deployments-automation.git
synced 2025-12-17 02:13:06 -06:00
AZURE-211 SQL Server support for Azure Quick Start
This commit is contained in:
@@ -1,12 +1,12 @@
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
line-length: disable
|
||||
braces:
|
||||
max-spaces-inside: 1
|
||||
level: error
|
||||
brackets:
|
||||
max-spaces-inside: 1
|
||||
level: error
|
||||
line-length: disable
|
||||
truthy: disable
|
||||
trailing-spaces: false
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
|
||||
app_insights_version: "{{ lookup('env', 'APPINSIGHTS_VER') or '2.3.1' }}"
|
||||
app_insights_version: "{{ lookup('env', 'APPINSIGHTS_VER') or '2.6.0' }}"
|
||||
app_insights_instrumentation_key: "{{ lookup('env', 'APPINSIGHTS_INSTRUMENTATION_KEY') or 'XXX' }}"
|
||||
app_insights_jaxb_version: 2.3.1
|
||||
|
||||
@@ -20,19 +20,19 @@ def test_jaxb_installed(host):
|
||||
f = host.file('/usr/share/collectd/java/jaxb-api-2.3.1.jar')
|
||||
assert f.exists
|
||||
|
||||
# @pytest.mark.parametrize('filename', [
|
||||
# '/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-core-2.3.1.jar',
|
||||
# '/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-web-2.3.1.jar',
|
||||
# '/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-collectd-2.3.1.jar'
|
||||
# ])
|
||||
# def test_app_insight_jars_downloaded(host, filename):
|
||||
# f = host.file(filename)
|
||||
# assert f.exists
|
||||
|
||||
def test_app_insights_collectd_file(host):
|
||||
f = host.file('/usr/share/collectd/java/applicationinsights-collectd-2.3.1.jar')
|
||||
@pytest.mark.parametrize('filename', [
|
||||
'/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-core-2.6.0.jar',
|
||||
'/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-web-2.6.0.jar',
|
||||
'/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/lib/applicationinsights-agent-2.6.0.jar'
|
||||
])
|
||||
def test_app_insight_jars_downloaded(host, filename):
|
||||
f = host.file(filename)
|
||||
assert f.exists
|
||||
|
||||
# def test_applicationinsights_xml_installed(host):
|
||||
# f = host.file('/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/classes/ApplicationInsights.xml')
|
||||
# assert f.exists
|
||||
def test_app_insights_collectd_file(host):
|
||||
f = host.file('/usr/share/collectd/java/applicationinsights-collectd-2.6.0.jar')
|
||||
assert f.exists
|
||||
|
||||
def test_applicationinsights_xml_installed(host):
|
||||
f = host.file('/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/classes/ApplicationInsights.xml')
|
||||
assert f.exists
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
name:
|
||||
- collectd
|
||||
|
||||
- name: Download Collectd App Insights jar
|
||||
get_url:
|
||||
url: "https://github.com/Microsoft/ApplicationInsights-Java/releases/download/{{ app_insights_version }}/{{ item }}"
|
||||
dest: "/usr/share/collectd/java/applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
with_items:
|
||||
- "applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
|
||||
- name: Configure Collectd
|
||||
template: src=collectd.conf.j2 dest=/etc/collectd/collectd.conf
|
||||
notify:
|
||||
@@ -20,27 +27,45 @@
|
||||
url: "https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api/{{ app_insights_jaxb_version }}/jaxb-api-{{ app_insights_jaxb_version }}.jar"
|
||||
dest: "/usr/share/collectd/java/"
|
||||
|
||||
# - name: Download App Insights jars
|
||||
# get_url:
|
||||
# url: "https://github.com/Microsoft/ApplicationInsights-Java/releases/download/{{ app_insights_version }}/{{ item }}"
|
||||
# dest: "{{ atl_product_installation_versioned }}/crowd-webapp/WEB-INF/lib/"
|
||||
# with_items:
|
||||
# - "applicationinsights-core-{{ app_insights_version }}.jar"
|
||||
# - "applicationinsights-web-{{ app_insights_version }}.jar"
|
||||
# - "applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
#
|
||||
# - name: Copy applicationinsights-collectd to collectd
|
||||
# copy:
|
||||
# src: "{{ atl_product_installation_versioned }}/crowd-webapp/WEB-INF/lib/applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
# dest: "/usr/share/collectd/java/applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
# remote_src: true
|
||||
#
|
||||
# - name: Add ApplicationInsights.xml configuration
|
||||
# template: src=ApplicationInsights.xml.j2 dest={{ atl_product_installation_versioned }}/crowd-webapp/WEB-INF/classes/ApplicationInsights.xml
|
||||
|
||||
- name: Download applicationinsights-collectd to collectd
|
||||
- name: Download App Insights jars
|
||||
get_url:
|
||||
url: "https://github.com/Microsoft/ApplicationInsights-Java/releases/download/{{ app_insights_version }}/{{ item }}"
|
||||
dest: "/usr/share/collectd/java/applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
dest: "{{ atl_product_installation_versioned }}/crowd-webapp/WEB-INF/lib/"
|
||||
with_items:
|
||||
- "applicationinsights-collectd-{{ app_insights_version }}.jar"
|
||||
- "applicationinsights-core-{{ app_insights_version }}.jar"
|
||||
- "applicationinsights-web-{{ app_insights_version }}.jar"
|
||||
- "applicationinsights-agent-{{ app_insights_version }}.jar"
|
||||
|
||||
- name: Add java agent to JAVA_OPTS
|
||||
lineinfile:
|
||||
path: "{{ atl_product_installation_versioned }}/apache-tomcat/bin/setenv.sh"
|
||||
regexp: '^export JAVA_OPTS'
|
||||
line: "export JAVA_OPTS=\"$JAVA_OPTS -javaagent:{{ atl_product_installation_versioned }}\
|
||||
/crowd-webapp/WEB-INF/lib/applicationinsights-agent-{{ app_insights_version }}.jar\""
|
||||
|
||||
- name: Add ApplicationInsights.xml configuration
|
||||
template: src=ApplicationInsights.xml.j2 dest={{ atl_product_installation_versioned }}/crowd-webapp/WEB-INF/classes/ApplicationInsights.xml
|
||||
|
||||
- name: Check for existing App Insights Filter
|
||||
xml:
|
||||
path: "/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/web.xml"
|
||||
xpath: //*[.="ApplicationInsightsWebFilter"]
|
||||
count: yes
|
||||
register: appInsightsFilter
|
||||
|
||||
- name: Add App Insights Filter
|
||||
xml:
|
||||
path: "/opt/atlassian/crowd/current/crowd-webapp/WEB-INF/web.xml"
|
||||
xpath: /*[name()='web-app']
|
||||
input_type: xml
|
||||
pretty_print: yes
|
||||
add_children:
|
||||
- "<filter>\
|
||||
<filter-name>ApplicationInsightsWebFilter</filter-name>\
|
||||
<filter-class>com.microsoft.applicationinsights.web.internal.WebRequestTrackingFilter</filter-class>\
|
||||
</filter>"
|
||||
- "<filter-mapping>\
|
||||
<filter-name>ApplicationInsightsWebFilter</filter-name>\
|
||||
<url-pattern>/*</url-pattern>\
|
||||
</filter-mapping>"
|
||||
when: appInsightsFilter.count < 1
|
||||
|
||||
@@ -92,672 +92,6 @@ LoadPlugin java
|
||||
InstrumentationKey "{{ app_insights_instrumentation_key }}"
|
||||
SDKLogger true
|
||||
</Plugin>
|
||||
|
||||
LoadPlugin "org.collectd.java.GenericJMX"
|
||||
<Plugin "GenericJMX">
|
||||
|
||||
# Confluence indexing statistics
|
||||
<MBean "confluence/IndexingStatistics">
|
||||
ObjectName "Confluence:name=IndexingStatistics"
|
||||
InstancePrefix "confluence-IndexingStatistics"
|
||||
|
||||
<Value>
|
||||
InstancePrefix "last_elapsed_ms"
|
||||
Type "total_time_in_ms"
|
||||
Table false
|
||||
Attribute "LastElapsedMilliseconds"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
InstancePrefix "task_queue_length"
|
||||
Type "queue_length"
|
||||
Table false
|
||||
Attribute "TaskQueueLength"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "confluence/MailTaskQueue">
|
||||
ObjectName "Confluence:name=MailTaskQueue"
|
||||
InstancePrefix "confluence-MailTaskQueue"
|
||||
|
||||
<Value>
|
||||
Type "email_count"
|
||||
InstancePrefix "retry_count"
|
||||
Table false
|
||||
Attribute "RetryCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "email_count"
|
||||
InstancePrefix "tasks"
|
||||
Table false
|
||||
Attribute "TasksSize"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "email_count"
|
||||
InstancePrefix "error_queue"
|
||||
Table false
|
||||
Attribute "ErrorQueueSize"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "confluence/RequestMetrics">
|
||||
ObjectName "Confluence:name=RequestMetrics"
|
||||
InstancePrefix "confluence-RequestMetrics"
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "avg_exec_time_for_last_ten_requests"
|
||||
Table false
|
||||
Attribute "AverageExecutionTimeForLastTenRequests"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "current_num_requests_being_served"
|
||||
Table false
|
||||
Attribute "CurrentNumberOfRequestsBeingServed"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "error_count"
|
||||
Table false
|
||||
Attribute "ErrorCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "num_requests_in_last_ten_secs"
|
||||
Table false
|
||||
Attribute "NumberOfRequestsInLastTenSeconds"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "requests_began"
|
||||
Table false
|
||||
Attribute "RequestsBegan"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "requests"
|
||||
InstancePrefix "requests_served"
|
||||
Table false
|
||||
Attribute "RequestsServed"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "confluence/SystemInformation">
|
||||
ObjectName "Confluence:name=SystemInformation"
|
||||
InstancePrefix "confluence-SystemInformation"
|
||||
|
||||
<Value>
|
||||
Type "latency"
|
||||
InstancePrefix "database_example_latency"
|
||||
Table false
|
||||
Attribute "DatabaseExampleLatency"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "response_time"
|
||||
InstancePrefix "start_time"
|
||||
Table false
|
||||
Attribute "StartTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
# Hazelcast statistic JMX configuration
|
||||
<MBean "com.hazelcast/HazelcastInstance.OperationService.hazelcast.operationServicehazelcast">
|
||||
ObjectName "com.hazelcast:instance=confluence,name=operationServiceconfluence,type=HazelcastInstance.OperationService"
|
||||
InstancePrefix "confluence-Hazelcast-OperationService"
|
||||
|
||||
<Value>
|
||||
Type "derive"
|
||||
InstancePrefix "executedOperationCount"
|
||||
Attribute "executedOperationCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "operationThreadCount"
|
||||
Attribute "operationThreadCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "remoteOperationCount"
|
||||
Attribute "remoteOperationCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "responseQueueSize"
|
||||
Attribute "responseQueueSize"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "runningOperationsCount"
|
||||
|
||||
Attribute "runningOperationsCount"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "com.hazelcast/HazelcastInstance.EventService.hazelcast.hazelcast">
|
||||
ObjectName "com.hazelcast:instance=confluence,name=confluence,type=HazelcastInstance.EventService"
|
||||
InstancePrefix "confluence-Hazelcast-EventService"
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "eventThreadCount"
|
||||
Attribute "eventThreadCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "eventQueueCapacity"
|
||||
Attribute "eventQueueCapacity"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "eventQueueSize"
|
||||
Attribute "eventQueueSize"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "com.atlassian.confluence/HibernateStatistics">
|
||||
ObjectName "Confluence:name=HibernateStatistics"
|
||||
InstancePrefix "confluence-HibernateStatistics"
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CloseStatementCount"
|
||||
Attribute "CloseStatementCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CollectionFetchCount"
|
||||
Attribute "CollectionFetchCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CollectionLoadCount"
|
||||
Attribute "CollectionLoadCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CollectionRecreateCount"
|
||||
Attribute "CollectionRecreateCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CollectionRemoveCount"
|
||||
Attribute "CollectionRemoveCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "CollectionUpdateCount"
|
||||
Attribute "CollectionUpdateCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "ConnectCount"
|
||||
Attribute "ConnectCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "EntityDeleteCount"
|
||||
Attribute "EntityDeleteCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "EntityFetchCount"
|
||||
Attribute "EntityFetchCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "EntityInsertCount"
|
||||
Attribute "EntityInsertCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "EntityLoadCount"
|
||||
Attribute "EntityLoadCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#EntityUpdateCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "EntityUpdateCount"
|
||||
Attribute "EntityUpdateCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#FlushCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "FlushCount"
|
||||
Attribute "FlushCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#NaturalIdCacheHitCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "NaturalIdCacheHitCount"
|
||||
Attribute "NaturalIdCacheHitCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#NaturalIdCacheMissCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "NaturalIdCacheMissCount"
|
||||
Attribute "NaturalIdCacheMissCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#NaturalIdCachePutCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "NaturalIdCachePutCount"
|
||||
Attribute "NaturalIdCachePutCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#NaturalIdQueryExecutionCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "NaturalIdQueryExecutionCount"
|
||||
Attribute "NaturalIdQueryExecutionCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#NaturalIdQueryExecutionMaxTime
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "NaturalIdQueryExecutionMaxTime"
|
||||
Attribute "NaturalIdQueryExecutionMaxTime"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#OptimisticFailureCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "OptimisticFailureCount"
|
||||
Attribute "OptimisticFailureCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#PrepareStatementCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "PrepareStatementCount"
|
||||
Attribute "PrepareStatementCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#QueryCacheHitCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "QueryCacheHitCount"
|
||||
Attribute "QueryCacheHitCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#QueryCacheMissCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "QueryCacheMissCount"
|
||||
Attribute "QueryCacheMissCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#QueryCachePutCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "QueryCachePutCount"
|
||||
Attribute "QueryCachePutCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#QueryExecutionCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "QueryExecutionCount"
|
||||
Attribute "QueryExecutionCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#QueryExecutionMaxTime
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "QueryExecutionMaxTime"
|
||||
Attribute "QueryExecutionMaxTime"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#SecondLevelCacheHitCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "SecondLevelCacheHitCount"
|
||||
Attribute "SecondLevelCacheHitCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#SecondLevelCacheMissCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "SecondLevelCacheMissCount"
|
||||
Attribute "SecondLevelCacheMissCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#SecondLevelCachePutCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "SecondLevelCachePutCount"
|
||||
Attribute "SecondLevelCachePutCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#SessionCloseCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "SessionCloseCount"
|
||||
Attribute "SessionCloseCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#TransactionCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "TransactionCount"
|
||||
Attribute "TransactionCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#UpdateTimestampsCacheHitCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "UpdateTimestampsCacheHitCount"
|
||||
Attribute "UpdateTimestampsCacheHitCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#UpdateTimestampsCacheMissCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "UpdateTimestampsCacheMissCount"
|
||||
Attribute "UpdateTimestampsCacheMissCount"
|
||||
</Value>
|
||||
|
||||
# fqname = org.hibernate.core/#UpdateTimestampsCachePutCount
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "UpdateTimestampsCachePutCount"
|
||||
Attribute "UpdateTimestampsCachePutCount"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
# C3P0 Connection pool JMX Configuration
|
||||
<MBean "com.mchange.v2.c3p0/PooledDataSource">
|
||||
ObjectName "com.mchange.v2.c3p0:type=PooledDataSource,*"
|
||||
InstancePrefix "confluence-c3p0-PooledDataSource"
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "numBusyConnections"
|
||||
Attribute "numBusyConnections"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "numIdleConnections"
|
||||
Attribute "numIdleConnections"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "threadPoolNumIdleThreads"
|
||||
Attribute "threadPoolNumIdleThreads"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "numConnections"
|
||||
Attribute "numConnections"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
# Apache Tomcat JMX configuration
|
||||
<MBean "catalina/global_request_processor">
|
||||
ObjectName "*:type=GlobalRequestProcessor,*"
|
||||
InstancePrefix "catalina_request_processor-"
|
||||
InstanceFrom "name"
|
||||
|
||||
<Value>
|
||||
Type "io_octets"
|
||||
InstancePrefix "global"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "bytesReceived"
|
||||
Attribute "bytesSent"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "total_requests"
|
||||
InstancePrefix "global"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "requestCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "total_time_in_ms"
|
||||
InstancePrefix "global-processing"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "processingTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "catalina/detailed_request_processor">
|
||||
ObjectName "*:type=RequestProcessor,*"
|
||||
InstancePrefix "catalina_request_processor-"
|
||||
InstanceFrom "worker"
|
||||
|
||||
<Value>
|
||||
Type "io_octets"
|
||||
#InstancePrefix ""
|
||||
InstanceFrom "name"
|
||||
Table false
|
||||
Attribute "bytesReceived"
|
||||
Attribute "bytesSent"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "total_requests"
|
||||
#InstancePrefix ""
|
||||
InstanceFrom "name"
|
||||
Table false
|
||||
Attribute "requestCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "total_time_in_ms"
|
||||
InstancePrefix "processing-"
|
||||
InstanceFrom "name"
|
||||
Table false
|
||||
Attribute "processingTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "catalina/thread_pool">
|
||||
ObjectName "*:type=ThreadPool,*"
|
||||
InstancePrefix "request_processor-"
|
||||
InstanceFrom "name"
|
||||
|
||||
<Value>
|
||||
Type "threads"
|
||||
InstancePrefix "total"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "currentThreadCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "threads"
|
||||
InstancePrefix "running"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "currentThreadsBusy"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
# General JVM configuration
|
||||
<MBean "memory">
|
||||
ObjectName "java.lang:type=Memory,*"
|
||||
InstancePrefix "java_memory"
|
||||
#InstanceFrom "name"
|
||||
|
||||
<Value>
|
||||
Type "memory"
|
||||
InstancePrefix "heap-"
|
||||
#InstanceFrom ""
|
||||
Table true
|
||||
Attribute "HeapMemoryUsage"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "memory"
|
||||
InstancePrefix "nonheap-"
|
||||
#InstanceFrom ""
|
||||
Table true
|
||||
Attribute "NonHeapMemoryUsage"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "memory_pool">
|
||||
ObjectName "java.lang:type=MemoryPool,*"
|
||||
InstancePrefix "java_memory_pool-"
|
||||
InstanceFrom "name"
|
||||
|
||||
<Value>
|
||||
Type "memory"
|
||||
#InstancePrefix ""
|
||||
#InstanceFrom ""
|
||||
Table true
|
||||
Attribute "Usage"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "classes">
|
||||
ObjectName "java.lang:type=ClassLoading"
|
||||
InstancePrefix "java"
|
||||
#InstanceFrom ""
|
||||
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "loaded_classes"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "LoadedClassCount"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "compilation">
|
||||
ObjectName "java.lang:type=Compilation"
|
||||
InstancePrefix "java"
|
||||
#InstanceFrom ""
|
||||
|
||||
<Value>
|
||||
Type "total_time_in_ms"
|
||||
InstancePrefix "compilation_time"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "TotalCompilationTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "garbage_collector">
|
||||
ObjectName "java.lang:type=GarbageCollector,*"
|
||||
InstancePrefix "java_gc-"
|
||||
InstanceFrom "name"
|
||||
|
||||
<Value>
|
||||
Type "invocations"
|
||||
#InstancePrefix ""
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "CollectionCount"
|
||||
</Value>
|
||||
|
||||
<Value>
|
||||
Type "total_time_in_ms"
|
||||
InstancePrefix "collection_time"
|
||||
#InstanceFrom ""
|
||||
Table false
|
||||
Attribute "CollectionTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<MBean "jvm_localhost_os">
|
||||
ObjectName "java.lang:type=OperatingSystem"
|
||||
|
||||
# Open file descriptors
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "os-open_fd_count"
|
||||
Table false
|
||||
Attribute "OpenFileDescriptorCount"
|
||||
</Value>
|
||||
|
||||
# Max. allowed handles for user under which the JavaVM is running
|
||||
<Value>
|
||||
Type "gauge"
|
||||
InstancePrefix "os-max_fd_count"
|
||||
Table false
|
||||
Attribute "MaxFileDescriptorCount"
|
||||
</Value>
|
||||
|
||||
# Process time used by the JavaVM
|
||||
<Value>
|
||||
Type "counter"
|
||||
InstancePrefix "os-process_cpu_time"
|
||||
Table false
|
||||
Attribute "ProcessCpuTime"
|
||||
</Value>
|
||||
</MBean>
|
||||
|
||||
<Connection>
|
||||
#Host "localhost"
|
||||
ServiceURL "service:jmx:rmi:///jndi/rmi://localhost:9999/jmxrmi"
|
||||
User "monitorRole"
|
||||
|
||||
# Confluence
|
||||
Collect "confluence/IndexingStatistics"
|
||||
Collect "confluence/MailTaskQueue"
|
||||
Collect "confluence/RequestMetrics"
|
||||
Collect "confluence/SystemInformation"
|
||||
|
||||
# Hazelcast
|
||||
Collect "com.hazelcast/HazelcastInstance.OperationService.hazelcast.operationServicehazelcast"
|
||||
Collect "com.hazelcast/HazelcastInstance.EventService.hazelcast.hazelcast"
|
||||
|
||||
# Hibernate
|
||||
Collect "com.atlassian.confluence/HibernateStatistics"
|
||||
|
||||
# C3P0
|
||||
Collect "com.mchange.v2.c3p0/PooledDataSource"
|
||||
|
||||
# Tomcat
|
||||
Collect "catalina/global_request_processor"
|
||||
Collect "catalina/detailed_request_processor"
|
||||
Collect "catalina/thread_pool"
|
||||
|
||||
# JVM
|
||||
Collect "memory"
|
||||
Collect "memory_pool"
|
||||
Collect "classes"
|
||||
Collect "compilation"
|
||||
Collect "garbage_collector"
|
||||
Collect "jvm_localhost_os"
|
||||
</Connection>
|
||||
</Plugin>
|
||||
|
||||
</Plugin>
|
||||
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
---
|
||||
# Values taken from https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-to-an-azure-sql-database
|
||||
# Windows values are milliseconds, Linux values are seconds
|
||||
sysctl_config:
|
||||
net.ipv4.tcp_keepalive_time: 30
|
||||
net.ipv4.tcp_keepalive_intvl: 1
|
||||
net.ipv6.tcp_keepalive_probes: 10
|
||||
@@ -19,15 +19,3 @@
|
||||
atl_cluster_node_id: "{{ az_vm_id.stdout }}"
|
||||
tags:
|
||||
- runtime_pkg
|
||||
|
||||
- name: Tune TCP Keep Alive
|
||||
sysctl:
|
||||
name: '{{ item.key }}'
|
||||
value: '{{ item.value }}'
|
||||
reload: yes
|
||||
ignoreerrors: yes
|
||||
sysctl_file: /etc/sysctl.conf
|
||||
sysctl_set: yes
|
||||
with_dict: '{{ sysctl_config }}'
|
||||
tags:
|
||||
- runtime_pkg
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
---
|
||||
|
||||
- debug:
|
||||
msg: atl_db_engine {{ atl_db_engine }}
|
||||
|
||||
- debug:
|
||||
msg: atl_dbms {{ atl_dbms }}
|
||||
|
||||
- name: Create application directories
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
lineinfile:
|
||||
path: "{{ atl_product_installation_versioned }}/apache-tomcat/bin/setenv.sh"
|
||||
insertafter: "EOF"
|
||||
line: "export JAVA_HOME={{ java_home | default('/usr/lib/jvm/jre-{{ java_version }}-openjdk')}}"
|
||||
line: "export JAVA_HOME={{ java_home | default('/usr/lib/jvm/jre-{{ java_version }}-openjdk') }}"
|
||||
|
||||
- name: Create application directories
|
||||
file:
|
||||
@@ -139,8 +139,8 @@
|
||||
xpath: "/application-configuration/properties/property[@name='hibernate.connection.url']"
|
||||
value: "{{ atl_jdbc_url }}?reWriteBatchedInserts=true"
|
||||
when: crowd_cfg_stat_result.stat.exists
|
||||
|
||||
|
||||
- name: Remove crowd.xml to prevent duplicates from appearing in cluster reporting
|
||||
file:
|
||||
path: "{{ atl_product_installation_versioned }}/apache-tomcat/conf/Catalina/localhost/crowd.xml"
|
||||
state: absent
|
||||
state: absent
|
||||
|
||||
@@ -4,10 +4,6 @@
|
||||
shutdown="SHUTDOWN">
|
||||
|
||||
<Service name="Catalina">
|
||||
<!-- Add the SSL properties when the load balancer is configured
|
||||
secure="{{ atl_tomcat_secure }}"
|
||||
scheme="{{ atl_tomcat_scheme }}"
|
||||
-->
|
||||
<Connector acceptCount="{{ atl_tomcat_acceptcount }}"
|
||||
connectionTimeout="{{ atl_tomcat_connectiontimeout }}"
|
||||
disableUploadTimeout="true"
|
||||
@@ -22,8 +18,14 @@
|
||||
compression="on"
|
||||
sendReasonPhrase="true"
|
||||
compressableMimeType="text/html,text/xml,application/xml,text/plain,text/css,application/json,application/javascript,application/x-javascript"
|
||||
proxyName="{{ atl_proxy_name }}"
|
||||
proxyPort="{{ atl_proxy_port }}"
|
||||
secure="{{ atl_tomcat_secure }}"
|
||||
scheme="{{ atl_tomcat_scheme }}"
|
||||
{% if atl_proxy_name is defined and atl_proxy_name != '' %}
|
||||
proxyName="{{ atl_proxy_name }}"
|
||||
{% endif %}
|
||||
{% if atl_proxy_port is defined and atl_proxy_port != '' %}
|
||||
proxyPort="{{ atl_proxy_port }}"
|
||||
{% endif %}
|
||||
protocol="{{ atl_tomcat_protocol }}">
|
||||
</Connector>
|
||||
|
||||
@@ -50,6 +52,7 @@
|
||||
redirectPort="{{ atl_tomcat_redirectport }}"
|
||||
protocol=""AJP/1.3"" />
|
||||
-->
|
||||
{% if atl_tomcat_redirectport is defined and atl_tomcat_redirectport != '' %}
|
||||
<Connector port="{{ atl_tomcat_redirectport }}"
|
||||
protocol="{{ atl_tomcat_protocol }}"
|
||||
relaxedPathChars="[]|"
|
||||
@@ -61,6 +64,7 @@
|
||||
compression="on"
|
||||
compressableMimeType="text/html,text/xml,text/plain,text/css,application/json,application/javascript,application/x-javascript">
|
||||
</Connector>
|
||||
{% endif %}
|
||||
</Service>
|
||||
|
||||
<!-- Security listener. Documentation at /docs/config/listeners.html
|
||||
|
||||
@@ -6,4 +6,11 @@ atl_db_root_user: 'postgres'
|
||||
atl_jdbc_encoding: 'UTF-8'
|
||||
atl_jdbc_collation: 'C'
|
||||
atl_jdbc_ctype: 'C'
|
||||
atl_jdbc_template: 'template1'
|
||||
atl_jdbc_template: 'template1'
|
||||
|
||||
# Values taken from https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-to-an-azure-sql-database
|
||||
# Windows values are milliseconds, Linux values are seconds
|
||||
sysctl_config:
|
||||
net.ipv4.tcp_keepalive_time: 30
|
||||
net.ipv4.tcp_keepalive_intvl: 1
|
||||
net.ipv6.tcp_keepalive_probes: 10
|
||||
@@ -1,76 +1,4 @@
|
||||
- name: Create application DB user
|
||||
postgresql_user:
|
||||
db: "{{ atl_db_root_db_name }}"
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
login_db: "{{ atl_db_root_db_name }}"
|
||||
port: "{{ atl_db_port }}"
|
||||
name: "{{ atl_jdbc_user }}"
|
||||
password: "{{ atl_jdbc_password }}"
|
||||
expires: 'infinity'
|
||||
ssl_mode: 'require'
|
||||
---
|
||||
|
||||
- name: Collect dbcluster db_names
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_db_root_db_name }}"
|
||||
query: "SELECT datname FROM pg_database;"
|
||||
register: dbcluster_db_names
|
||||
|
||||
- block:
|
||||
|
||||
- name: Update root privs for new user
|
||||
postgresql_privs:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
database: postgres
|
||||
roles: "{{ atl_db_root_user }}"
|
||||
objs: "{{ atl_jdbc_user }}"
|
||||
type: group
|
||||
|
||||
# RDS does not allow changing the collation on an existing DB, it only allows collation change on creation of db. If the db already exists, we need the “create new application database” task to be skipped, idempotence can not be relied upon as we cant be certain the collation of the existing db
|
||||
- name: Create new application database
|
||||
postgresql_db:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
port: "{{ atl_db_port }}"
|
||||
name: "{{ atl_jdbc_db_name }}"
|
||||
owner: "{{ atl_jdbc_user }}"
|
||||
encoding: "{{ atl_jdbc_encoding }}"
|
||||
lc_collate: "{{ atl_jdbc_collation }}"
|
||||
lc_ctype: "{{ atl_jdbc_ctype }}"
|
||||
template: "{{ atl_jdbc_template }}"
|
||||
register: db_created
|
||||
when: "atl_jdbc_db_name not in (dbcluster_db_names.query_result | map(attribute='datname') )"
|
||||
|
||||
tags:
|
||||
- new_only
|
||||
|
||||
- name: Assert ownership of public schema
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_jdbc_db_name }}"
|
||||
query: "ALTER SCHEMA public OWNER to {{ atl_db_root_user }};"
|
||||
|
||||
- name: Grant privs to root user on public schema
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
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 }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_jdbc_db_name }}"
|
||||
query: "GRANT ALL ON SCHEMA public TO {{ atl_jdbc_user }};"
|
||||
- name: Perform Database Setup
|
||||
include_tasks: "{{ atl_dbms }}_init.yml"
|
||||
76
roles/database_init/tasks/postgres_init.yml
Normal file
76
roles/database_init/tasks/postgres_init.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
- name: Create application DB user
|
||||
postgresql_user:
|
||||
db: "{{ atl_db_root_db_name }}"
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
login_db: "{{ atl_db_root_db_name }}"
|
||||
port: "{{ atl_db_port }}"
|
||||
name: "{{ atl_jdbc_user }}"
|
||||
password: "{{ atl_jdbc_password }}"
|
||||
expires: 'infinity'
|
||||
ssl_mode: 'require'
|
||||
|
||||
- name: Collect dbcluster db_names
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_db_root_db_name }}"
|
||||
query: "SELECT datname FROM pg_database;"
|
||||
register: dbcluster_db_names
|
||||
|
||||
- block:
|
||||
|
||||
- name: Update root privs for new user
|
||||
postgresql_privs:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
database: postgres
|
||||
roles: "{{ atl_db_root_user }}"
|
||||
objs: "{{ atl_jdbc_user }}"
|
||||
type: group
|
||||
|
||||
# RDS does not allow changing the collation on an existing DB, it only allows collation change on creation of db. If the db already exists, we need the “create new application database” task to be skipped, idempotence can not be relied upon as we cant be certain the collation of the existing db
|
||||
- name: Create new application database
|
||||
postgresql_db:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
port: "{{ atl_db_port }}"
|
||||
name: "{{ atl_jdbc_db_name }}"
|
||||
owner: "{{ atl_jdbc_user }}"
|
||||
encoding: "{{ atl_jdbc_encoding }}"
|
||||
lc_collate: "{{ atl_jdbc_collation }}"
|
||||
lc_ctype: "{{ atl_jdbc_ctype }}"
|
||||
template: "{{ atl_jdbc_template }}"
|
||||
register: db_created
|
||||
when: "atl_jdbc_db_name not in (dbcluster_db_names.query_result | map(attribute='datname') )"
|
||||
|
||||
tags:
|
||||
- new_only
|
||||
|
||||
- name: Assert ownership of public schema
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_jdbc_db_name }}"
|
||||
query: "ALTER SCHEMA public OWNER to {{ atl_db_root_user }};"
|
||||
|
||||
- name: Grant privs to root user on public schema
|
||||
postgresql_query:
|
||||
login_host: "{{ atl_db_host }}"
|
||||
login_user: "{{ atl_db_root_user_login }}"
|
||||
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 }}"
|
||||
login_password: "{{ atl_db_root_password }}"
|
||||
db: "{{ atl_jdbc_db_name }}"
|
||||
query: "GRANT ALL ON SCHEMA public TO {{ atl_jdbc_user }};"
|
||||
52
roles/database_init/tasks/sql_server_init.yml
Normal file
52
roles/database_init/tasks/sql_server_init.yml
Normal file
@@ -0,0 +1,52 @@
|
||||
- name: Add an Apt signing key for MS Packages
|
||||
apt_key:
|
||||
url: https://packages.microsoft.com/keys/microsoft.asc
|
||||
state: present
|
||||
|
||||
- name: Add MS repository into sources list.
|
||||
apt_repository:
|
||||
repo: deb [arch=amd64] https://packages.microsoft.com/ubuntu/16.04/prod xenial main
|
||||
state: present
|
||||
|
||||
- name: Install SQL Server utils
|
||||
apt:
|
||||
name: mssql-tools
|
||||
update_cache: yes
|
||||
environment:
|
||||
ACCEPT_EULA: Y
|
||||
|
||||
- name: Create sqlcmd symbolic link
|
||||
file:
|
||||
src: /opt/mssql-tools/bin/sqlcmd
|
||||
dest: /usr/bin/sqlcmd
|
||||
state: link
|
||||
|
||||
- name: Create SQL Server DB login
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -Q \"CREATE LOGIN {{ atl_jdbc_user }} WITH PASSWORD = '{{ atl_jdbc_password }}'\""
|
||||
|
||||
- name: Create SQL Server DB user
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -Q \"CREATE USER {{ atl_jdbc_user }} FOR LOGIN {{ atl_jdbc_user }}\""
|
||||
|
||||
- name: Create new SQL Server application database
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -Q \"IF NOT EXISTS (SELECT name FROM master.sys.databases WHERE name = N'{{ atl_jdbc_db_name }}') CREATE DATABASE {{ atl_jdbc_db_name }} COLLATE {{ atl_db_sql_collation }}\""
|
||||
|
||||
- name: Create SQL Server DB user on application database
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -d {{ atl_jdbc_db_name }} -Q \"CREATE USER {{ atl_jdbc_user }} FOR LOGIN {{ atl_jdbc_user }}\""
|
||||
|
||||
- name: Update db_owner role for new user on application database
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -d {{ atl_jdbc_db_name }} -Q \"ALTER ROLE db_owner ADD MEMBER {{ atl_jdbc_user }}\""
|
||||
|
||||
- name: Update isolation level on application database
|
||||
shell: "sqlcmd -S {{ atl_db_host }} -U {{ atl_db_root_user }} -P {{ atl_db_root_password }} -Q \"ALTER DATABASE {{ atl_jdbc_db_name }} SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE\""
|
||||
|
||||
- name: Tune TCP Keep Alive
|
||||
sysctl:
|
||||
name: '{{ item.key }}'
|
||||
value: '{{ item.value }}'
|
||||
reload: yes
|
||||
ignoreerrors: yes
|
||||
sysctl_file: /etc/sysctl.conf
|
||||
sysctl_set: yes
|
||||
with_dict: '{{ sysctl_config }}'
|
||||
tags:
|
||||
- runtime_pkg
|
||||
Reference in New Issue
Block a user