You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hetzner-ansible/smardigo/provisioning/script/ansible-start.groovy

37 lines
1.3 KiB
Groovy

def env = [
scope_id: contextScopeId,
process_instance_id: execution.getProcessInstanceId(),
smardigo_management_action: smardigoManagementAction,
cluster_name: cluster.name,
cluster_service: cluster.service,
cluster_services: [cluster.service] + execution.getVariable('connect-features'),
cluster_size: cluster.size,
stage: cluster.stage,
current_realm_name: tenant.key,
current_realm_display_name: tenant.name,
uploaded_file: execution.getVariable('databaseBackupFilename'),
tenant_id: tenant.key
]
def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass'
def ansibleEnvironment= ' -e \"'
env.each { key, val ->
if (val instanceof List) {
ansibleEnvironment+= key + '=['
val.each { _val ->
ansibleEnvironment+='\'' + _val + '\','
}
ansibleEnvironment = ansibleEnvironment.substring(0, ansibleEnvironment.length() - 1);
ansibleEnvironment+='] '
} else {
ansibleEnvironment+= key + '=\'' + val + '\' '
}
}
ansibleEnvironment = ansibleEnvironment.substring(0, ansibleEnvironment.length() - 1);
ansibleEnvironment+= '\"'
ansibleCommand += ansibleEnvironment
processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet')
processes.byId(contextScopeId, contextProcessId).createComment(ansibleCommand)
ansibleCommand