From: Narinder Gupta Date: Wed, 9 Dec 2015 20:04:46 +0000 (-0600) Subject: added support for maas deployment for juniper lab. X-Git-Tag: brahmaputra.1.0~114 X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F63%2F4163%2F3;p=joid.git added support for maas deployment for juniper lab. modified deploy.sh to resolve CI issue. Change-Id: Ifb0f2aaa6806289d2d5c4b493815dda89478a942 --- diff --git a/ci/02-maasdeploy.sh b/ci/02-maasdeploy.sh index b41db550..3a000a9c 100755 --- a/ci/02-maasdeploy.sh +++ b/ci/02-maasdeploy.sh @@ -15,6 +15,9 @@ case "$1" in 'attvirpod1' ) cp maas/att/virpod1/deployment.yaml ./deployment.yaml ;; + 'juniperpod1' ) + cp maas/juniper/pod1/deployment.yaml ./deployment.yaml + ;; * ) cp maas/default/deployment.yaml ./deployment.yaml ;; diff --git a/ci/deploy.sh b/ci/deploy.sh index 81f39b6a..92d17e20 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -87,14 +87,13 @@ check_status() { configOpenrc() { - cat <<-EOF - export OS_USERNAME=$1 - export OS_PASSWORD=$2 - export OS_TENANT_NAME=$3 - export OS_AUTH_URL=$4 - export OS_REGION_NAME=$5 - EOF -} + echo" " > ./cloud/admin-openrc + echo "export OS_USERNAME=$1" >> ./cloud/admin-openrc + echo "export OS_PASSWORD=$2" >> ./cloud/admin-openrc + echo "export OS_TENANT_NAME=$3" >> ./cloud/admin-openrc + echo "export OS_AUTH_URL=$4" >> ./cloud/admin-openrc + echo "export OS_REGION_NAME=$5" >> ./cloud/admin-openrc + } unitAddress() { @@ -106,7 +105,7 @@ createopenrc() mkdir -m 0700 -p cloud controller_address=$(unitAddress keystone 0) - configOpenrc admin openstack admin http://$controller_address:5000/v2.0 Canonical > cloud/admin-openrc + configOpenrc admin openstack admin http://$controller_address:5000/v2.0 Canonical chmod 0600 cloud/admin-openrc } diff --git a/ci/maas/juniper/pod1/compute-interfaces.host b/ci/maas/juniper/pod1/compute-interfaces.host new file mode 100644 index 00000000..afa009c9 --- /dev/null +++ b/ci/maas/juniper/pod1/compute-interfaces.host @@ -0,0 +1,24 @@ +#### original juju generated part #### +auto lo + +# Primary interface (defining the default route) +iface p2p1 inet manual + +# Bridge to use for LXC/KVM containers +auto juju-br0 +iface juju-br0 inet dhcp + bridge_ports p2p1 +###################################### + +auto p2p2 +iface p2p2 inet manual + +# The public network interface + +auto brPublic +iface brPublic inet dhcp + bridge_ports p2p2 + bridge_stp off + bridge_fd 0 + bridge_maxwait 0 + diff --git a/ci/maas/juniper/pod1/control-interfaces.host b/ci/maas/juniper/pod1/control-interfaces.host new file mode 100644 index 00000000..95ff6713 --- /dev/null +++ b/ci/maas/juniper/pod1/control-interfaces.host @@ -0,0 +1,24 @@ +#### original juju generated part #### +auto lo + +# Primary interface (defining the default route) +iface p1p1 inet manual + +# Bridge to use for LXC/KVM containers +auto juju-br0 +iface juju-br0 inet dhcp + bridge_ports p1p1 +###################################### + +auto p1p2 +iface p1p2 inet manual + +# The public network interface + +auto brPublic +iface brPublic inet dhcp + bridge_ports p1p2 + bridge_stp off + bridge_fd 0 + bridge_maxwait 0 + diff --git a/ci/maas/juniper/pod1/deployment.yaml b/ci/maas/juniper/pod1/deployment.yaml new file mode 100644 index 00000000..bd84147e --- /dev/null +++ b/ci/maas/juniper/pod1/deployment.yaml @@ -0,0 +1,235 @@ +# This file defines the deployment for the MAAS environment which is to be +# deployed and automated. +demo-maas: + maas: + # Defines the general setup for the MAAS environment, including the + # username and password for the host as well as the MAAS server. + user: ubuntu + password: ubuntu + + # Contains the virtual machine parameters for creating the MAAS virtual + # server. Here you can configure the name of the virsh domain, the + # parameters for how the network is attached. + name: opnfv-maas-juniper + interfaces: ['bridge=brAdm,model=virtio','bridge=brPublic,model=virtio'] + #interfaces: ['bridge=brAdm,model=virtio','bridge=brData,model=virtio','bridge=brPublic,model=virtio'] + memory: 4096 + vcpus: 1 + arch: amd64 + pool: default + disk_size: 160G + + # Apt http proxy setting(s) + apt_http_proxy: + + apt_sources: + - ppa:maas/stable + - ppa:juju/stable + + # Virsh power settings + # Specifies the uri and keys to use for virsh power control of the + # juju virtual machine. If the uri is omitted, the value for the + # --remote is used. If no power settings are desired, then do not + # supply the virsh block. + virsh: + rsa_priv_key: /home/ubuntu/.ssh/id_rsa + rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub + uri: qemu+ssh://ubuntu@172.16.50.51/system + + # Defines the IP Address that the configuration script will use to + # to access the MAAS controller via SSH. + ip_address: 172.16.50.50 + + # This section allows the user to set a series of options on the + # MAAS server itself. The list of config options can be found in + # the upstream MAAS documentation: + # - http://maas.ubuntu.com/docs/api.html#maas-server + settings: + main_archive: http://us.archive.ubuntu.com/ubuntu + upstream_dns: 8.8.8.8 + maas_name: juniperpod1 + # kernel_opts: "console=tty0 console=ttyS1,115200n8" + # ntp_server: ntp.ubuntu.com + + # This section is used to define the networking parameters for when + # the node first comes up. It is fed into the meta-data cloud-init + # configuration and is used to configure the networking piece of the + # service. The contents of this section are written directly to the + # /etc/network/interfaces file. + # + # Please note, this is slightly different than the + # node-group-interfaces section below. This will configure the + # machine's networking params, and the node-group-interfaces will + # configure the maas node-group interfaces which is used for + # controlling the dhcp, dns, etc. + network_config: | + auto lo + iface lo inet loopback + + auto eth0 + iface eth0 inet static + address 172.16.50.50 + netmask 255.255.255.0 + network 172.16.50.0 + broadcast 172.16.50.255 + #gateway x.x.x.x + dns-nameservers 8.8.8.8 127.0.0.1 + + auto eth1 + iface eth1 inet static + address 10.10.15.50 + netmask 255.255.240.0 + network 10.10.0.0 + broadcast 10.10.15.255 + gateway 10.10.10.1 + + #auto eth2 + #iface eth2 inet static + #address 10.2.65.3 + #netmask 255.255.255.0 + #network 10.2.65.0 + #broadcast 10.2.65.255 + + # The node-group-interfaces section is used to configure the MAAS + # network interfaces. Basic configuration is supported, such as which + # device should be bound, the range of IP addresses, etc. + # Note: this may contain the special identifiers: + # ${maas_net} - the first 3 octets of the ipv4 address + # ${maas_ip} - the ip address of the MAAS controller + node_group_ifaces: + - device: eth0 + ip: 172.16.50.50 + subnet_mask: 255.255.255.0 + broadcast_ip: 172.16.50.255 + router_ip: 172.16.50.50 + static_range: + low: 172.16.50.60 + high: 172.16.50.129 + dynamic_range: + low: 172.16.50.130 + high: 172.16.50.200 + #- device: eth1 + # ip: 10.10.15.50 + # subnet_mask: 255.255.240.0 + # broadcast_ip: 10.10.15.255 + # router_ip: 10.10.10.1 + #management: 1 + # static_range: + # low: 10.10.15.60 + # high: 10.10.15.129 + # dynamic_range: + # low: 10.10.15.130 + # high: 10.10.15.200 + #- device: eth2 + # ip: 10.2.65.3 + # subnet_mask: 255.255.255.0 + # broadcast_ip: 10.2.65.255 + # management: 1 + # static_range: + # low: 10.2.65.20 + # high: 10.2.65.100 + # dynamic_range: + # low: 10.2.65.101 + # high: 10.2.65.200 + # Defines the physical nodes which are added to the MAAS cluster + # controller upon startup of the node. + + # Juniper pod1: server 2, 4 and 6 have 32GB RAM and 4 cores. server 3 + # and 5 have 64GB RAM and 12 cores. Make server 2, 4 and 6 as control + # nodes and 3 and 5 as compute nodes. + nodes: + - name: 2-R4N4B2-control + tags: control + architecture: amd64/generic + mac_addresses: + - "0c:c4:7a:16:2a:70" + power: + type: ipmi + address: 10.10.7.92 + user: ADMIN + pass: ADMIN + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: 3-R4N3B1-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "0c:c4:7a:53:57:c2" + power: + type: ipmi + address: 10.10.7.84 + user: ADMIN + pass: ADMIN + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: 4-R4N4B4-control + tags: control + architecture: amd64/generic + mac_addresses: + - "0c:c4:7a:16:22:9c" + power: + type: ipmi + address: 10.10.7.95 + user: ADMIN + pass: ADMIN + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: 5-R4N3B2-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "0c:c4:7a:53:57:16" + power: + type: ipmi + address: 10.10.7.85 + user: ADMIN + pass: ADMIN + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: 6-R4N4B3-control + tags: control + architecture: amd64/generic + mac_addresses: + - "0c:c4:7a:16:2a:0a" + power: + type: ipmi + address: 10.10.7.93 + user: ADMIN + pass: ADMIN + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + +# - name: jenkins-slave +# tags: jenkins-slave +# architecture: amd64/generic +# mac_addresses: +# - "52:54:00:f0:5c:53" +# power: +# type: virsh +# address: qemu+ssh://ubuntu@10.4.1.1/system + + # Contains the virtual machine parameters for creating the Juju bootstrap + # node virtual machine + juju-bootstrap: + name: bootstrap + interfaces: ['bridge=brAdm,model=virtio','bridge=brPublic,model=virtio'] + #interfaces: ['bridge=brAdm,model=virtio','bridge=brData,model=virtio','bridge=brPublic,model=virtio'] + memory: 4096 + vcpus: 2 + arch: amd64 + pool: default + disk_size: 120G diff --git a/ci/maas/juniper/pod1/environments.yaml b/ci/maas/juniper/pod1/environments.yaml new file mode 100644 index 00000000..5897f32b --- /dev/null +++ b/ci/maas/juniper/pod1/environments.yaml @@ -0,0 +1,40 @@ +default: demo-maas + +environments: + + # https://juju.ubuntu.com/docs/config-maas.html + demo-maas: + type: maas + + # maas-server specifies the location of the MAAS server. It must + # specify the base path. + # + maas-server: 'http://10.4.1.2/MAAS' + + # maas-oauth holds the OAuth credentials from MAAS. + # + maas-oauth: 'HyacKVwxBVE9xwmJW7:CVwUpERLN3fDUbkUra:ETW88KVJxDHQA3kqmZgghUQnzanSFwH4' + + # maas-server bootstrap ssh connection options + # + + # bootstrap-timeout time to wait contacting a state server, in seconds. + bootstrap-timeout: 1800 + + # Whether or not to refresh the list of available updates for an + # OS. The default option of true is recommended for use in + # production systems, but disabling this can speed up local + # deployments for development or testing. + # + enable-os-refresh-update: false + + # Whether or not to perform OS upgrades when machines are + # provisioned. The default option of true is recommended for use + # in production systems, but disabling this can speed up local + # deployments for development or testing. + # + enable-os-upgrade: false + + + admin-secret: admin + default-series: trusty diff --git a/ci/maas/juniper/pod1/interfaces.host b/ci/maas/juniper/pod1/interfaces.host new file mode 100644 index 00000000..95ff6713 --- /dev/null +++ b/ci/maas/juniper/pod1/interfaces.host @@ -0,0 +1,24 @@ +#### original juju generated part #### +auto lo + +# Primary interface (defining the default route) +iface p1p1 inet manual + +# Bridge to use for LXC/KVM containers +auto juju-br0 +iface juju-br0 inet dhcp + bridge_ports p1p1 +###################################### + +auto p1p2 +iface p1p2 inet manual + +# The public network interface + +auto brPublic +iface brPublic inet dhcp + bridge_ports p1p2 + bridge_stp off + bridge_fd 0 + bridge_maxwait 0 + diff --git a/ci/maas/juniper/pod1/lxc-add-more-interfaces b/ci/maas/juniper/pod1/lxc-add-more-interfaces new file mode 100644 index 00000000..64519097 --- /dev/null +++ b/ci/maas/juniper/pod1/lxc-add-more-interfaces @@ -0,0 +1,35 @@ +#!/bin/bash + +set -e +set -u + +cat <> "$LXC_CONFIG_FILE" + +EOF + +USERDATA="$LXC_ROOTFS_PATH/var/lib/cloud/seed/nocloud-net/user-data" + +additional_interfaces=" +- | + cat <> /etc/network/interfaces.d/additional-interfaces + ## added by juju charm + ## those interfaces will be brought up by the upstart job as /etc/init/additional-interfaces.conf + ## LP: #1483932 + EOF +- machine_agent=\$(hostname | sed -e 's/^juju-/jujud-/') +- | + cat < /etc/init/additional-interfaces.conf + ## added by juju charm + ## LP: #1483932 + start on started \${machine_agent} + + script + sleep 10 + ifup -a -i /etc/network/interfaces.d/additional-interfaces + end script + EOF +" +additional_interfaces=$(echo "$additional_interfaces" | sed -e 's/$/\\n/' | tr -d '\n') + +sed -i.orig -e "s@^runcmd:@\0$additional_interfaces@" \ + "$USERDATA"