added support for maas deployment for juniper lab. 63/4163/3
authorNarinder Gupta <narinder.gupta@canonical.com>
Wed, 9 Dec 2015 20:04:46 +0000 (14:04 -0600)
committerNarinder Gupta <narinder.gupta@canonical.com>
Wed, 9 Dec 2015 21:18:49 +0000 (15:18 -0600)
modified deploy.sh to resolve CI issue.

Change-Id: Ifb0f2aaa6806289d2d5c4b493815dda89478a942

ci/02-maasdeploy.sh
ci/deploy.sh
ci/maas/juniper/pod1/compute-interfaces.host [new file with mode: 0644]
ci/maas/juniper/pod1/control-interfaces.host [new file with mode: 0644]
ci/maas/juniper/pod1/deployment.yaml [new file with mode: 0644]
ci/maas/juniper/pod1/environments.yaml [new file with mode: 0644]
ci/maas/juniper/pod1/interfaces.host [new file with mode: 0644]
ci/maas/juniper/pod1/lxc-add-more-interfaces [new file with mode: 0644]

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