diff --git a/AzureResourceManager/Artifactory/MP_submission/createUiDefinition.json b/AzureResourceManager/Artifactory/MP_submission/createUiDefinition.json index 6d850e3..2390a20 100644 --- a/AzureResourceManager/Artifactory/MP_submission/createUiDefinition.json +++ b/AzureResourceManager/Artifactory/MP_submission/createUiDefinition.json @@ -132,55 +132,18 @@ "name": "artifactoryVersion", "type": "Microsoft.Common.DropDown", "label": "Artifactory-vm image version to deploy.", - "defaultValue": "7.11.2", + "defaultValue": "7.12.6", "toolTip": "Version of Artifactory to deploy", "constraints": { "allowedValues": [ { - "label": "6.16.0", - "value": "0.16.0" - }, - { - "label": "6.17.0", - "value": "0.17.0" - }, - { - "label": "6.18.0", - "value": "6.18.0" - }, - { - "label": "7.2.1", - "value": "7.2.1" - }, - { - "label": "7.3.2", - "value": "0.3.2" - }, - { - "label": "7.4.3", - "value": "7.4.30" - }, - { - "label": "7.6.2", - "value": "0.0.1" - }, - { - "label": "7.7.3", - "value": "0.0.2" - }, - { - "label": "7.10.2", - "value": "0.0.31" - }, - { - "label": "7.10.5", - "value": "0.0.4" + "label": "7.12.5", + "value": "0.0.8" }, { - "label": "7.10.6", - "value": "0.0.52" - }, - { "label": "7.11.2", "value": "0.0.6" } + "label": "7.12.6", + "value": "0.0.9" + } ], "required": true }, diff --git a/AzureResourceManager/Artifactory/MP_submission/mainTemplate.json b/AzureResourceManager/Artifactory/MP_submission/mainTemplate.json index aed2a82..ea8c658 100644 --- a/AzureResourceManager/Artifactory/MP_submission/mainTemplate.json +++ b/AzureResourceManager/Artifactory/MP_submission/mainTemplate.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vmSku": { @@ -79,27 +79,10 @@ }, "artifactoryVersion": { "type": "string", - "defaultValue": "0.0.6", + "defaultValue": "0.0.9", "allowedValues": [ - "6.6.0", - "6.6.1", - "6.7.0", - "6.8.0", - "6.11.3", - "6.15.0", - "0.16.0", - "0.17.0", - "6.18.0", - "7.2.1", - "0.3.2", - "7.4.3", - "7.4.30", - "0.0.1", - "0.0.2", - "0.0.31", - "0.0.4", - "0.0.52", - "0.0.6" + "0.0.8", + "0.0.9" ], "metadata": { "description": "Artifactory-vm image version to deploy." @@ -817,7 +800,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','true','\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','true','\nLOCATION=',parameters('location'),'\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ @@ -860,13 +843,11 @@ "autoUpgradeMinorVersion": false, "settings": { "fileUris": [ - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/version_selector.sh', parameters('_artifactsLocationSasToken')))]" + "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]" ] }, "protectedSettings": { - "commandToExecute": "bash version_selector.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" + "commandToExecute": "bash install_artifactory7.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" } } } @@ -916,7 +897,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','false','\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','false','\nLOCATION=',parameters('location'),'\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ @@ -959,13 +940,11 @@ "autoUpgradeMinorVersion": false, "settings": { "fileUris": [ - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/version_selector.sh', parameters('_artifactsLocationSasToken')))]" + "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]" ] }, "protectedSettings": { - "commandToExecute": "bash version_selector.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" + "commandToExecute": "bash install_artifactory7.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" } } } diff --git a/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_deploy.json b/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_deploy.json index 2a96758..36a2309 100644 --- a/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_deploy.json +++ b/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { @@ -46,9 +46,8 @@ { "name": "[parameters('db_server')]", "type": "Microsoft.Sql/servers", - "kind": "v12.0", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "tags": { "displayName": "artifactoryDB" }, @@ -62,7 +61,7 @@ "name": "[uniqueString(parameters('db_server'), 'AllowAllWindowsAzureIps' )]", "type": "firewallrules", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "dependsOn": [ "[resourceId('Microsoft.Sql/servers/', parameters('db_server'))]" ], @@ -76,7 +75,7 @@ "type": "databases", "kind": "v12.0,user", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "dependsOn": [ "[parameters('db_server')]" ], diff --git a/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_existing.json b/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_existing.json index 4d7aa07..ed7da50 100644 --- a/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_existing.json +++ b/AzureResourceManager/Artifactory/MP_submission/nested/MSSQL_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_deploy.json b/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_deploy.json index 064f77d..e300492 100644 --- a/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_deploy.json +++ b/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_existing.json b/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_existing.json index e8757f3..0b66236 100644 --- a/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_existing.json +++ b/AzureResourceManager/Artifactory/MP_submission/nested/Postgresql_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory.sh b/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory.sh deleted file mode 100644 index 12238a9..0000000 --- a/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory.sh +++ /dev/null @@ -1,214 +0,0 @@ -#!/bin/bash -DB_URL=$(cat /var/lib/cloud/instance/user-data.txt | grep "^JDBC_STR" | sed "s/JDBC_STR=//") -DB_NAME=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_NAME=" | sed "s/DB_NAME=//") -DB_USER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_USER=" | sed "s/DB_ADMIN_USER=//") -DB_PASSWORD=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_PASSWD=" | sed "s/DB_ADMIN_PASSWD=//") -STORAGE_ACCT=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_ACT_NAME=" | sed "s/STO_ACT_NAME=//") -STORAGE_CONTAINER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_CTR_NAME=" | sed "s/STO_CTR_NAME=//") -STORAGE_ACCT_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_ACT_KEY=" | sed "s/STO_ACT_KEY=//") -ARTIFACTORY_VERSION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_VERSION=" | sed "s/ARTIFACTORY_VERSION=//") -MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") -IS_PRIMARY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^IS_PRIMARY=" | sed "s/IS_PRIMARY=//") -ARTIFACTORY_LICENSE_1=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE1=" | sed "s/LICENSE1=//") -ARTIFACTORY_LICENSE_2=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE2=" | sed "s/LICENSE2=//") -ARTIFACTORY_LICENSE_3=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE3=" | sed "s/LICENSE3=//") -ARTIFACTORY_LICENSE_4=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE4=" | sed "s/LICENSE4=//") -ARTIFACTORY_LICENSE_5=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE5=" | sed "s/LICENSE5=//") - -UBUNTU_CODENAME=$(cat /etc/lsb-release | grep "^DISTRIB_CODENAME=" | sed "s/DISTRIB_CODENAME=//") - -export DEBIAN_FRONTEND=noninteractive - -#Generate Self-Signed Cert -mkdir -p /etc/pki/tls/private/ /etc/pki/tls/certs/ -openssl req -nodes -x509 -newkey rsa:4096 -keyout /etc/pki/tls/private/example.key -out /etc/pki/tls/certs/example.pem -days 356 -subj "/C=US/ST=California/L=SantaClara/O=IT/CN=*.localhost" - -CERTIFICATE_DOMAIN=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_DOMAIN=" | sed "s/CERTIFICATE_DOMAIN=//") -[ -z "$CERTIFICATE_DOMAIN" ] && CERTIFICATE_DOMAIN=artifactory - -ARTIFACTORY_SERVER_NAME=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_SERVER_NAME=" | sed "s/ARTIFACTORY_SERVER_NAME=//") -[ -z "$ARTIFACTORY_SERVER_NAME" ] && ARTIFACTORY_SERVER_NAME=artifactory - -#Configuring nginx -rm /etc/nginx/sites-enabled/default - -cat </etc/nginx/nginx.conf - #user nobody; - worker_processes 1; - error_log /var/log/nginx/error.log info; - #pid logs/nginx.pid; - events { - worker_connections 1024; - } - - http { - include mime.types; - variables_hash_max_size 1024; - variables_hash_bucket_size 64; - server_names_hash_max_size 4096; - server_names_hash_bucket_size 128; - types_hash_max_size 2048; - types_hash_bucket_size 64; - proxy_read_timeout 2400s; - client_header_timeout 2400s; - client_body_timeout 2400s; - proxy_connect_timeout 75s; - proxy_send_timeout 2400s; - proxy_buffer_size 32k; - proxy_buffers 40 32k; - proxy_busy_buffers_size 64k; - proxy_temp_file_write_size 250m; - proxy_http_version 1.1; - client_body_buffer_size 128k; - - include /etc/nginx/conf.d/*.conf; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - access_log /var/log/nginx/access.log main; - sendfile on; - #tcp_nopush on; - #keepalive_timeout 0; - keepalive_timeout 65; - } -EOF - -cat </etc/nginx/conf.d/artifactory.conf -ssl_certificate /etc/pki/tls/certs/cert.pem; -ssl_certificate_key /etc/pki/tls/private/cert.key; -ssl_session_cache shared:SSL:1m; -ssl_prefer_server_ciphers on; -## server configuration -server { - listen 443 ssl; - listen 80 ; - server_name ~(?.+)\\.${CERTIFICATE_DOMAIN} artifactory ${ARTIFACTORY_SERVER_NAME}.${CERTIFICATE_DOMAIN}; - if (\$http_x_forwarded_proto = '') { - set \$http_x_forwarded_proto \$scheme; - } - ## Application specific logs - ## access_log /var/log/nginx/artifactory-access.log timing; - ## error_log /var/log/nginx/artifactory-error.log; - rewrite ^/$ /artifactory/webapp/ redirect; - rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; - rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/\$repo/\$1/\$2; - chunked_transfer_encoding on; - client_max_body_size 0; - location /artifactory/ { - proxy_read_timeout 2400; - proxy_pass_header Server; - proxy_cookie_path ~*^/.* /; - proxy_pass http://127.0.0.1:8081/artifactory/; - proxy_set_header X-Artifactory-Override-Base-Url - \$http_x_forwarded_proto://\$host:\$server_port/artifactory; - proxy_set_header X-Forwarded-Port \$server_port; - proxy_set_header X-Forwarded-Proto \$http_x_forwarded_proto; - proxy_set_header Host \$http_host; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - } -} -EOF - -cat </var/opt/jfrog/artifactory/etc/artifactory.cluster.license -${ARTIFACTORY_LICENSE_1} - -${ARTIFACTORY_LICENSE_2} - -${ARTIFACTORY_LICENSE_3} - -${ARTIFACTORY_LICENSE_4} - -${ARTIFACTORY_LICENSE_5} -EOF - -cat </var/opt/jfrog/artifactory/etc/ha-node.properties -node.id=art1 -artifactory.ha.data.dir=/var/opt/jfrog/artifactory/data -context.url=http://127.0.0.1:8081/artifactory -membership.port=10001 -hazelcast.interface=172.25.0.3 -primary=${IS_PRIMARY} -EOF - -cat </var/opt/jfrog/artifactory/etc/db.properties -type=mssql -driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -url=${DB_URL};databaseName=${DB_NAME};sendStringParametersAsUnicode=false;applicationName=Artifactory Binary Repository -username=${DB_USER} -password=${DB_PASSWORD} -EOF - -mkdir -p /var/opt/jfrog/artifactory/etc/security - -cat </var/opt/jfrog/artifactory/etc/security/master.key -${MASTER_KEY} -EOF - -cat </var/opt/jfrog/artifactory/etc/binarystore.xml - - - - - - - - - - - - - - - - - crossNetworkStrategy - crossNetworkStrategy - 2 - 1 - - - - - remote - - - - local - - - - - ${STORAGE_ACCT} - ${STORAGE_ACCT_KEY} - https://${STORAGE_ACCT}.blob.core.windows.net/ - ${STORAGE_CONTAINER} - - -EOF - - -HOSTNAME=$(hostname -i) -sed -i -e "s/art1/art-$(date +%s$RANDOM)/" /var/opt/jfrog/artifactory/etc/ha-node.properties -sed -i -e "s/127.0.0.1/$HOSTNAME/" /var/opt/jfrog/artifactory/etc/ha-node.properties -sed -i -e "s/172.25.0.3/$HOSTNAME/" /var/opt/jfrog/artifactory/etc/ha-node.properties - -cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE=" | sed "s/CERTIFICATE=//" > /tmp/temp.pem -cat /tmp/temp.pem | sed 's/CERTIFICATE----- /&\n/g' | sed 's/ -----END/\n-----END/g' | awk '{if($0 ~ /----/) {print;} else { gsub(/ /,"\n");print;}}' > /etc/pki/tls/certs/cert.pem -rm /tmp/temp.pem - -cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_KEY=" | sed "s/CERTIFICATE_KEY=//" > /tmp/temp.key -cat /tmp/temp.key | sed 's/KEY----- /&\n/' | sed 's/ -----END/\n-----END/' | awk '{if($0 ~ /----/) {print;} else { gsub(/ /,"\n");print;}}' > /etc/pki/tls/private/cert.key -rm /tmp/temp.key - -EXTRA_JAVA_OPTS=$(cat /var/lib/cloud/instance/user-data.txt | grep "^EXTRA_JAVA_OPTS=" | sed "s/EXTRA_JAVA_OPTS=//") -[ -z "$EXTRA_JAVA_OPTS" ] && EXTRA_JAVA_OPTS='-server -Xms2g -Xmx6g -Xss256k -XX:+UseG1GC -XX:OnOutOfMemoryError="kill -9 %p"' -echo "export JAVA_OPTIONS=\"${EXTRA_JAVA_OPTS}\"" >> /var/opt/jfrog/artifactory/etc/default -chown artifactory:artifactory -R /var/opt/jfrog/artifactory/* && chown artifactory:artifactory -R /var/opt/jfrog/artifactory/etc/security && chown artifactory:artifactory -R /var/opt/jfrog/artifactory/etc/* - -# start Artifactory -sleep $((RANDOM % 120)) -service artifactory start -service nginx start -nginx -s reload -echo "INFO: Artifactory installation completed." diff --git a/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory7.sh b/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory7.sh index 8ecc72e..0380132 100644 --- a/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory7.sh +++ b/AzureResourceManager/Artifactory/MP_submission/scripts/install_artifactory7.sh @@ -14,6 +14,7 @@ CERTIFICATE=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE=" | CERTIFICATE_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_KEY=" | sed "s/CERTIFICATE_KEY=//") MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") IS_PRIMARY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^IS_PRIMARY=" | sed "s/IS_PRIMARY=//") +LOCATION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LOCATION=" | sed "s/LOCATION=//") ARTIFACTORY_LICENSE_1=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE1=" | sed "s/LICENSE1=//") ARTIFACTORY_LICENSE_2=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE2=" | sed "s/LICENSE2=//") ARTIFACTORY_LICENSE_3=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE3=" | sed "s/LICENSE3=//") @@ -227,13 +228,23 @@ EOF # Azure Blob Storage configuration # https://www.jfrog.com/confluence/display/JFROG/Configuring+the+Filestore#ConfiguringtheFilestore-AzureBlobStorageClusterBinaryProvider mkdir -p /var/opt/jfrog/artifactory/etc/artifactory/ + +regex_location_gov="usgov.*" +regex_location_dod="usdod.*" + +if [[ "${LOCATION}" =~ $regex_location_gov ]] || [[ "${LOCATION}" =~ $regex_location_dod ]]; then + STORAGE_DOMAIN=usgovcloudapi.net +else + STORAGE_DOMAIN=windows.net +fi + cat </var/opt/jfrog/artifactory/etc/artifactory/binarystore.xml ${STORAGE_ACCT} ${STORAGE_ACCT_KEY} - https://${STORAGE_ACCT}.blob.core.windows.net/ + https://${STORAGE_ACCT}.blob.core.${STORAGE_DOMAIN}/ ${STORAGE_CONTAINER} diff --git a/AzureResourceManager/Artifactory/MP_submission/scripts/version_selector.sh b/AzureResourceManager/Artifactory/MP_submission/scripts/version_selector.sh deleted file mode 100644 index aab3104..0000000 --- a/AzureResourceManager/Artifactory/MP_submission/scripts/version_selector.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -ARTIFACTORY_VERSION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_VERSION=" | sed "s/ARTIFACTORY_VERSION=//") -IFS=$'\t' -SUPPORTED_VERSIONS=("6.8.0\t6.11.3\t6.15.0\t0.16.0\t0.17.0\t6.18.0") -unset IFS - -if [[ "\t${SUPPORTED_VERSIONS[@]}\t" =~ "\t${ARTIFACTORY_VERSION}\t" ]]; then - ./install_artifactory.sh - echo "\ninstall_artifactory.sh was selected" >> user-data.txt -else - ./install_artifactory7.sh - echo "\ninstall_artifactory7.sh was selected" >> user-data.txt -fi \ No newline at end of file diff --git a/AzureResourceManager/Artifactory/README.md b/AzureResourceManager/Artifactory/README.md index 48053c8..5c414d5 100644 --- a/AzureResourceManager/Artifactory/README.md +++ b/AzureResourceManager/Artifactory/README.md @@ -18,7 +18,10 @@ This template can help you setup the [Artifactory Enterprise](https://jfrog.com/ 2. Enter a valid values to parameters. At least 1 license has to be provided. -![screenshot](images/Parameters.png) +![screenshot](images/Parameters0.png) +![screenshot](images/Parameters1.png) +![screenshot](images/Parameters2.png) +![screenshot](images/Parameters3.png) 3. Click on Review + Create, then on Create to start deploying resources. It will deploy MsSQL or Postgresql database (or it can use existing), Azure Blob storage container, VM installing Nginx and Artifactory and Load balancer. @@ -33,7 +36,7 @@ This template can help you setup the [Artifactory Enterprise](https://jfrog.com/ 2. Turn off daily backups. Read Documentation provided [here](https://www.jfrog.com/confluence/display/RTF/Managing+Backups) 3. Use SSL Certificate with valid wild card to you artifactory as docker registry with subdomain method. 4. Input values for 'adminUsername' and 'adminPassword' parameters needs to follow azure VM access rules. -5. One primary node is configured automatically. And, Minimum 1 member node is expected for the Artifactory HA installation. +5. One primary node is configured automatically. And, minimum 1 member node is expected for the Artifactory HA installation. 6. This template provides support for max 5 licenses. To add more licenses, Edit the template (input fields, CustomScript sections) and install_artifactory.sh script. 7. Refer to [System Requirements](https://www.jfrog.com/confluence/display/RTF/System+Requirements) for changing 'extraJavaOptions' input parameter value. @@ -72,7 +75,7 @@ Note: Use load balancer's NAT entries under Azure resources, to get the allocate ------ #### Note: -Supported locations: `East US 2`, `Central US`, `West Central US` and `West Europe`. +Supported locations: `East US 2`, `Central US`, `West Central US`, `West US`, `West US 2` and `West Europe`. Please check the Azure region support for `Standard Sku` property in load balancer for this template to work properly. Check for SQL server support on specified location. If SQL server is not available in the location, Use 'DB_Location' to specify the location with SQL server support. diff --git a/AzureResourceManager/Artifactory/azuredeploy_ms_ps.json b/AzureResourceManager/Artifactory/azuredeploy.json similarity index 95% rename from AzureResourceManager/Artifactory/azuredeploy_ms_ps.json rename to AzureResourceManager/Artifactory/azuredeploy.json index fb619e3..d53acf3 100644 --- a/AzureResourceManager/Artifactory/azuredeploy_ms_ps.json +++ b/AzureResourceManager/Artifactory/azuredeploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vmSku": { @@ -79,25 +79,10 @@ }, "artifactoryVersion": { "type": "string", - "defaultValue": "0.0.7", + "defaultValue": "0.0.9", "allowedValues": [ - "6.11.3", - "6.15.0", - "0.16.0", - "0.17.0", - "6.18.0", - "7.2.1", - "7.4.3", - "7.4.30", - "7.4.31", - "7.5.7", - "0.0.1", - "0.0.2", - "0.0.31", - "0.0.4", - "0.0.52", - "0.0.6", - "0.0.7" + "0.0.8", + "0.0.9" ], "metadata": { "description": "Artifactory-vm image version to deploy." @@ -815,7 +800,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','true','\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','true','\nLOCATION=',parameters('location'),'\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ @@ -858,13 +843,11 @@ "autoUpgradeMinorVersion": false, "settings": { "fileUris": [ - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/version_selector.sh', parameters('_artifactsLocationSasToken')))]" + "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]" ] }, "protectedSettings": { - "commandToExecute": "bash version_selector.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" + "commandToExecute": "bash install_artifactory7.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" } } } @@ -914,7 +897,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','false','\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nARTIFACTORY_VERSION=', parameters('artifactoryVersion'),'\nCERTIFICATE_KEY=',variables('certificateKey'),'\nCERTIFICATE=', variables('certificate'),'\nCERTIFICATE_DOMAIN=',variables('certificateDomain'),'\nDB_TYPE=',parameters('db_type'),'\nARTIFACTORY_SERVER_NAME=',variables('artifactoryServerName'),'\nEXTRA_JAVA_OPTS=',variables('extraJavaOptions'),'\nJDBC_STR=',reference('Microsoft.Resources/deployments/deploySQLDB').outputs.jdbcConnString.value,'\nDB_NAME=',variables('artDBname'),'\nDB_ADMIN_USER=',variables('db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nSTO_ACT_NAME=',variables('storageAccountName'),'\nSTO_ACT_ENDPOINT=',reference(resourceId('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob,'\nSTO_CTR_NAME=',variables('vmStorageAccountContainerName'),'\nSTO_ACT_KEY=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2018-07-01').keys[0].value,'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\nIS_PRIMARY=','false','\nLOCATION=',parameters('location'),'\nLICENSE1=',variables('artifactoryLicense1'),'\nLICENSE2=',variables('artifactoryLicense2'),'\nLICENSE3=',variables('artifactoryLicense3'),'\nLICENSE4=',variables('artifactoryLicense4'),'\nLICENSE5=',variables('artifactoryLicense5'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ @@ -957,13 +940,11 @@ "autoUpgradeMinorVersion": false, "settings": { "fileUris": [ - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]", - "[uri(parameters('_artifactsLocation'), concat('scripts/version_selector.sh', parameters('_artifactsLocationSasToken')))]" + "[uri(parameters('_artifactsLocation'), concat('scripts/install_artifactory7.sh', parameters('_artifactsLocationSasToken')))]" ] }, "protectedSettings": { - "commandToExecute": "bash version_selector.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" + "commandToExecute": "bash install_artifactory7.sh && ls -al && pwd >> /var/lib/cloud/instance/user-data.txt" } } } diff --git a/AzureResourceManager/Artifactory/azuredeploy_ms_ps.parameters.json b/AzureResourceManager/Artifactory/azuredeploy.parameters.json similarity index 94% rename from AzureResourceManager/Artifactory/azuredeploy_ms_ps.parameters.json rename to AzureResourceManager/Artifactory/azuredeploy.parameters.json index 7c09c75..d20e929 100644 --- a/AzureResourceManager/Artifactory/azuredeploy_ms_ps.parameters.json +++ b/AzureResourceManager/Artifactory/azuredeploy.parameters.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "clusterName": { diff --git a/AzureResourceManager/Artifactory/images/Parameters.png b/AzureResourceManager/Artifactory/images/Parameters.png deleted file mode 100644 index a735cef..0000000 Binary files a/AzureResourceManager/Artifactory/images/Parameters.png and /dev/null differ diff --git a/AzureResourceManager/Artifactory/images/Parameters0.png b/AzureResourceManager/Artifactory/images/Parameters0.png new file mode 100644 index 0000000..f540cfc Binary files /dev/null and b/AzureResourceManager/Artifactory/images/Parameters0.png differ diff --git a/AzureResourceManager/Artifactory/images/Parameters1.png b/AzureResourceManager/Artifactory/images/Parameters1.png new file mode 100644 index 0000000..65575ed Binary files /dev/null and b/AzureResourceManager/Artifactory/images/Parameters1.png differ diff --git a/AzureResourceManager/Artifactory/images/Parameters2.png b/AzureResourceManager/Artifactory/images/Parameters2.png new file mode 100644 index 0000000..b632580 Binary files /dev/null and b/AzureResourceManager/Artifactory/images/Parameters2.png differ diff --git a/AzureResourceManager/Artifactory/images/Parameters3.png b/AzureResourceManager/Artifactory/images/Parameters3.png new file mode 100644 index 0000000..9f190f5 Binary files /dev/null and b/AzureResourceManager/Artifactory/images/Parameters3.png differ diff --git a/AzureResourceManager/Artifactory/nested/MSSQL_deploy.json b/AzureResourceManager/Artifactory/nested/MSSQL_deploy.json index 2a96758..36a2309 100644 --- a/AzureResourceManager/Artifactory/nested/MSSQL_deploy.json +++ b/AzureResourceManager/Artifactory/nested/MSSQL_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { @@ -46,9 +46,8 @@ { "name": "[parameters('db_server')]", "type": "Microsoft.Sql/servers", - "kind": "v12.0", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "tags": { "displayName": "artifactoryDB" }, @@ -62,7 +61,7 @@ "name": "[uniqueString(parameters('db_server'), 'AllowAllWindowsAzureIps' )]", "type": "firewallrules", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "dependsOn": [ "[resourceId('Microsoft.Sql/servers/', parameters('db_server'))]" ], @@ -76,7 +75,7 @@ "type": "databases", "kind": "v12.0,user", "location": "[parameters('db_location')]", - "apiVersion": "2020-02-02-preview", + "apiVersion": "2020-08-01-preview", "dependsOn": [ "[parameters('db_server')]" ], diff --git a/AzureResourceManager/Artifactory/nested/MSSQL_existing.json b/AzureResourceManager/Artifactory/nested/MSSQL_existing.json index 4d7aa07..ed7da50 100644 --- a/AzureResourceManager/Artifactory/nested/MSSQL_existing.json +++ b/AzureResourceManager/Artifactory/nested/MSSQL_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/nested/Postgresql_deploy.json b/AzureResourceManager/Artifactory/nested/Postgresql_deploy.json index 064f77d..e300492 100644 --- a/AzureResourceManager/Artifactory/nested/Postgresql_deploy.json +++ b/AzureResourceManager/Artifactory/nested/Postgresql_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/nested/Postgresql_existing.json b/AzureResourceManager/Artifactory/nested/Postgresql_existing.json index e8757f3..0b66236 100644 --- a/AzureResourceManager/Artifactory/nested/Postgresql_existing.json +++ b/AzureResourceManager/Artifactory/nested/Postgresql_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Artifactory/scripts/install_artifactory.sh b/AzureResourceManager/Artifactory/scripts/install_artifactory.sh deleted file mode 100644 index 12238a9..0000000 --- a/AzureResourceManager/Artifactory/scripts/install_artifactory.sh +++ /dev/null @@ -1,214 +0,0 @@ -#!/bin/bash -DB_URL=$(cat /var/lib/cloud/instance/user-data.txt | grep "^JDBC_STR" | sed "s/JDBC_STR=//") -DB_NAME=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_NAME=" | sed "s/DB_NAME=//") -DB_USER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_USER=" | sed "s/DB_ADMIN_USER=//") -DB_PASSWORD=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_PASSWD=" | sed "s/DB_ADMIN_PASSWD=//") -STORAGE_ACCT=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_ACT_NAME=" | sed "s/STO_ACT_NAME=//") -STORAGE_CONTAINER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_CTR_NAME=" | sed "s/STO_CTR_NAME=//") -STORAGE_ACCT_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^STO_ACT_KEY=" | sed "s/STO_ACT_KEY=//") -ARTIFACTORY_VERSION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_VERSION=" | sed "s/ARTIFACTORY_VERSION=//") -MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") -IS_PRIMARY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^IS_PRIMARY=" | sed "s/IS_PRIMARY=//") -ARTIFACTORY_LICENSE_1=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE1=" | sed "s/LICENSE1=//") -ARTIFACTORY_LICENSE_2=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE2=" | sed "s/LICENSE2=//") -ARTIFACTORY_LICENSE_3=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE3=" | sed "s/LICENSE3=//") -ARTIFACTORY_LICENSE_4=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE4=" | sed "s/LICENSE4=//") -ARTIFACTORY_LICENSE_5=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE5=" | sed "s/LICENSE5=//") - -UBUNTU_CODENAME=$(cat /etc/lsb-release | grep "^DISTRIB_CODENAME=" | sed "s/DISTRIB_CODENAME=//") - -export DEBIAN_FRONTEND=noninteractive - -#Generate Self-Signed Cert -mkdir -p /etc/pki/tls/private/ /etc/pki/tls/certs/ -openssl req -nodes -x509 -newkey rsa:4096 -keyout /etc/pki/tls/private/example.key -out /etc/pki/tls/certs/example.pem -days 356 -subj "/C=US/ST=California/L=SantaClara/O=IT/CN=*.localhost" - -CERTIFICATE_DOMAIN=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_DOMAIN=" | sed "s/CERTIFICATE_DOMAIN=//") -[ -z "$CERTIFICATE_DOMAIN" ] && CERTIFICATE_DOMAIN=artifactory - -ARTIFACTORY_SERVER_NAME=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_SERVER_NAME=" | sed "s/ARTIFACTORY_SERVER_NAME=//") -[ -z "$ARTIFACTORY_SERVER_NAME" ] && ARTIFACTORY_SERVER_NAME=artifactory - -#Configuring nginx -rm /etc/nginx/sites-enabled/default - -cat </etc/nginx/nginx.conf - #user nobody; - worker_processes 1; - error_log /var/log/nginx/error.log info; - #pid logs/nginx.pid; - events { - worker_connections 1024; - } - - http { - include mime.types; - variables_hash_max_size 1024; - variables_hash_bucket_size 64; - server_names_hash_max_size 4096; - server_names_hash_bucket_size 128; - types_hash_max_size 2048; - types_hash_bucket_size 64; - proxy_read_timeout 2400s; - client_header_timeout 2400s; - client_body_timeout 2400s; - proxy_connect_timeout 75s; - proxy_send_timeout 2400s; - proxy_buffer_size 32k; - proxy_buffers 40 32k; - proxy_busy_buffers_size 64k; - proxy_temp_file_write_size 250m; - proxy_http_version 1.1; - client_body_buffer_size 128k; - - include /etc/nginx/conf.d/*.conf; - default_type application/octet-stream; - log_format main '$remote_addr - $remote_user [$time_local] "$request" ' - '$status $body_bytes_sent "$http_referer" ' - '"$http_user_agent" "$http_x_forwarded_for"'; - access_log /var/log/nginx/access.log main; - sendfile on; - #tcp_nopush on; - #keepalive_timeout 0; - keepalive_timeout 65; - } -EOF - -cat </etc/nginx/conf.d/artifactory.conf -ssl_certificate /etc/pki/tls/certs/cert.pem; -ssl_certificate_key /etc/pki/tls/private/cert.key; -ssl_session_cache shared:SSL:1m; -ssl_prefer_server_ciphers on; -## server configuration -server { - listen 443 ssl; - listen 80 ; - server_name ~(?.+)\\.${CERTIFICATE_DOMAIN} artifactory ${ARTIFACTORY_SERVER_NAME}.${CERTIFICATE_DOMAIN}; - if (\$http_x_forwarded_proto = '') { - set \$http_x_forwarded_proto \$scheme; - } - ## Application specific logs - ## access_log /var/log/nginx/artifactory-access.log timing; - ## error_log /var/log/nginx/artifactory-error.log; - rewrite ^/$ /artifactory/webapp/ redirect; - rewrite ^/artifactory/?(/webapp)?$ /artifactory/webapp/ redirect; - rewrite ^/(v1|v2)/(.*) /artifactory/api/docker/\$repo/\$1/\$2; - chunked_transfer_encoding on; - client_max_body_size 0; - location /artifactory/ { - proxy_read_timeout 2400; - proxy_pass_header Server; - proxy_cookie_path ~*^/.* /; - proxy_pass http://127.0.0.1:8081/artifactory/; - proxy_set_header X-Artifactory-Override-Base-Url - \$http_x_forwarded_proto://\$host:\$server_port/artifactory; - proxy_set_header X-Forwarded-Port \$server_port; - proxy_set_header X-Forwarded-Proto \$http_x_forwarded_proto; - proxy_set_header Host \$http_host; - proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; - } -} -EOF - -cat </var/opt/jfrog/artifactory/etc/artifactory.cluster.license -${ARTIFACTORY_LICENSE_1} - -${ARTIFACTORY_LICENSE_2} - -${ARTIFACTORY_LICENSE_3} - -${ARTIFACTORY_LICENSE_4} - -${ARTIFACTORY_LICENSE_5} -EOF - -cat </var/opt/jfrog/artifactory/etc/ha-node.properties -node.id=art1 -artifactory.ha.data.dir=/var/opt/jfrog/artifactory/data -context.url=http://127.0.0.1:8081/artifactory -membership.port=10001 -hazelcast.interface=172.25.0.3 -primary=${IS_PRIMARY} -EOF - -cat </var/opt/jfrog/artifactory/etc/db.properties -type=mssql -driver=com.microsoft.sqlserver.jdbc.SQLServerDriver -url=${DB_URL};databaseName=${DB_NAME};sendStringParametersAsUnicode=false;applicationName=Artifactory Binary Repository -username=${DB_USER} -password=${DB_PASSWORD} -EOF - -mkdir -p /var/opt/jfrog/artifactory/etc/security - -cat </var/opt/jfrog/artifactory/etc/security/master.key -${MASTER_KEY} -EOF - -cat </var/opt/jfrog/artifactory/etc/binarystore.xml - - - - - - - - - - - - - - - - - crossNetworkStrategy - crossNetworkStrategy - 2 - 1 - - - - - remote - - - - local - - - - - ${STORAGE_ACCT} - ${STORAGE_ACCT_KEY} - https://${STORAGE_ACCT}.blob.core.windows.net/ - ${STORAGE_CONTAINER} - - -EOF - - -HOSTNAME=$(hostname -i) -sed -i -e "s/art1/art-$(date +%s$RANDOM)/" /var/opt/jfrog/artifactory/etc/ha-node.properties -sed -i -e "s/127.0.0.1/$HOSTNAME/" /var/opt/jfrog/artifactory/etc/ha-node.properties -sed -i -e "s/172.25.0.3/$HOSTNAME/" /var/opt/jfrog/artifactory/etc/ha-node.properties - -cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE=" | sed "s/CERTIFICATE=//" > /tmp/temp.pem -cat /tmp/temp.pem | sed 's/CERTIFICATE----- /&\n/g' | sed 's/ -----END/\n-----END/g' | awk '{if($0 ~ /----/) {print;} else { gsub(/ /,"\n");print;}}' > /etc/pki/tls/certs/cert.pem -rm /tmp/temp.pem - -cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_KEY=" | sed "s/CERTIFICATE_KEY=//" > /tmp/temp.key -cat /tmp/temp.key | sed 's/KEY----- /&\n/' | sed 's/ -----END/\n-----END/' | awk '{if($0 ~ /----/) {print;} else { gsub(/ /,"\n");print;}}' > /etc/pki/tls/private/cert.key -rm /tmp/temp.key - -EXTRA_JAVA_OPTS=$(cat /var/lib/cloud/instance/user-data.txt | grep "^EXTRA_JAVA_OPTS=" | sed "s/EXTRA_JAVA_OPTS=//") -[ -z "$EXTRA_JAVA_OPTS" ] && EXTRA_JAVA_OPTS='-server -Xms2g -Xmx6g -Xss256k -XX:+UseG1GC -XX:OnOutOfMemoryError="kill -9 %p"' -echo "export JAVA_OPTIONS=\"${EXTRA_JAVA_OPTS}\"" >> /var/opt/jfrog/artifactory/etc/default -chown artifactory:artifactory -R /var/opt/jfrog/artifactory/* && chown artifactory:artifactory -R /var/opt/jfrog/artifactory/etc/security && chown artifactory:artifactory -R /var/opt/jfrog/artifactory/etc/* - -# start Artifactory -sleep $((RANDOM % 120)) -service artifactory start -service nginx start -nginx -s reload -echo "INFO: Artifactory installation completed." diff --git a/AzureResourceManager/Artifactory/scripts/install_artifactory7.sh b/AzureResourceManager/Artifactory/scripts/install_artifactory7.sh index 8ecc72e..0380132 100644 --- a/AzureResourceManager/Artifactory/scripts/install_artifactory7.sh +++ b/AzureResourceManager/Artifactory/scripts/install_artifactory7.sh @@ -14,6 +14,7 @@ CERTIFICATE=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE=" | CERTIFICATE_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^CERTIFICATE_KEY=" | sed "s/CERTIFICATE_KEY=//") MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") IS_PRIMARY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^IS_PRIMARY=" | sed "s/IS_PRIMARY=//") +LOCATION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LOCATION=" | sed "s/LOCATION=//") ARTIFACTORY_LICENSE_1=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE1=" | sed "s/LICENSE1=//") ARTIFACTORY_LICENSE_2=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE2=" | sed "s/LICENSE2=//") ARTIFACTORY_LICENSE_3=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LICENSE3=" | sed "s/LICENSE3=//") @@ -227,13 +228,23 @@ EOF # Azure Blob Storage configuration # https://www.jfrog.com/confluence/display/JFROG/Configuring+the+Filestore#ConfiguringtheFilestore-AzureBlobStorageClusterBinaryProvider mkdir -p /var/opt/jfrog/artifactory/etc/artifactory/ + +regex_location_gov="usgov.*" +regex_location_dod="usdod.*" + +if [[ "${LOCATION}" =~ $regex_location_gov ]] || [[ "${LOCATION}" =~ $regex_location_dod ]]; then + STORAGE_DOMAIN=usgovcloudapi.net +else + STORAGE_DOMAIN=windows.net +fi + cat </var/opt/jfrog/artifactory/etc/artifactory/binarystore.xml ${STORAGE_ACCT} ${STORAGE_ACCT_KEY} - https://${STORAGE_ACCT}.blob.core.windows.net/ + https://${STORAGE_ACCT}.blob.core.${STORAGE_DOMAIN}/ ${STORAGE_CONTAINER} diff --git a/AzureResourceManager/Artifactory/scripts/version_selector.sh b/AzureResourceManager/Artifactory/scripts/version_selector.sh deleted file mode 100644 index aab3104..0000000 --- a/AzureResourceManager/Artifactory/scripts/version_selector.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -ARTIFACTORY_VERSION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_VERSION=" | sed "s/ARTIFACTORY_VERSION=//") -IFS=$'\t' -SUPPORTED_VERSIONS=("6.8.0\t6.11.3\t6.15.0\t0.16.0\t0.17.0\t6.18.0") -unset IFS - -if [[ "\t${SUPPORTED_VERSIONS[@]}\t" =~ "\t${ARTIFACTORY_VERSION}\t" ]]; then - ./install_artifactory.sh - echo "\ninstall_artifactory.sh was selected" >> user-data.txt -else - ./install_artifactory7.sh - echo "\ninstall_artifactory7.sh was selected" >> user-data.txt -fi \ No newline at end of file diff --git a/AzureResourceManager/Xray/MP_submission/createUiDefinition.json b/AzureResourceManager/Xray/MP_submission/createUiDefinition.json index 17931e9..47a9623 100644 --- a/AzureResourceManager/Xray/MP_submission/createUiDefinition.json +++ b/AzureResourceManager/Xray/MP_submission/createUiDefinition.json @@ -123,32 +123,18 @@ "name": "xrayVersion", "type": "Microsoft.Common.DropDown", "label": "Xray-vm image version to deploy.", - "defaultValue": "3.11.2", + "defaultValue": "3.15.3", "toolTip": "Version of Xray to deploy", "constraints": { "allowedValues": [ { - "label": "3.6.2", - "value": "0.0.3" + "label": "3.15.1", + "value": "0.0.10" }, { - "label": "3.8.2", - "value": "0.0.4" - }, - { - "label": "3.8.5", - "value": "0.0.5" - }, - { - "label": "3.9.1", - "value": "0.0.6" - }, - { - "label": "3.10.3", - "value": "0.0.7" - }, - { "label": "3.11.2", "value": "0.0.8" - } + "label": "3.15.3", + "value": "0.0.11" + } ], "required": true }, diff --git a/AzureResourceManager/Xray/MP_submission/mainTemplate.json b/AzureResourceManager/Xray/MP_submission/mainTemplate.json index 92d7a81..3361f54 100644 --- a/AzureResourceManager/Xray/MP_submission/mainTemplate.json +++ b/AzureResourceManager/Xray/MP_submission/mainTemplate.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { @@ -19,14 +19,10 @@ }, "xrayVersion": { "type": "string", - "defaultValue": "0.0.8", + "defaultValue": "0.0.11", "allowedValues": [ - "0.0.3", - "0.0.4", - "0.0.5", - "0.0.6", - "0.0.7", - "0.0.8" + "0.0.10", + "0.0.11" ], "metadata": { "description": "Xray-vm image version to deploy." @@ -356,7 +352,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nXRAY_VERSION=', parameters('xrayVersion'),'\nARTIFACTORY_URL=',variables('artifactoryURL'),'\nDB_SERVER=',variables('db_server'),'\nDB_NAME=',variables('db_name'),'\nDB_ADMIN_USER=',variables('db_user'),'\nACTUAL_DB_ADMIN_USER=',variables('actual_db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nXRAY_VERSION=', parameters('xrayVersion'),'\nARTIFACTORY_URL=',variables('artifactoryURL'),'\nDB_SERVER=',variables('db_server'),'\nDB_NAME=',variables('db_name'),'\nDB_ADMIN_USER=',variables('db_user'),'\nACTUAL_DB_ADMIN_USER=',variables('actual_db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nMASTER_KEY=',variables('masterKey'),'\nLOCATION=',parameters('location'),'\nJOIN_KEY=',variables('joinKey'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ diff --git a/AzureResourceManager/Xray/MP_submission/nested/Postgresql_deploy.json b/AzureResourceManager/Xray/MP_submission/nested/Postgresql_deploy.json index cdc3a2b..01e6dcf 100644 --- a/AzureResourceManager/Xray/MP_submission/nested/Postgresql_deploy.json +++ b/AzureResourceManager/Xray/MP_submission/nested/Postgresql_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Xray/MP_submission/nested/Postgresql_existing.json b/AzureResourceManager/Xray/MP_submission/nested/Postgresql_existing.json index 6e8be3a..31bf286 100644 --- a/AzureResourceManager/Xray/MP_submission/nested/Postgresql_existing.json +++ b/AzureResourceManager/Xray/MP_submission/nested/Postgresql_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Xray/MP_submission/scripts/install_xray.sh b/AzureResourceManager/Xray/MP_submission/scripts/install_xray.sh index 2a4988f..bee461f 100644 --- a/AzureResourceManager/Xray/MP_submission/scripts/install_xray.sh +++ b/AzureResourceManager/Xray/MP_submission/scripts/install_xray.sh @@ -6,6 +6,7 @@ DB_PASSWORD=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_PASSWD DB_SERVER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_SERVER=" | sed "s/DB_SERVER=//") MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") JOIN_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^JOIN_KEY=" | sed "s/JOIN_KEY=//") +LOCATION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LOCATION=" | sed "s/LOCATION=//") ARTIFACTORY_URL=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_URL=" | sed "s/ARTIFACTORY_URL=//") export DEBIAN_FRONTEND=noninteractive @@ -30,7 +31,17 @@ EOF # Xray should have the same join key as the Artifactory instance # Both application should be deployed in the same Virtual Networks HOSTNAME=$(hostname -i) -yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.url postgres://${DB_SERVER}.postgres.database.azure.com:5432/${DB_NAME}?sslmode=disable + +regex_location_gov="usgov.*" +regex_location_dod="usdod.*" + +if [[ "${LOCATION}" =~ $regex_location_gov ]] || [[ "${LOCATION}" =~ $regex_location_dod ]]; then + DB_DOMAIN=usgovcloudapi.net +else + DB_DOMAIN=azure.com +fi + +yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.url postgres://${DB_SERVER}.postgres.database.${DB_DOMAIN}:5432/${DB_NAME}?sslmode=disable yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.username ${DB_USER} yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.actualUsername ${ACTUAL_DB_USER} yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.password ${DB_PASSWORD} diff --git a/AzureResourceManager/Xray/azuredeploy_xray.parameters.json b/AzureResourceManager/Xray/azuredeploy_xray.parameters.json index 30c98e8..c583136 100644 --- a/AzureResourceManager/Xray/azuredeploy_xray.parameters.json +++ b/AzureResourceManager/Xray/azuredeploy_xray.parameters.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "clusterName": { @@ -33,7 +33,7 @@ "value": "10.0.1.0/24" }, "xrayVersion": { - "value": "0.0.8" + "value": "0.0.11" }, "artifactoryURL": { "value": "http://ARTIFACTORY-URL.cloudapp.azure.com" diff --git a/AzureResourceManager/Xray/azuredeploy_xray_vmss.json b/AzureResourceManager/Xray/azuredeploy_xray_vmss.json index 1874143..d905234 100644 --- a/AzureResourceManager/Xray/azuredeploy_xray_vmss.json +++ b/AzureResourceManager/Xray/azuredeploy_xray_vmss.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "location": { @@ -19,15 +19,10 @@ }, "xrayVersion": { "type": "string", - "defaultValue": "0.0.9", + "defaultValue": "0.0.11", "allowedValues": [ - "0.0.3", - "0.0.4", - "0.0.5", - "0.0.6", - "0.0.7", - "0.0.8", - "0.0.9" + "0.0.10", + "0.0.11" ], "metadata": { "description": "Xray-vm image version to deploy." @@ -357,7 +352,7 @@ "computerNamePrefix": "[variables('namingInfix')]", "adminUsername": "[parameters('adminUsername')]", "adminPassword": "[parameters('adminPassword')]", - "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nXRAY_VERSION=', parameters('xrayVersion'),'\nARTIFACTORY_URL=',variables('artifactoryURL'),'\nDB_SERVER=',variables('db_server'),'\nDB_NAME=',variables('db_name'),'\nDB_ADMIN_USER=',variables('db_user'),'\nACTUAL_DB_ADMIN_USER=',variables('actual_db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nMASTER_KEY=',variables('masterKey'),'\nJOIN_KEY=',variables('joinKey'),'\n'))]" + "customData": "[base64(concat('#INSTALL SCRIPT INPUTS\nXRAY_VERSION=', parameters('xrayVersion'),'\nARTIFACTORY_URL=',variables('artifactoryURL'),'\nDB_SERVER=',variables('db_server'),'\nDB_NAME=',variables('db_name'),'\nDB_ADMIN_USER=',variables('db_user'),'\nACTUAL_DB_ADMIN_USER=',variables('actual_db_user'),'\nDB_ADMIN_PASSWD=',variables('db_password'),'\nMASTER_KEY=',variables('masterKey'),'\nLOCATION=',parameters('location'),'\nJOIN_KEY=',variables('joinKey'),'\n'))]" }, "networkProfile": { "networkInterfaceConfigurations": [ diff --git a/AzureResourceManager/Xray/nested/Postgresql_deploy.json b/AzureResourceManager/Xray/nested/Postgresql_deploy.json index cdc3a2b..01e6dcf 100644 --- a/AzureResourceManager/Xray/nested/Postgresql_deploy.json +++ b/AzureResourceManager/Xray/nested/Postgresql_deploy.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Xray/nested/Postgresql_existing.json b/AzureResourceManager/Xray/nested/Postgresql_existing.json index 6e8be3a..31bf286 100644 --- a/AzureResourceManager/Xray/nested/Postgresql_existing.json +++ b/AzureResourceManager/Xray/nested/Postgresql_existing.json @@ -1,5 +1,5 @@ { - "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "db_user": { diff --git a/AzureResourceManager/Xray/scripts/install_xray.sh b/AzureResourceManager/Xray/scripts/install_xray.sh index 2a4988f..bee461f 100644 --- a/AzureResourceManager/Xray/scripts/install_xray.sh +++ b/AzureResourceManager/Xray/scripts/install_xray.sh @@ -6,6 +6,7 @@ DB_PASSWORD=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_ADMIN_PASSWD DB_SERVER=$(cat /var/lib/cloud/instance/user-data.txt | grep "^DB_SERVER=" | sed "s/DB_SERVER=//") MASTER_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^MASTER_KEY=" | sed "s/MASTER_KEY=//") JOIN_KEY=$(cat /var/lib/cloud/instance/user-data.txt | grep "^JOIN_KEY=" | sed "s/JOIN_KEY=//") +LOCATION=$(cat /var/lib/cloud/instance/user-data.txt | grep "^LOCATION=" | sed "s/LOCATION=//") ARTIFACTORY_URL=$(cat /var/lib/cloud/instance/user-data.txt | grep "^ARTIFACTORY_URL=" | sed "s/ARTIFACTORY_URL=//") export DEBIAN_FRONTEND=noninteractive @@ -30,7 +31,17 @@ EOF # Xray should have the same join key as the Artifactory instance # Both application should be deployed in the same Virtual Networks HOSTNAME=$(hostname -i) -yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.url postgres://${DB_SERVER}.postgres.database.azure.com:5432/${DB_NAME}?sslmode=disable + +regex_location_gov="usgov.*" +regex_location_dod="usdod.*" + +if [[ "${LOCATION}" =~ $regex_location_gov ]] || [[ "${LOCATION}" =~ $regex_location_dod ]]; then + DB_DOMAIN=usgovcloudapi.net +else + DB_DOMAIN=azure.com +fi + +yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.url postgres://${DB_SERVER}.postgres.database.${DB_DOMAIN}:5432/${DB_NAME}?sslmode=disable yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.username ${DB_USER} yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.actualUsername ${ACTUAL_DB_USER} yq w -i /var/opt/jfrog/xray/etc/system.yaml shared.database.password ${DB_PASSWORD} diff --git a/AzureResourceManager/Xray/vm_install/install_xray_to_vm.sh b/AzureResourceManager/Xray/vm_install/install_xray_to_vm.sh index e3fc408..4ab8c9d 100644 --- a/AzureResourceManager/Xray/vm_install/install_xray_to_vm.sh +++ b/AzureResourceManager/Xray/vm_install/install_xray_to_vm.sh @@ -10,8 +10,9 @@ apt-get upgrade -y # Download Xray cd /opt/ -wget -O jfrog-xray-${XRAY_VERSION}-deb.tar.gz 'https://bintray.com/jfrog/jfrog-xray/download_file?agree=true&artifactPath=/jfrog/jfrog-xray/xray-deb/'${XRAY_VERSION}'/jfrog-xray-'${XRAY_VERSION}'-deb.tar.gz&callback_id=&product=org.grails.taglib.NamespacedTagDispatcher' \ +wget -O jfrog-xray-${XRAY_VERSION}-deb.tar.gz 'https://releases.jfrog.io/artifactory/jfrog-xray/xray-deb/'${XRAY_VERSION}'/jfrog-xray-'${XRAY_VERSION}'-deb.tar.gz' \ >> /var/log/download-xray.log 2>&1 + tar -xvf jfrog-xray-${XRAY_VERSION}-deb.tar.gz rm jfrog-xray-${XRAY_VERSION}-deb.tar.gz cd jfrog-xray-${XRAY_VERSION}-deb