diff options
-rw-r--r-- | boot/bind_options | 2 | ||||
-rw-r--r-- | boot/dcae2_install.sh | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | boot/dcae2_vm_init.sh | 136 | ||||
-rw-r--r-- | boot/dns_install.sh | 7 | ||||
-rw-r--r-- | boot/named.conf.options | 3 | ||||
-rw-r--r-- | boot/sdnc_vm_init.sh | 3 | ||||
-rwxr-xr-x | boot/vfc_vm_init.sh | 4 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack.env | 12 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack.yaml | 96 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack_float.env | 2 | ||||
-rw-r--r-- | heat/ONAP/onap_openstack_nofloat.env | 2 | ||||
-rw-r--r-- | heat/ONAP/onap_rackspace.env | 2 | ||||
-rw-r--r-- | vnfs/vCPE/kea-sdnc-notify-mod/etc/kea-dhcp4.conf.example | 8 | ||||
-rw-r--r-- | vnfs/vCPE/scripts/kea-dhcp4.conf | 9 | ||||
-rw-r--r-- | vnfs/vCPE/scripts/kea-dhcp4_no_hook.conf | 14 |
15 files changed, 200 insertions, 102 deletions
diff --git a/boot/bind_options b/boot/bind_options index 8ef7cc08..740ffbd3 100644 --- a/boot/bind_options +++ b/boot/bind_options @@ -10,8 +10,8 @@ options { allow-transfer { none; }; # disable zone transfers by default forwarders { + dns_forwarder; external_dns; - 8.8.8.8; 8.8.4.4; }; diff --git a/boot/dcae2_install.sh b/boot/dcae2_install.sh index c1dbaa7a..99cfd34d 100644 --- a/boot/dcae2_install.sh +++ b/boot/dcae2_install.sh @@ -103,6 +103,7 @@ chmod 777 /opt/app/config/key rm -rf /opt/app/inputs-templates mkdir -p /opt/app/inputs-templates wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/inputs.yaml +wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/cdapinputs.yaml wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/phinputs.yaml wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/dhinputs.yaml wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/invinputs.yaml @@ -111,6 +112,7 @@ wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositor wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/he-ip.yaml wget -P /opt/app/inputs-templates https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.blueprints/releases/input-templates/hr-ip.yaml + # generate blueprint input files pip install jinja2 wget https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.deployments/releases/scripts/detemplate-bpinputs.py && (python detemplate-bpinputs.py /opt/config /opt/app/inputs-templates /opt/app/config; rm detemplate-bpinputs.py) diff --git a/boot/dcae2_vm_init.sh b/boot/dcae2_vm_init.sh index d5df44e4..0d9bebce 100644..100755 --- a/boot/dcae2_vm_init.sh +++ b/boot/dcae2_vm_init.sh @@ -160,20 +160,18 @@ register_multicloud_pod25dns_with_aai() local CLOUD_ENV local CLOUD_IDENTITY_URL local DNSAAS_SERVICE_URL - local DNSAAS_USERNAME - local DNSAAS_PASSWORD - local DNSAAS_TENANT_ID + local DNSAAS_USERNAME='demo' + local DNSAAS_PASSWORD='onapdemo' - CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" + CLOUD_REGION="$(cat /opt/config/dnsaas_region.txt)" CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" MCIP="$(cat /opt/config/openo_ip_addr.txt)" CLOUD_IDENTITY_URL="http://${MCIP}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION}/identity/v2.0" local RESPCODE DNSAAS_SERVICE_URL="$(cat /opt/config/dnsaas_keystone_url.txt)" - DNSAAS_USERNAME="$(cat /opt/config/dnsaas_username.txt)" - DNSAAS_PASSWORD="$(cat /opt/config/dnsaas_password.txt)" - DNSAAS_TENANT_ID="$(cat /opt/config/dnsaas_tenant_id.txt)" + # a tenant of the same name must be set up on the Deisgnate providing OpenStack + DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" cat >"/tmp/${CLOUD_OWNER}_${CLOUD_REGION}.json" <<EOL { "cloud-owner" : "$CLOUD_OWNER", @@ -190,7 +188,7 @@ register_multicloud_pod25dns_with_aai() { "esr-system-info-id": "532ac032-e996-41f2-84ed-9c7a1766eb30", "cloud-domain": "Default", - "default-tenant" : "$DNSAAS_TENANT_ID", + "default-tenant" : "$DNSAAS_TENANT_NAME", "user-name" : "$DNSAAS_USERNAME", "password" : "$DNSAAS_PASSWORD", "service-url" : "$DNSAAS_SERVICE_URL", @@ -234,24 +232,34 @@ register_multicloud_pod25_with_aai() local CLOUD_OWNER='pod25' local CLOUD_VERSION='titanium_cloud' local CLOUD_REGION + local DNSAAS_CLOUD_REGION local CLOUD_ENV local MCIP local CLOUD_IDENTITY_URL local KEYSTONE_URL local USERNAME local PASSWORD - local TENANT_ID + local TENANT_NAME CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" + DNSAAS_CLOUD_REGION="$(cat /opt/config/dnsaas_region.txt)" CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" MCIP="$(cat /opt/config/openo_ip_addr.txt)" CLOUD_IDENTITY_URL="http://${MCIP}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION}/identity/v2.0" KEYSTONE_URL="$(cat /opt/config/openstack_keystone_url.txt)" + if [[ "$KEYSTONE_URL" == */v3 ]]; then + echo "$KEYSTONE_URL" + elif [[ "$KEYSTONE_URL" == */v2.0 ]]; then + echo "$KEYSTONE_URL" + else + KEYSTONE_URL="${KEYSTONE_URL}/v3" + echo "$KEYSTONE_URL" + fi USERNAME="$(cat /opt/config/openstack_user.txt)" PASSWORD="$(cat /opt/config/openstack_password.txt)" - TENANT_ID="$(cat /opt/config/tenant_id.txt)" + TENANT_NAME="$(cat /opt/config/tenant_name.txt)" cat >"/tmp/${CLOUD_OWNER}_${CLOUD_REGION}.json" <<EOL -{ +{ "cloud-owner" : "$CLOUD_OWNER", "cloud-region-id" : "$CLOUD_REGION", "cloud-region-version" : "$CLOUD_VERSION", @@ -261,13 +269,13 @@ register_multicloud_pod25_with_aai() "identity-url": "$CLOUD_IDENTITY_URL", "owner-defined-type" : "owner-defined-type", "sriov-automation" : false, - "cloud-extra-info" : "{\"epa-caps\":{\"huge_page\":\"true\",\"cpu_pinning\":\"true\",\"cpu_thread_policy\":\"true\",\"numa_aware\":\"true\",\"sriov\":\"true\",\"dpdk_vswitch\":\"true\",\"rdt\":\"false\",\"numa_locality_pci\":\"true\"},\"dns-delegate\":{\"cloud-owner\":\"pod25dns\",\"cloud-region-id\":\"RegionOne\"}}", + "cloud-extra-info" : "{\"epa-caps\":{\"huge_page\":\"true\",\"cpu_pinning\":\"true\",\"cpu_thread_policy\":\"true\",\"numa_aware\":\"true\",\"sriov\":\"true\",\"dpdk_vswitch\":\"true\",\"rdt\":\"false\",\"numa_locality_pci\":\"true\"},\"dns-delegate\":{\"cloud-owner\":\"pod25dns\",\"cloud-region-id\":\"${DNSAAS_CLOUD_REGION}\"}}", "esr-system-info-list" : { "esr-system-info" : [ - { + { "esr-system-info-id": "432ac032-e996-41f2-84ed-9c7a1766eb29", "cloud-domain": "Default", - "default-tenant" : "$TENANT_ID", + "default-tenant" : "$TENANT_NAME", "user-name" : "$USERNAME", "password" : "$PASSWORD", "service-url" : "$KEYSTONE_URL", @@ -342,8 +350,7 @@ register_dns_zone() local CLOUD_REGION local CLOUD_VERSION='titanium_cloud' local CLOUD_ENV - local DCAE_ZONE - local DNSAAS_TENANT_ID + local DNSAAS_TENANT_NAME local MCHOST local MCURL local MCMETHOD='-X POST' @@ -358,44 +365,64 @@ register_dns_zone() CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" if [ -z "$1" ]; then DCAE_ZONE="$(cat /opt/config/dcae_zone.txt)"; else DCAE_ZONE="$1"; fi - DNSAAS_TENANT_ID="$(cat /opt/config/dnsaas_tenant_id.txt)" + DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" MCHOST=$(cat /opt/config/openo_ip_addr.txt) MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" + MCDATA='-d "{\"auth\":{\"tenantName\": \"'${DNSAAS_TENANT_NAME}'\"}}"' MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} - MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}:9005/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} + + ### zone operations + # because all VM's use 10.0.100.1 as their first DNS server, the designate DNS server as seocnd, we need to use a + # domain outside of the first DNS server's domain + local DCAE_DOMAIN + local ZONENAME + DCAE_DOMAIN="$(cat /opt/config/dcae_domain.txt)" + ZONENAME="${DCAE_ZONE}.${DCAE_DOMAIN}." + + echo "===> Register DNS zone $ZONENAME under $DNSAAS_TENANT_NAME" ### Get Token local TOKEN MCURL="${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" - TOKEN=$(call_api_for_response_header "$MCURL" "$MCMETHOD" "$MCRESP" "$MCHEADERS" "$MCAUTH" "$MCDATA" | grep 'X-Subject-Token' | sed "s/^.*: //") - #TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"tenantName\": \"${DNSAAS_TENANT_ID}\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") + echo "=====> Getting token from $MCURL" + #TOKEN=$(call_api_for_response_header "$MCURL" "$MCMETHOD" "$MCRESP" "$MCHEADERS" "$MCAUTH" "$MCDATA" | grep 'X-Subject-Token' | sed "s/^.*: //") + TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MCURL}" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") echo "Received Keystone token $TOKEN from $MCURL" + if [ -z "$TOKEN" ]; then + echo "Faile to acquire token for creating DNS zone. Exit" + exit 1 + fi - ### zone operations - local ZONENAME - ZONENAME="${DCAE_ZONE}.dcaeg2.simpledemo.onap.org." + local PROJECTID + PROJECTID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |grep 'project_id' |sed 's/^.*"project_id":"\([a-zA-Z0-9-]*\)",.*$/\1/') + if [ ! -z "$PROJECTID" ]; then + ### query the zone with zone id + echo "!!!!!!> zone $ZONENAME already registered by project $PROJECTID" + else + ### create a zone + echo "=====> No zone of same name $ZONENAME found, creating new zone " + curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X POST -d "{ \"name\": \"$ZONENAME\", \"email\": \"lji@research.att.com\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" + fi ### list zones - curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" - - ### create a zone - echo "Creating zone $ZONENAME" - curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X POST -d "{ \"name\": \"$ZONENAME\", \"email\": \"lji@research.att.com\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" + echo "=====> Zone listing" + curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" | python -m json.tool ### query the zone with zone name - curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" + #echo "=====> Querying zone $ZONENAME" + #curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" ### export ZONE id local ZONEID - ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') - echo "After creation, zone $ZONENAME ID is $ZONEID" + ZONEID=$(curl -v -sb -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |grep 'id' |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') + echo "=====> After creation, zone $ZONENAME ID is $ZONEID" ### query the zone with zone id - echo "Test listing zone info for zone $ZONENAME" - curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones/${ZONEID}" + #echo "=====> Querying zone $ZONENAME by ID $ZONEID" + #curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones/${ZONEID}" } @@ -406,7 +433,7 @@ delete_dns_zone() local CLOUD_VERSION='titanium_cloud' local CLOUD_ENV local DCAE_ZONE - local DNSAAS_TENANT_ID + local DNSAAS_TENANT_NAME local MCHOST local MCURL local MCMETHOD='-X GET' @@ -419,19 +446,22 @@ delete_dns_zone() CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" DCAE_ZONE="$(cat /opt/config/dcae_zone.txt)" - DNSAAS_TENANT_ID="$(cat /opt/config/dnsaas_tenant_id.txt)" + DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" MCHOST=$(cat /opt/config/openo_ip_addr.txt) MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" + local DCAE_DOMAIN + local ZONENAME + DCAE_DOMAIN="$(cat /opt/config/dcae_domain.txt)" + ZONENAME="${DCAE_ZONE}.${DCAE_DOMAIN}." + + MCDATA='"{\"auth\":{\"tenantName\": \"'${DNSAAS_TENANT_NAME}'\"}}"' MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} - MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}:9005/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} ### Get Token local TOKEN - TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"tenantName\": \"${DNSAAS_TENANT_ID}\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") + TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") - local ZONENAME - ZONENAME="$1.dcae.simpledemo.onap.org." local ZONEID ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') @@ -445,7 +475,7 @@ list_dns_zone() local CLOUD_VERSION='titanium_cloud' local CLOUD_ENV local DCAE_ZONE - local DNSAAS_TENANT_ID + local DNSAAS_TENANT_NAME local MCHOST local MCURL local MCMETHOD='-X GET' @@ -458,19 +488,21 @@ list_dns_zone() CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" DCAE_ZONE="$(cat /opt/config/dcae_zone.txt)" - DNSAAS_TENANT_ID="$(cat /opt/config/dnsaas_tenant_id.txt)" + DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" MCHOST=$(cat /opt/config/openo_ip_addr.txt) MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" + MCDATA='"{\"auth\":{\"tenantName\": \"'${DNSAAS_TENANT_NAME}'\"}}"' MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} - MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}:9005/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} ### Get Token local TOKEN - TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"tenantName\": \"${DNSAAS_TENANT_ID}\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") + TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") + local DCAE_DOMAIN local ZONENAME - ZONENAME="$1.dcae.simpledemo.onap.org." + DCAE_DOMAIN="$(cat /opt/config/dcae_domain.txt)" + ZONENAME="${DCAE_ZONE}.${DCAE_DOMAIN}." local ZONEID ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') @@ -485,14 +517,14 @@ NEXUS_USER=$(cat /opt/config/nexus_username.txt) NEXUS_PASSWORD=$(cat /opt/config/nexus_password.txt) NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt) DOCKER_VERSION=$(cat /opt/config/docker_version.txt) -ZONE=$(cat /opt/config/dcae_zone.txt) -RANDSTR=$(cat /opt/config/rand_str.txt) +# use rand_str as zone +ZONE=$(cat /opt/config/rand_str.txt) MYFLOATIP=$(cat /opt/config/dcae_float_ip.txt) MYLOCALIP=$(cat /opt/config/dcae_ip_addr.txt) -TENANTNAME=$(cat /opt/config/tenant_name.txt) -OSUSERNAME=$(cat /opt/config/openstack_user.txt) -OSPASSWORD=$(cat /opt/config/openstack_password.txt) +# start docker image pulling while we are waiting for A&AI to come online +docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" +docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" && docker pull nginx & ######################################### # Wait for then register with A&AI @@ -528,8 +560,8 @@ rm -f /opt/config/runtime.ip.consul rm -f /opt/config/runtime.ip.cm -docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" -docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" +#docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" +#docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" docker run -d --name boot -v /opt/app/config:/opt/app/installer/config -e "LOCATION=$ZONE" "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" @@ -540,7 +572,7 @@ while [ ! -f /opt/app/config/runtime.ip.consul ]; do echo "."; sleep 30; done # start proxy for consul's health check -CONSULIP=$(head -1 /opt/config/runtime.ip.consul | sed 's/[[:space:]]//g') +CONSULIP=$(head -1 /opt/app/config/runtime.ip.consul | sed 's/[[:space:]]//g') echo "Consul is available at $CONSULIP" cat >./nginx.conf <<EOL diff --git a/boot/dns_install.sh b/boot/dns_install.sh index 2985bb7d..5d3a9a3f 100644 --- a/boot/dns_install.sh +++ b/boot/dns_install.sh @@ -5,6 +5,7 @@ NEXUS_REPO=$(cat /opt/config/nexus_repo.txt) ARTIFACTS_VERSION=$(cat /opt/config/artifacts_version.txt) CLOUD_ENV=$(cat /opt/config/cloud_env.txt) + if [[ $CLOUD_ENV != "rackspace" ]] then # Add host name to /etc/host to avoid warnings in openstack images @@ -64,9 +65,12 @@ curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/$ZONE_ONAP -o /etc/bin curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/$OPTIONS_FILE -o /etc/bind/named.conf.options curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/named.conf.local -o /etc/bind/named.conf.local + + # Set the private IP address of each ONAP VM in the Bind configuration in OpenStack deployments if [[ $CLOUD_ENV != "rackspace" ]] then + sed -i "s/dns_forwarder/"$(cat /opt/config/dns_forwarder.txt)"/g" /etc/bind/named.conf.options sed -i "s/dns_ip_addr/"$(cat /opt/config/dns_ip_addr.txt)"/g" /etc/bind/named.conf.options sed -i "s/external_dns/"$(cat /opt/config/external_dns.txt)"/g" /etc/bind/named.conf.options sed -i "s/aai1_ip_addr/"$(cat /opt/config/aai1_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org @@ -107,4 +111,5 @@ fi # Configure Bind modprobe ip_gre sed -i "s/OPTIONS=.*/OPTIONS=\"-4 -u bind\"/g" /etc/default/bind9 -service bind9 restart
\ No newline at end of file +service bind9 restart + diff --git a/boot/named.conf.options b/boot/named.conf.options index a09931cb..23feebc5 100644 --- a/boot/named.conf.options +++ b/boot/named.conf.options @@ -10,8 +10,7 @@ options { allow-transfer { none; }; # disable zone transfers by default forwarders { - 8.8.8.8; - 8.8.4.4; + dns_forwarder; }; // If there is a firewall between you and nameservers you want diff --git a/boot/sdnc_vm_init.sh b/boot/sdnc_vm_init.sh index 5e48a96f..968207b7 100644 --- a/boot/sdnc_vm_init.sh +++ b/boot/sdnc_vm_init.sh @@ -23,4 +23,7 @@ docker tag $NEXUS_DOCKER_REPO/onap/admportal-sdnc-image:$DOCKER_IMAGE_VERSION on docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$DGBUILDER_IMAGE_VERSION docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$DGBUILDER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest +docker pull $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-ueb-listener-image:latest + /opt/docker/docker-compose up -d diff --git a/boot/vfc_vm_init.sh b/boot/vfc_vm_init.sh index 28ef67e0..7d94604c 100755 --- a/boot/vfc_vm_init.sh +++ b/boot/vfc_vm_init.sh @@ -49,7 +49,7 @@ docker run -i -t -d --name vfc_catalog -p 8806:8806 -e MSB_ADDR=$OPENO_IP:80 $NE docker run -i -t -d --name vfc_emsdriver -p 8206:8206 -e MSB_ADDR=$OPENO_IP:80 -e VES_ADDR=$DCAE_COLL_IP:8080 -e VES_AUTHINFO="":"" $NEXUS_DOCKER_REPO/onap/vfc/emsdriver:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_gvnfmdriver -p 8484:8484 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/gvnfmdriver:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_jujudriver -p 8483:8483 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/jujudriver:$DOCKER_IMAGE_VERSION -docker run -i -t -d --name vfc_svnfm_huawei -p 8482:8482 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$DOCKER_IMAGE_VERSION +docker run -i -t -d --name vfc_svnfm_huawei -p 8482:8482 -p 8443:8443 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_nslcm -p 8403:8403 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nslcm:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_resmanagement -p 8480:8480 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/resmanagement:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_vnflcm -p 8801:8801 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnflcm:$DOCKER_IMAGE_VERSION @@ -57,4 +57,4 @@ docker run -i -t -d --name vfc_vnfmgr -p 8803:8803 -e MSB_ADDR=$OPENO_IP:80 $NEX docker run -i -t -d --name vfc_vnfres -p 8802:8802 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnfres:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_ztesdncdriver -p 8411:8411 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztesdncdriver:$DOCKER_IMAGE_VERSION docker run -i -t -d --name vfc_ztevmanagerdriver -p 8410:8410 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztevmanagerdriver:$DOCKER_IMAGE_VERSION -docker run -i -t -d --name vfc_svnfm_nokia -p 8486:8486 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$DOCKER_IMAGE_VERSION
\ No newline at end of file +docker run -i -t -d --name vfc_svnfm_nokia -p 8486:8486 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$DOCKER_IMAGE_VERSION diff --git a/heat/ONAP/onap_openstack.env b/heat/ONAP/onap_openstack.env index aad2d1e1..88c6518c 100644 --- a/heat/ONAP/onap_openstack.env +++ b/heat/ONAP/onap_openstack.env @@ -6,7 +6,9 @@ parameters: # # ############################################## - public_net_id: PUT YOUR NETWORK ID/NAME HERE + public_net_id: PUT YOUR NETWORK ID HERE + + public_net_name: PUT YOUR NETWORK NAME HERE ubuntu_1404_image: PUT THE UBUNTU 14.04 IMAGE NAME HERE @@ -42,6 +44,8 @@ parameters: openstack_tenant_id: PUT YOUR OPENSTACK PROJECT ID HERE + openstack_tenant_name: PUT YOUR OPENSTACK PROJECT NAME HERE + openstack_username: PUT YOUR OPENSTACK USERNAME HERE openstack_api_key: PUT YOUR OPENSTACK PASSWORD HERE @@ -65,6 +69,7 @@ parameters: dns_list: PUT THE ADDRESS OF THE EXTERNAL DNS HERE (e.g. a comma-separated list of IP addresses in your /etc/resolv.conf in UNIX-based Operating Systems) external_dns: PUT THE FIRST ADDRESS OF THE EXTERNAL DNS LIST HERE + dns_forwarder: PUT THE IP OF DNS FORWARDER FOR ONAP DEPLOYMENT'S OWN DNS SERVER oam_network_cidr: 10.0.0.0/16 ### Private IP addresses ### @@ -118,14 +123,13 @@ parameters: dnsaas_config_enabled: PUT WHETHER TO USE PROXYED DESIGNATE dnsaas_region: PUT THE DESIGNATE PROVIDING OPENSTACK'S REGION HERE - dnsaas_tenant_id: PUT THE DESIGNATE PROVIDING OPENSTACK'S DEFAULT TENANT HERE dnsaas_keystone_url: PUT THE DESIGNATE PROVIDING OPENSTACK'S KEYSTONE URL HERE + dnsaas_tenant_name: PUT THE TENANT NAME IN THE DESIGNATE PROVIDING OPENSTACK HERE (FOR R1 USE THE SAME AS openstack_tenant_name) dnsaas_username: PUT THE DESIGNATE PROVIDING OPENSTACK'S USERNAME HERE dnsaas_password: PUT THE DESIGNATE PROVIDING OPENSTACK'S PASSWORD HERE dcae_keystone_url: PUT THE MULTIVIM PROVIDED KEYSTONE API URL HERE dcae_centos_7_image: PUT THE CENTOS7 VM IMAGE NAME HERE FOR DCAE LAUNCHED CENTOS7 VM - dcae_security_group: PUT THE SECURITY GROUP NAME HERE FOR DCAE LAUNCHED VMS - dcae_key_name: PUT THE ON BOARDED KEY-PAIR NAME HERE FOR DCAE LAUNCHED VMS + dcae_domain: PUT THE NAME OF DOMAIN THAT DCAE VMS REGISTER UNDER dcae_public_key: PUT THE PUBLIC KEY OF A KEYPAIR HERE TO BE USED BETWEEN DCAE LAUNCHED VMS dcae_private_key: PUT THE SECRET KEY OF A KEYPAIR HERE TO BE USED BETWEEN DCAE LAUNCHED VMS diff --git a/heat/ONAP/onap_openstack.yaml b/heat/ONAP/onap_openstack.yaml index 97f80581..2c4ef766 100644 --- a/heat/ONAP/onap_openstack.yaml +++ b/heat/ONAP/onap_openstack.yaml @@ -42,7 +42,11 @@ parameters: public_net_id: type: string - description: Public network for floating IP address allocation + description: The ID of the Public network for floating IP address allocation + + public_net_name: + type: string + description: The name of the Public network referred by public_net_id ubuntu_1404_image: type: string @@ -112,6 +116,10 @@ parameters: type: string description: OpenStack tenant ID + openstack_tenant_name: + type: string + description: OpenStack tenant name (matching with the openstack_tenant_id) + openstack_username: type: string description: OpenStack username @@ -154,6 +162,10 @@ parameters: type: string description: First element of the dns_list for ONAP network + dns_forwarder: + type: string + description: the forwarder address for setting up ONAP's private DNS server + oam_network_cidr: type: string description: CIDR of the OAM ONAP network @@ -224,10 +236,6 @@ parameters: type: string description: the region of the cloud instance providing the Designate DNS as a Service - dnsaas_tenant_id: - type: string - description: the (default) tenant id of the cloud instance providing the Designate DNS as a Service - dnsaas_keystone_url: type: string description: the keystone URL of the cloud instance providing the Designate DNS as a Service @@ -240,13 +248,13 @@ parameters: type: string description: the password of the cloud instance providing the Designate DNS as a Service - dcae_keystone_url: + dnsaas_tenant_name: type: string - description: the keystone URL for DCAE to use (via MultiCloud) + description: the name of the tenant in the cloud instance providing the Designate DNS as a Service - dcae_key_name: + dcae_keystone_url: type: string - description: the name of the keypair on-boarded with Cloud + description: the keystone URL for DCAE to use (via MultiCloud) dcae_private_key: type: string @@ -260,10 +268,9 @@ parameters: type: string description: the id/name of the CentOS 7 VM imange - dcae_security_group: + dcae_domain: type: string - description: the security group to be used by DCAE VMs - + description: the top level domain to register DCAE VMs (the zone will be random-str.dcae_domain) # dcae_base_environment: # type: string @@ -411,7 +418,6 @@ resources: properties: length: 4 - # Public key used to access ONAP components vm_key: type: OS::Nova::KeyPair @@ -425,6 +431,36 @@ resources: public_key: { get_param: pub_key } save_private_key: false + + # ONAP security group + onap_sg: + type: OS::Neutron::SecurityGroup + properties: + name: + str_replace: + template: base_rand + params: + base: onap_sg + rand: { get_resource: random-str } + description: security group used by ONAP + rules: + # All egress traffic + - direction: egress + ethertype: IPv4 + - direction: egress + ethertype: IPv6 + # ingress traffic + # ICMP + - protocol: icmp + - protocol: udp + port_range_min: 1 + port_range_max: 65535 + - protocol: tcp + port_range_min: 1 + port_range_max: 65535 + + + # ONAP management private network oam_onap: type: OS::Neutron::Net @@ -511,6 +547,7 @@ resources: __openo_ip_addr__: { get_param: openo_ip_addr } __cloud_env__: { get_param: cloud_env } __external_dns__: { get_param: external_dns } + __dns_forwarder__: { get_param: dns_forwarder } template: | #!/bin/bash @@ -537,6 +574,7 @@ resources: echo "__clamp_ip_addr__" > /opt/config/clamp_ip_addr.txt echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt echo "__external_dns__" > /opt/config/external_dns.txt + echo "__dns_forwarder__" > /opt/config/dns_forwarder.txt # Download and run install script curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dns_install.sh -o /opt/dns_install.sh @@ -1693,7 +1731,7 @@ resources: type: OS::Nova::Server properties: image: { get_param: ubuntu_1604_image } - flavor: { get_param: flavor_medium } + flavor: { get_param: flavor_small } name: str_replace: template: base-dcae-bootstrap @@ -1702,6 +1740,8 @@ resources: key_name: { get_resource: vm_key } networks: - port: { get_resource: dcae_c_private_port } + #security_groups: + # - { get_resource: onap_sg } user_data_format: RAW user_data: str_replace: @@ -1722,6 +1762,8 @@ resources: __dcae_float_ip__: { get_attr: [dcae_c_floating_ip, floating_ip_address] } __dns_ip_addr__: { get_param: dns_ip_addr } __external_dns__: { get_param: external_dns } + __dns_forwarder__: { get_param: dns_forwarder } + __dcae_domain__: { get_param: dcae_domain } # conf for VMs DCAE is to bringup __openstack_keystone_url__: { get_param: keystone_url } __dcae_keystone_url__: { get_param: dcae_keystone_url } @@ -1729,22 +1771,28 @@ resources: __dcaeos_keystone_url__: { get_param: dcae_keystone_url } __dcaeos_region__: { get_param: openstack_region } __dcaeos_tenant_id__: { get_param: openstack_tenant_id } + __dcaeos_tenant_name__: { get_param: openstack_tenant_name } + __dcaeos_security_group__: + str_replace: + template: 'onap_sg_rand' + params: + rand: { get_resource: random-str } + #__dcaeos_security_group__: { get_attr: [onap_sg, name] } __dcaeos_username__: { get_param: openstack_username } __dcaeos_password__: { get_param: openstack_api_key } - __dcaeos_key_name__: { get_attr: [vm_key, name] } - __dcaeos_key_name__: { get_param: dcae_key_name } + __dcaeos_key_name__: { get_resource: vm_key } __dcaeos_public_key__: { get_param: dcae_public_key } __dcaeos_private_key__: { get_param: dcae_private_key } __dcaeos_private_network_name__: { get_attr: [oam_onap, name] } - __dcaeos_public_network_name__: { get_param: public_net_id } + __dcaeos_public_network_name__: { get_param: public_net_name } __dcaeos_ubuntu_1604_image__: { get_param: ubuntu_1604_image } __dcaeos_centos_7_image__: { get_param: dcae_centos_7_image } - __dcaeos_security_group__ : { get_param: dcae_security_group } __dcaeos_flavor_id__: { get_param: flavor_medium } + __dcaeos_flavor_id_cdap__: { get_param: flavor_xlarge } __dcaeos_dnsaas_config_enabled__: { get_param: dnsaas_config_enabled } __dcaeos_dnsaas_region__: { get_param: dnsaas_region } - __dcaeos_dnsaas_tenant_id__: { get_param: dnsaas_tenant_id} __dcaeos_dnsaas_keystone_url__: { get_param: dnsaas_keystone_url } + __dnsaas_tenant_name__: { get_param: dnsaas_tenant_name } __dcaeos_dnsaas_username__: { get_param: dnsaas_username } __dcaeos_dnsaas_password__: { get_param: dnsaas_password } # fixed private IPs @@ -1786,28 +1834,32 @@ resources: echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt echo "__external_dns__" > /opt/config/external_dns.txt + echo "__dns_forwarder__" > /opt/config/dns_forwarder.txt + echo "__dcae_domain__" > /opt/config/dcae_domain.txt # conf for the OpenStack env where DCAE is deployed echo "__openstack_keystone_url__" > /opt/config/openstack_keystone_url.txt echo "__dcaeos_cloud_env__" > /opt/config/cloud_env.txt echo "__dcaeos_keystone_url__" > /opt/config/keystone_url.txt echo "__dcaeos_region__" > /opt/config/openstack_region.txt echo "__dcaeos_tenant_id__" > /opt/config/tenant_id.txt - echo "__dcaeos_tenant_id__" > /opt/config/tenant_name.txt + echo "__dcaeos_tenant_name__" > /opt/config/tenant_name.txt echo "__dcaeos_username__" > /opt/config/openstack_user.txt echo "__dcaeos_password__" > /opt/config/openstack_password.txt echo "__dcaeos_key_name__" > /opt/config/key_name.txt echo "__dcaeos_public_key__" > /opt/config/pub_key.txt echo "__dcaeos_private_key__" > /opt/config/priv_key echo "__dcaeos_private_network_name__" > /opt/config/openstack_private_network_name.txt + echo "__dcaeos_public_network_name__" > /opt/config/public_net_name.txt echo "__dcaeos_public_network_name__" > /opt/config/public_net_id.txt echo "__dcaeos_ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt echo "__dcaeos_centos_7_image__" > /opt/config/centos_7_image.txt echo "__dcaeos_security_group__" > /opt/config/security_group.txt echo "__dcaeos_flavor_id__" > /opt/config/flavor_id.txt + echo "__dcaeos_flavor_id_cdap__" > /opt/config/flavor_id_cdap.txt echo "__dcaeos_dnsaas_config_enabled__" > /opt/config/dnsaas_config_enabled.txt echo "__dcaeos_dnsaas_region__" > /opt/config/dnsaas_region.txt - echo "__dcaeos_dnsaas_tenant_id__" > /opt/config/dnsaas_tenant_id.txt echo "__dcaeos_dnsaas_keystone_url__" > /opt/config/dnsaas_keystone_url.txt + echo "__dnsaas_tenant_name__" > /opt/config/dnsaas_tenant_name.txt echo "__dcaeos_dnsaas_username__" > /opt/config/dnsaas_username.txt echo "__dcaeos_dnsaas_password__" > /opt/config/dnsaas_password.txt # fixed private IP addresses of other ONAP components @@ -1831,4 +1883,4 @@ resources: curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dcae2_install.sh -o /opt/dcae2_install.sh cd /opt chmod +x dcae2_install.sh - ./dcae2_install.sh + ./dcae2_install.sh > /tmp/dcae2_install.log 2>&1 diff --git a/heat/ONAP/onap_openstack_float.env b/heat/ONAP/onap_openstack_float.env index e970b7f4..3349f396 100644 --- a/heat/ONAP/onap_openstack_float.env +++ b/heat/ONAP/onap_openstack_float.env @@ -158,7 +158,7 @@ parameters: mr_branch: master dcae_branch: master policy_branch: master - portal_branch: master + portal_branch: release-1.3.0 robot_branch: master sdc_branch: master sdnc_branch: master diff --git a/heat/ONAP/onap_openstack_nofloat.env b/heat/ONAP/onap_openstack_nofloat.env index 1b9cbd91..e2d3b766 100644 --- a/heat/ONAP/onap_openstack_nofloat.env +++ b/heat/ONAP/onap_openstack_nofloat.env @@ -130,7 +130,7 @@ parameters: mr_branch: master dcae_branch: master policy_branch: master - portal_branch: master + portal_branch: release-1.3.0 robot_branch: master sdc_branch: master sdnc_branch: master diff --git a/heat/ONAP/onap_rackspace.env b/heat/ONAP/onap_rackspace.env index 82e31eff..d8c8de0e 100644 --- a/heat/ONAP/onap_rackspace.env +++ b/heat/ONAP/onap_rackspace.env @@ -83,7 +83,7 @@ parameters: mr_branch: master dcae_branch: master policy_branch: master - portal_branch: master + portal_branch: release-1.3.0 robot_branch: master sdc_branch: master sdnc_branch: master diff --git a/vnfs/vCPE/kea-sdnc-notify-mod/etc/kea-dhcp4.conf.example b/vnfs/vCPE/kea-sdnc-notify-mod/etc/kea-dhcp4.conf.example index 9faaf870..b5f1a697 100644 --- a/vnfs/vCPE/kea-sdnc-notify-mod/etc/kea-dhcp4.conf.example +++ b/vnfs/vCPE/kea-sdnc-notify-mod/etc/kea-dhcp4.conf.example @@ -36,10 +36,10 @@ "pools" : [ { "pool": "10.3.0.2 - 10.3.0.255"} ], "next-server": "10.3.0.1", "option-data": [ - {"name": "tftp-server-name", - "data": "10.4.0.1"}, - {"name": "boot-file-name", - "data": "/dev/null"} + { + "name": "routers", + "data": "10.3.0.1" + } ] } ] diff --git a/vnfs/vCPE/scripts/kea-dhcp4.conf b/vnfs/vCPE/scripts/kea-dhcp4.conf index 508c0e62..d965072b 100644 --- a/vnfs/vCPE/scripts/kea-dhcp4.conf +++ b/vnfs/vCPE/scripts/kea-dhcp4.conf @@ -36,11 +36,12 @@ "pools" : [ { "pool": "10.3.0.2 - 10.3.0.255"} ], "next-server": "10.3.0.1", "option-data": [ - {"name": "tftp-server-name", - "data": "10.4.0.1"}, - {"name": "boot-file-name", - "data": "/dev/null"} + { + "name": "routers", + "data": "10.3.0.1" + } ] + } ] diff --git a/vnfs/vCPE/scripts/kea-dhcp4_no_hook.conf b/vnfs/vCPE/scripts/kea-dhcp4_no_hook.conf index 3e2287d1..170b8f3c 100644 --- a/vnfs/vCPE/scripts/kea-dhcp4_no_hook.conf +++ b/vnfs/vCPE/scripts/kea-dhcp4_no_hook.conf @@ -26,14 +26,14 @@ # Also keep in mind that if kea doesn't receive the desired values for some # reason, these values will be sent to the client. "subnet4": [ - { "subnet": "10.2.0.0/24", - "pools" : [ { "pool": "10.2.0.2 - 10.2.0.255"} ], - "next-server": "10.2.0.1", + { "subnet": "10.3.0.0/24", + "pools" : [ { "pool": "10.3.0.2 - 10.3.0.255"} ], + "next-server": "10.3.0.1", "option-data": [ - {"name": "tftp-server-name", - "data": "10.2.0.1"}, - {"name": "boot-file-name", - "data": "/dev/null"} + { + "name": "routers", + "data": "10.3.0.1" + } ] } ] |