modified to include the default deployment of MAAS on virbr0 in 05/3905/1
authorNarinder Gupta <narinder.gupta@canonical.com>
Thu, 3 Dec 2015 04:43:18 +0000 (22:43 -0600)
committerNarinder Gupta <narinder.gupta@canonical.com>
Thu, 3 Dec 2015 04:43:18 +0000 (22:43 -0600)
case no lab is provided. modified maas deployment creating the
default storage pool.

Change-Id: Ic48b95222c01e5b5f2984777776c306dbd226832

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

index d5e0262..b41db55 100755 (executable)
@@ -16,7 +16,7 @@ case "$1" in
         cp maas/att/virpod1/deployment.yaml ./deployment.yaml
         ;;
     * )
-        cp maas/intel/pod5/deployment.yaml ./deployment.yaml
+        cp maas/default/deployment.yaml ./deployment.yaml
         ;;
 esac
 
@@ -30,15 +30,7 @@ if [ ! -e /var/lib/libvirt/images ]; then
 
     sudo apt-get install libvirt-bin -y
     sudo adduser ubuntu libvirtd
-    sudo virsh pool-define /dev/stdin <<EOF
-<pool type='dir'>
-  <name>default</name>
-  <target>
-    <path>/var/lib/libvirt/images</path>
-  </target>
-</pool>
-EOF
-
+    sudo virsh pool-define-as default --type dir --target /var/lib/libvirt/images/
     sudo virsh pool-start default
     sudo virsh pool-autostart default
 
@@ -52,7 +44,7 @@ sudo apt-get install openssh-server git maas-deployer juju juju-deployer maas-cl
 juju init -f
 
 cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
-maas-deployer -c deployment.yaml -d --force
+sudo maas-deployer -c deployment.yaml -d --force
 
 echo "... Deployment of maas finish ...."
 
index 8941cdc..0c6fc89 100755 (executable)
@@ -7,8 +7,8 @@ set -ex
 
 opnfvsdn=odl
 opnfvtype=nonha
-openstack=kilo
-opnfvlab=intelpod5
+openstack=liberty
+opnfvlab=default
 opnfvrel=b
 
 read_config() {
@@ -22,7 +22,7 @@ read_config() {
 usage() { echo "Usage: $0 [-s <odl|opencontrail>]
                          [-t <nonha|ha|tip>] 
                          [-o <juno|kilo|liberty>]
-                         [-l <intelpod5>]
+                         [-l <default|intelpod5>]
                          [-r <a|b>]" 1>&2 exit 1; } 
 
 while getopts ":s:t:o:l:h:r:" opt; do
@@ -51,10 +51,9 @@ while getopts ":s:t:o:l:h:r:" opt; do
 done
 
 deploy_dep() {
-    sudo apt-get install git -y 
     sudo apt-add-repository ppa:juju/stable -y
     sudo apt-get update
-    sudo apt-get install juju juju-deployer -y
+    sudo apt-get install juju git juju-deployer -y
     juju init -f
     cp environments.yaml ~/.juju/
 }
index 031c86f..d500676 100755 (executable)
@@ -2,12 +2,12 @@
 # deployed and automated.
 opnfv:
     # Defines the openstack release needs to be get installed.
-    release:A
+    release:B
     # Defines the openstack release needs to be get installed.
-    openstack:kilo
+    openstack:liberty
     # Defines the sdn plugin to be get installed.
     sdn:odl
     # Defines the ha type to be get installed.
     type:nonha
     # Defines the lab where release to be get installed.
-    lab:intellab5
+    lab:default
diff --git a/ci/maas/default/deployment.yaml b/ci/maas/default/deployment.yaml
new file mode 100644 (file)
index 0000000..d0c9e6c
--- /dev/null
@@ -0,0 +1,137 @@
+# This file defines the deployment for the MAAS environment which is to be
+# deployed and automated.
+demo-maas:
+    # Contains the virtual machine parameters for creating the Juju bootstrap
+    # node virtual machine
+    juju-bootstrap:
+        name: bootstrap
+        interfaces: ['bridge=virbr0,model=virtio']
+        memory: 2048
+        vcpus: 2
+        arch: amd64
+        pool: default
+        disk_size: 20G
+        sticky_ip_address:
+            requested_address: 192.168.122.5
+
+    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
+        interfaces: ['bridge=virbr0,model=virtio']
+        memory: 4096
+        vcpus: 2
+        arch: amd64
+        pool: default
+        disk_size: 60G
+
+        # Apt http proxy setting(s)
+        #apt_http_proxy:
+
+        # Package sources. These will be used on the MAAS controller.
+        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@192.168.122.1/system
+
+        # Defines the IP Address that the configuration script will use to
+        # to access the MAAS controller via SSH.
+        ip_address: 192.168.122.2
+
+        # 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: 192.168.122.1
+            maas_name: automaas
+            # 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 192.168.122.2
+              netmask 255.255.255.0
+              network 192.168.122.0
+              broadcast 192.168.122.255
+              gateway 192.168.122.1
+              dns-nameservers 192.168.122.1 127.0.0.1
+
+        # See https://maas.ubuntu.com/docs/maascli.html#node-groups for
+        # description and full list of supported options.
+        # NOTE: interfaces are added using the node_group_interfaces section
+        #       and only one node_group can be created by this bundle.
+        #       Additional node groups can be added post deployment.
+        #node_group:
+        #    # This is the cluster DNS name.
+        #    name: maas
+
+        # 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: 192.168.122.2
+              subnet_mask: 255.255.255.0
+              broadcast_ip: 192.168.122.255
+              router_ip: 192.168.122.1
+              static_range:
+                  low: 192.168.122.51
+                  high: 192.168.122.60
+              dynamic_range:
+                  low: 192.168.122.5
+                  high: 192.168.122.50
+
+        # Physical nodes to be added to the MAAS cluster. Nodes will be
+        # configured, commissioned and put into the Ready state so
+        # they are ready to be deployed to.
+        #nodes:
+        #    - name: node1
+        #      tags: api
+        #      architecture: amd64/generic
+        #      mac_addresses:
+        #          - "38:63:bb:43:b8:9c"
+        #      power:
+        #          type: ipmi
+        #          address: 10.0.1.1
+        #          user: maas
+        #          pass: passw0rd
+        #          driver: LAN_2_0
+        #      sticky_ip_address:
+        #          mac_address: "38:63:bb:43:b8:9c"
+        #          requested_address: 192.168.122.6
+
diff --git a/ci/maas/default/interfaces.host b/ci/maas/default/interfaces.host
new file mode 100644 (file)
index 0000000..e837b2f
--- /dev/null
@@ -0,0 +1,12 @@
+#### original juju generated part ####
+auto lo
+
+# Primary interface (defining the default route)
+iface eth0 inet manual
+
+# Bridge to use for LXC/KVM containers
+auto juju-br0
+iface juju-br0 inet dhcp
+    bridge_ports eth0
+######################################
+
diff --git a/ci/maas/default/lxc-add-more-interfaces b/ci/maas/default/lxc-add-more-interfaces
new file mode 100644 (file)
index 0000000..d9512c3
--- /dev/null
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+set -e
+set -u
+
+cat <<EOF >> "$LXC_CONFIG_FILE"
+
+EOF
+
+USERDATA="$LXC_ROOTFS_PATH/var/lib/cloud/seed/nocloud-net/user-data"
+
+additional_interfaces="
+- |
+  cat <<EOF >> /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 <<EOF > /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"