From b4ee809c40d27d3323bb19b4edfd188ebd0535d6 Mon Sep 17 00:00:00 2001 From: Narinder Gupta Date: Wed, 2 Dec 2015 22:43:18 -0600 Subject: modified to include the default deployment of MAAS on virbr0 in case no lab is provided. modified maas deployment creating the default storage pool. Change-Id: Ic48b95222c01e5b5f2984777776c306dbd226832 --- ci/maas/default/deployment.yaml | 137 ++++++++++++++++++++++++++++++++ ci/maas/default/interfaces.host | 12 +++ ci/maas/default/lxc-add-more-interfaces | 35 ++++++++ 3 files changed, 184 insertions(+) create mode 100644 ci/maas/default/deployment.yaml create mode 100644 ci/maas/default/interfaces.host create mode 100644 ci/maas/default/lxc-add-more-interfaces (limited to 'ci/maas') diff --git a/ci/maas/default/deployment.yaml b/ci/maas/default/deployment.yaml new file mode 100644 index 00000000..d0c9e6c4 --- /dev/null +++ b/ci/maas/default/deployment.yaml @@ -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 index 00000000..e837b2f1 --- /dev/null +++ b/ci/maas/default/interfaces.host @@ -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 index 00000000..d9512c31 --- /dev/null +++ b/ci/maas/default/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" -- cgit 1.2.3-korg