diff options
author | Narinder Gupta <narinder.gupta@canonical.com> | 2015-12-09 14:04:46 -0600 |
---|---|---|
committer | Narinder Gupta <narinder.gupta@canonical.com> | 2015-12-09 15:18:49 -0600 |
commit | f80c82fd5f3369e4c91d5e3836d2a68969912e27 (patch) | |
tree | 6aebccaaf5aa65dadcc2e466ae0f47bf04b0d889 /ci | |
parent | d28fd85ebdd3c5c4a39d4c8a04a6707da2ed3f48 (diff) |
added support for maas deployment for juniper lab.
modified deploy.sh to resolve CI issue.
Change-Id: Ifb0f2aaa6806289d2d5c4b493815dda89478a942
Diffstat (limited to 'ci')
-rwxr-xr-x | ci/02-maasdeploy.sh | 3 | ||||
-rwxr-xr-x | ci/deploy.sh | 17 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/compute-interfaces.host | 24 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/control-interfaces.host | 24 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/deployment.yaml | 235 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/environments.yaml | 40 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/interfaces.host | 24 | ||||
-rw-r--r-- | ci/maas/juniper/pod1/lxc-add-more-interfaces | 35 |
8 files changed, 393 insertions, 9 deletions
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 <<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"
|