def cluster_features = ['connect'] + execution.getVariable('connect-features') def env = [ cluster_features: cluster_features, cluster_name: cluster.name, cluster_service: cluster.service, cluster_size: cluster.size, connect_image_version: binding.hasVariable('connect') ? connect.version : 'latest', current_realm_name: tenant.key, current_realm_display_name: tenant.name, process_instance_id: execution.getProcessInstanceId(), scope_id: contextScopeId, smardigo_management_action: smardigoManagementAction, stage: cluster.stage, tenant_id: tenant.key, connect_client_admin_username: connect_admin_username, connect_client_admin_password: connect_admin_password, connect_realm_admin_username: keycloak_admin_username, connect_realm_admin_password: keycloak_admin_password, wordpress_admin_username: wordpress_admin_username, wordpress_admin_password: wordpress_admin_password ] if (binding.hasVariable('extraVariables')) { env << extraVariables } def filename = 'xvars-' + smardigoManagementAction + '-' + execution.getProcessInstanceId() + '.yml' def ansibleCommand= 'ansible-playbook ' + smardigoManagementAction + '.yml --vault-password-file ~/vault-pass-' + envStage + ' -e "@' + filename + '"' def ansibleVariables= 'cat < ' + filename + '\n' ansibleVariables+= '---\n' env.each { key, val -> if (val instanceof List) { ansibleVariables+= key + ':\n- \'' + val.join('\'\n- \'') + '\'\n' } else { ansibleVariables+= key + ': \'' + val + '\'\n' } } ansibleVariables+= 'EOT' processes.byId(contextScopeId, contextProcessId).createComment(comment + ' gestartet') processes.byId(contextScopeId, contextProcessId).createComment(ansibleVariables + '\n' + ansibleCommand) ansibleCommand