echo 'Starting DNS Automation Demo' stage('clone git repo') { node { git url: 'https://github.com/f5devcentral/f5-dns-automation-demo-12-1-x.git', branch:'master' } } stage('enable dns sync') { node { dir ('lib') { sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action enable_sync' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action add_datacenter --datacenter ' + params.dc1 + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action add_datacenter --datacenter ' + params.dc2 + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action add_server --datacenter ' + params.dc1 + ' --server_name bigip1 --server_ip=' + params.bigip1_selfip + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action add_server --datacenter ' + params.dc2 + ' --server_name bigip2 --server_ip=' + params.bigip2_selfip + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action save_config' } } } stage('gtm add') { node { dir ('lib') { sh 'sleep 3' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action gtm_add --peer_host=' + params.bigip1 + ' --peer_selfip ' + params.bigip1_selfip + '' sh 'sleep 3' } } } stage('additional dns setup') { node { dir ('lib') { sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_dns_cache' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action create_dns_cache' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_external_dns_profile' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action create_external_dns_profile' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_internal_dns_profile' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action create_internal_dns_profile' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_external_dns_listener --listener_ip ' + params.bigip1_dns_listener + '' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action create_external_dns_listener --listener_ip ' + params.bigip2_dns_listener + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_internal_dns_listener --listener_ip ' + params.bigip1_dns_listener + ' --internal_network ' + params.internal_network + '' sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action create_internal_dns_listener --listener_ip ' + params.bigip2_dns_listener + ' --internal_network ' + params.internal_network + '' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action save_config' sh 'sleep 3' } } } stage('Import App Services Template') { node { dir ('lib') { parallel ( bigip1: { sh 'python iapps/import_template_bigip.py --impl iapps/iapp.tcl --apl iapps/iapp.apl ' + params.bigip1 + ' appsvcs_integration_v2.0.003' }, bigip2: { sh 'python iapps/import_template_bigip.py --impl iapps/iapp.tcl --apl iapps/iapp.apl ' + params.bigip2 + ' appsvcs_integration_v2.0.003' } ) } } } stage('Deploy App Services Template') { node { dir ('lib') { parallel ( bigip1: {sh 'python iapps/deploy_iapp_bigip.py -r ' + params.bigip1 + ' iapps/sample_http.json --strings pool__addr=' + params.bigip1_external_vs + ' --pool_members=' + params.bigip1_pools + ' --iapp_name external_vs'}, bigip2: {sh 'python iapps/deploy_iapp_bigip.py -r ' + params.bigip2 + ' iapps/sample_http.json --strings pool__addr=' + params.bigip2_external_vs + ' --pool_members=' + params.bigip2_pools + ' --iapp_name external_vs'} ) parallel ( bigip1: {sh 'python iapps/deploy_iapp_bigip.py -r ' + params.bigip1 + ' iapps/sample_http.json --strings pool__addr=' + params.bigip1_internal_vs + ' --pool_members=' + params.bigip1_pools + ' --iapp_name internal_vs'}, bigip2: {sh 'python iapps/deploy_iapp_bigip.py -r ' + params.bigip2 + ' iapps/sample_http.json --strings pool__addr=' + params.bigip2_internal_vs + ' --pool_members=' + params.bigip2_pools + ' --iapp_name internal_vs'} ) parallel ( bigip1: {sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action save_config'}, bigip2: {sh 'python bigip_dns_helper.py --host=' + params.bigip2 + ' --action save_config'} ) sh 'sleep 3' } } } stage('DNS Configuration') { node { dir ('lib') { sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_vs --vip ' + params.bigip1_external_vs + ':80 --vip_translate ' + params.bigip1_external_vs + ':80 --vs_name external_vs --server_name bigip1' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_vs --vip ' + params.bigip1_internal_vs + ':80 --vip_translate ' + params.bigip1_internal_vs + ':80 --vs_name internal_vs --server_name bigip1' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_vs --vip ' + params.bigip2_external_vs + ':80 --vip_translate ' + params.bigip2_external_vs + ':80 --vs_name external_vs --server_name bigip2' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_vs --vip ' + params.bigip2_internal_vs + ':80 --vip_translate ' + params.bigip2_internal_vs + ':80 --vs_name internal_vs --server_name bigip2' sh 'sleep 3' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_pool --name external_pool' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_pool --name internal_pool' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_pool_members --name external_pool --vs_name bigip1:external_vs,bigip2:external_vs' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_pool_members --name internal_pool --vs_name bigip1:internal_vs,bigip2:internal_vs' sh 'sleep 3' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action create_wideip --name ' + params.wideip + ' --pool external_pool,internal_pool' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_region --name internal_network --internal_network ' + params.region_internal_network + '' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_region --name region_1 --internal_network ' + params.region1 + '' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_region --name region_2 --internal_network ' + params.region2 + '' sh 'sleep 3' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_topology_record --name "ldns: region /Common/internal_network server: pool /Common/internal_pool"' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_topology_record --name "ldns: not region /Common/internal_network server: pool /Common/external_pool"' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_topology_record --name "ldns: region /Common/region_1 server: region /Common/region_1"' sh 'python bigip_dns_helper.py --host ' + params.bigip1 + ' --action create_topology_record --name "ldns: region /Common/region_2 server: region /Common/region_2"' sh 'python bigip_dns_helper.py --host ' + params.bigip2 + ' --action create_topology_record --name "ldns: region /Common/region_1 server: region /Common/region_1"' sh 'python bigip_dns_helper.py --host ' + params.bigip2 + ' --action create_topology_record --name "ldns: region /Common/region_2 server: region /Common/region_2"' sh 'sleep 3' sh 'python bigip_dns_helper.py --host=' + params.bigip1 + ' --action save_config' } } } stage('Verify Configuration') { node { dir ('f5-udf-2.0') { sh 'sleep 30' sh 'python test-external.py ' + params.external_server sh 'python test-internal.py ' + params.server1 + ' US-EAST-1D' sh 'python test-internal.py ' + params.server2 + ' US-EAST-1E' } } }