diff options
-rwxr-xr-x | ci/02-maasdeploy.sh | 17 | ||||
-rw-r--r-- | ci/deploy.py | 173 | ||||
-rwxr-xr-x | ci/maas/deployment.yaml | 94 | ||||
-rwxr-xr-x | labconfig/intel/pod5/deployment.yaml | 257 | ||||
-rw-r--r-- | labconfig/intel/pod5/labconfig.yaml | 81 | ||||
-rwxr-xr-x | labconfig/intel/pod6/deployment.yaml | 94 | ||||
-rw-r--r-- | labconfig/intel/pod6/labconfig.yaml | 81 | ||||
-rwxr-xr-x | labconfig/intel/pod9/deployment.yaml | 230 | ||||
-rw-r--r-- | labconfig/intel/pod9/labconfig.yaml | 63 | ||||
-rw-r--r-- | labconfig/labconfig.yaml | 81 |
10 files changed, 1134 insertions, 37 deletions
diff --git a/ci/02-maasdeploy.sh b/ci/02-maasdeploy.sh index be978667..20357803 100755 --- a/ci/02-maasdeploy.sh +++ b/ci/02-maasdeploy.sh @@ -4,12 +4,17 @@ set -ex virtinstall=0 +cp maas/deployment.yaml ./deployment.yaml +cp ../labconfig/intel/pod6/labconfig.yaml ./ + case "$1" in 'intelpod5' ) cp maas/intel/pod5/deployment.yaml ./deployment.yaml ;; 'intelpod6' ) - cp maas/intel/pod6/deployment.yaml ./deployment.yaml + cp ../labconfig/intel/pod6/labconfig.yaml ./ + #to be removed later once converted for all labs. + python deploy.py ;; 'intelpod9' ) cp maas/intel/pod9/deployment.yaml ./deployment.yaml @@ -39,9 +44,6 @@ case "$1" in ;; esac -#just make sure the ssh keys added into maas for the current user -sed --i "s@/home/ubuntu@$HOME@g" ./deployment.yaml -sed --i "s@qemu+ssh://ubuntu@qemu+ssh://$USER@g" ./deployment.yaml #make sure no password asked during the deployment. @@ -145,6 +147,13 @@ crnodevlanint() { done } +#convert labconfig file to deployment.yaml to consume by MAAS. +#python deploy.py + +#just make sure the ssh keys added into maas for the current user +sed --i "s@/home/ubuntu@$HOME@g" ./deployment.yaml +sed --i "s@qemu+ssh://ubuntu@qemu+ssh://$USER@g" ./deployment.yaml + sudo maas-deployer -c deployment.yaml -d --force sudo chown $USER:$USER environments.yaml diff --git a/ci/deploy.py b/ci/deploy.py index d52bd609..c1a714d8 100644 --- a/ci/deploy.py +++ b/ci/deploy.py @@ -1,12 +1,24 @@ import yaml import pprint - -with open('example.yaml', 'r') as f: - doc = yaml.load(f) -txt = doc["nodes"][0]["power"] - -with open('deployment.yaml', 'r') as ft: - doc1 = yaml.load(ft) +import socket +import fcntl +import struct +import os +import getpass + +def get_ip_address(ifname): + s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) + return socket.inet_ntoa(fcntl.ioctl( + s.fileno(), + 0x8915, # SIOCGIFADDR + struct.pack('256s', ifname[:15]) + )[20:24]) + +with open('labconfig.yaml', 'r') as labf: + labcfg = yaml.load(labf) + +with open('deployment.yaml', 'r') as opnfvf: + opnfvcfg = yaml.load(opnfvf) def setInDict(dataDict, mapList, value): getFromDict(dataDict, mapList[:-1])[mapList[-1]] = value @@ -14,46 +26,141 @@ def setInDict(dataDict, mapList, value): def getFromDict(dataDict, mapList): return reduce(lambda d, k: d[k], mapList, dataDict) -if len(doc["nodes"]) > len(doc1["demo-maas"]["maas"]["nodes"]): - exit 0 +if len(labcfg["labconfig"]["nodes"]) < 3: + print("minimum three nodes are needed for opnfv architecture deployment") + exit() + +# lets modify the maas general settings: + +updns = getFromDict(labcfg, ["labconfig","labsettings","upstream_dns"]) +setInDict(opnfvcfg, ["demo-maas", "maas", "settings", "upstream_dns"], updns) +value = getFromDict(labcfg, ["labconfig","lab_location"]) +setInDict(opnfvcfg, ["demo-maas", "maas", "settings", "maas_name"], value) +setInDict(opnfvcfg, ["demo-maas", "maas", "name"], "opnfv-"+value) + +#lets figure out the interfaces data + +ethbrAdm="" +ethbrAdmin="" c=0 -while c < len(doc["nodes"]): +y=0 +z=0 + +while c < len(labcfg["labconfig"]["bridges"]): + brtype = getFromDict(labcfg, ["labconfig","bridges",c,"type"]) + brname = getFromDict(labcfg, ["labconfig","bridges",c,"bridge"]) + brcidr = getFromDict(labcfg, ["labconfig","bridges",c,"cidr"]) + if brtype == "admin": + ethbrAdmin = getFromDict(labcfg, ["labconfig","bridges",c,"bridge"]) + brgway = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"]) + tmpcidr = brcidr[:-4] + setInDict(opnfvcfg, ["demo-maas", "maas", "ip_address"], tmpcidr+"5") + opnfvcfg["demo-maas"]["maas"]["interfaces"][y] = "bridge="+brname+",model=virtio" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["device"] = "eth"+str(y) + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["ip"] = tmpcidr+"5" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["subnet_mask"] = "255.255.255.0" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["broadcast_ip"] = tmpcidr+"255" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["router_ip"] = brgway + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["low"] = tmpcidr+"50" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["high"] = tmpcidr+"80" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["low"] = tmpcidr+"81" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["high"] = tmpcidr+"250" + opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"][z] = "bridge="+brname+",model=virtio" + ethbrAdm = ('auto lo\n' + ' iface lo inet loopback\n\n' + 'auto eth'+str(y)+'\n' + ' iface eth'+str(y)+' inet static\n' + ' address '+tmpcidr+'5\n' + ' netmask 255.255.255.0\n' + ' gateway '+brgway+'\n' + ' dns-nameservers '+updns+' '+tmpcidr+'5 127.0.0.1\n') + z=z+1 + y=y+1 + elif brtype: + opnfvcfg["demo-maas"]["maas"]["interfaces"].append("bridge="+brname+",model=virtio") + brgway = getFromDict(labcfg, ["labconfig","bridges",c,"gateway"]) + if brtype != "external": + tmpcidr = brcidr[:-4] + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["device"] = "eth"+str(y) + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["ip"] = tmpcidr+"5" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["subnet_mask"] = "255.255.255.0" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["broadcast_ip"] = tmpcidr+"255" + if brgway: + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["router_ip"] = brgway + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["management"] = 1 + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["low"] = tmpcidr+"20" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["static_range"]["high"] = tmpcidr+"150" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["low"] = tmpcidr+"151" + opnfvcfg["demo-maas"]["maas"]["node_group_ifaces"][y]["dynamic_range"]["high"] = tmpcidr+"200" + ethbrAdm = (ethbrAdm+'\n' + 'auto eth'+str(y)+'\n' + ' iface eth'+str(y)+' inet static\n' + ' address '+tmpcidr+'5\n' + ' netmask 255.255.255.0\n') + if brtype == "public": + opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append("bridge="+brname+",model=virtio") + z=z+1 + if brtype == "external": + ipaddress = getFromDict(labcfg, ["labconfig","bridges",c,"ipaddress"]) + ethbrAdm = (ethbrAdm+'\n' + 'auto eth'+str(y)+'\n' + ' iface eth'+str(y)+' inet static\n' + ' address '+ipaddress+'\n' + ' netmask 255.255.255.0\n') + opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append("bridge="+brname+",model=virtio") + z=z+1 + y=y+1 + - value = getFromDict(doc, ["nodes",c, "name"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "name"], value) + c=c+1 - value = getFromDict(doc, ["nodes",c, "tags"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "tags"], value) +setInDict(opnfvcfg, ["demo-maas", "maas", "network_config"], ethbrAdm) - value = getFromDict(doc, ["nodes",c, "arch"]) - if value == "x86_64": - value="amd64/generic" - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "architecture"], value) +# lets modify the maas general settings: +value = get_ip_address(ethbrAdmin) +value = "qemu+ssh://"+getpass.getuser()+"@"+value+"/system" +setInDict(opnfvcfg, ["demo-maas", "maas", "virsh", "uri"], value) - value = getFromDict(doc, ["nodes",c, "mac_address"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "mac_addresses"], value) +#lets insert the node details here: +c=0 - value = getFromDict(doc, ["nodes",c, "power", "type"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "type"], value) +while c < len(labcfg["labconfig"]["nodes"]): + # setup value of name and tags accordigly + value = getFromDict(labcfg, ["labconfig","nodes",c, "type"]) + namevalue = "node" + str(c+1) + "-" + value + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["name"] = namevalue + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["tags"] = value + # setup value of architecture + value = getFromDict(labcfg, ["labconfig","nodes",c, "architecture"]) + if value == "x86_64": + value="amd64/generic" + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["architecture"] = value + + # setup mac_addresses + value = getFromDict(labcfg, ["labconfig","nodes",c, "pxe_mac_address"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["mac_addresses"] = value + + value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "type"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["type"] = value if value == "wakeonlan": - value = getFromDict(doc, ["nodes",c, "power", "mac_address"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "mac_address"], value) + value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "mac_address"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["mac_address"] = value if value == "ipmi": - value = getFromDict(doc, ["nodes",c, "power", "address"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "address"], value) - - value = getFromDict(doc, ["nodes",c, "power", "user"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "user"], value) + value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "address"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["address"] = value + value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "user"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["user"] = value + value = getFromDict(labcfg, ["labconfig","nodes",c, "power", "pass"]) + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["pass"] = value + opnfvcfg["demo-maas"]["maas"]["nodes"][c]["power"]["driver"] = "LAN_2_0" - value = getFromDict(doc, ["nodes",c, "power", "pass"]) - setInDict(doc1, ["demo-maas", "maas", "nodes", c, "power", "pass"], value) c=c+1 -with open('deployment.yaml', 'w') as ft: - yaml.dump(doc1, ft) +with open('deployment.yaml', 'w') as opnfvf: + yaml.dump(opnfvcfg, opnfvf, default_flow_style=False) diff --git a/ci/maas/deployment.yaml b/ci/maas/deployment.yaml new file mode 100755 index 00000000..82f49b81 --- /dev/null +++ b/ci/maas/deployment.yaml @@ -0,0 +1,94 @@ +demo-maas: + juju-bootstrap: + arch: amd64 + disk_size: 120G + interfaces: + - bridge=brAdm,model=virtio + memory: 4096 + name: bootstrap + pool: default + vcpus: 4 + maas: + apt_http_proxy: null + apt_sources: + - ppa:maas/stable + - ppa:juju/stable + arch: amd64 + boot_source: + keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg + selections: + 1: + arches: amd64 + labels: release + os: ubuntu + release: xenial + subarches: '*' + url: http://maas.ubuntu.com/images/ephemeral-v2/releases/ + disk_size: 160G + interfaces: + - bridge=brAdm,model=virtio + ip_address: + memory: 4096 + name: opnfv-intelpod6 + network_config: + node_group_ifaces: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + nodes: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + password: ubuntu + pool: default + release: trusty + settings: + maas_name: + main_archive: http://us.archive.ubuntu.com/ubuntu + upstream_dns: + user: ubuntu + vcpus: 4 + virsh: + rsa_priv_key: /home/ubuntu/.ssh/id_rsa + rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub + uri: diff --git a/labconfig/intel/pod5/deployment.yaml b/labconfig/intel/pod5/deployment.yaml new file mode 100755 index 00000000..be8a7732 --- /dev/null +++ b/labconfig/intel/pod5/deployment.yaml @@ -0,0 +1,257 @@ +# 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-intel + interfaces: ['bridge=brAdm,model=virtio', 'bridge=brData,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio'] + memory: 4096 + vcpus: 4 + arch: amd64 + pool: default + disk_size: 160G + release: trusty + + # Apt http proxy setting(s) + apt_http_proxy: + + apt_sources: + - ppa:maas/stable + - ppa:juju/stable + + boot_source: + url: http://maas.ubuntu.com/images/ephemeral-v2/daily/ + keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg + exclusive: true + selections: + 1: + release: trusty + os: ubuntu + arches: amd64 + subarches: "*" + labels: daily + 2: + release: xenial + os: ubuntu + arches: amd64 + subarches: "*" + labels: daily + + # 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://jenkins@10.5.1.1/system + + # Defines the IP Address that the configuration script will use to + # to access the MAAS controller via SSH. + ip_address: 10.5.1.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: 8.8.8.8 + maas_name: intelpod5 + # 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 10.5.1.2 + netmask 255.255.255.0 + network 10.5.1.0 + broadcast 10.5.1.255 + gateway 10.5.1.1 + dns-nameservers 8.8.8.8 10.5.1.2 127.0.0.1 + + auto eth1 + iface eth1 inet static + address 10.5.12.2 + netmask 255.255.255.0 + + auto eth2 + iface eth2 inet static + address 10.5.15.2 + netmask 255.255.255.0 + + auto eth3 + iface eth3 inet static + address 10.2.117.92 + netmask 255.255.255.0 + #auto lo + #iface lo inet loopback + + #auto eth0 + #iface eth0 inet static + # address 192.168.122.2 + # netmask 255.255.248.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 + + # 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: 10.5.1.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.5.1.255 + router_ip: 10.5.1.1 + static_range: + low: 10.5.1.50 + high: 10.5.1.80 + dynamic_range: + low: 10.5.1.81 + high: 10.5.1.250 + - device: eth1 + ip: 10.5.12.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.5.12.255 + management: 1 + static_range: + low: 10.5.12.20 + high: 10.5.12.150 + dynamic_range: + low: 10.5.12.151 + high: 10.5.12.200 + - device: eth2 + ip: 10.5.15.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.5.15.255 + router_ip: 10.5.15.254 + management: 1 + static_range: + low: 10.5.15.20 + high: 10.5.15.150 + dynamic_range: + low: 10.5.15.151 + high: 10.5.15.200 + + # Defines the physical nodes which are added to the MAAS cluster + # controller upon startup of the node. + nodes: + - name: node1-control + tags: control + architecture: amd64/generic + mac_addresses: + - "00:1e:67:cf:bb:54" + power: + type: ipmi + address: 10.2.117.81 + user: root + pass: root + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 +# + - name: node2-control + tags: control + architecture: amd64/generic + mac_addresses: + - "00:1e:67:cf:b8:93" + power: + type: ipmi + address: 10.2.117.82 + user: root + pass: root + driver: LAN_2_0 + + - name: node3-control + tags: control + architecture: amd64/generic + mac_addresses: + - "00:1e:67:e0:08:7f" + power: + type: ipmi + address: 10.2.117.83 + user: root + pass: root + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: node4-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "00:1e:67:e0:08:b1" + power: + type: ipmi + address: 10.2.117.84 + user: root + pass: root + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: node5-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "00:1e:67:e0:0a:4b" + power: + type: ipmi + address: 10.2.117.85 + user: root + pass: root + 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', 'bridge=brExt,model=virtio'] + memory: 4096 + vcpus: 4 + arch: amd64 + pool: default + disk_size: 120G diff --git a/labconfig/intel/pod5/labconfig.yaml b/labconfig/intel/pod5/labconfig.yaml new file mode 100644 index 00000000..ce1688c6 --- /dev/null +++ b/labconfig/intel/pod5/labconfig.yaml @@ -0,0 +1,81 @@ +labconfig: + lab_location: intelpod5 + bridges: + - type: admin + bridge: brAdm + cidr: 10.5.1.0/24 + gateway: 10.5.1.1 + - type: data + bridge: brData + cidr: 10.5.12.0/24 + gateway: + - type: public + bridge: brPublic + cidr: 10.5.15.0/24 + gateway: 10.5.15.254 + - type: external + bridge: brExt + cidr: + gateway: + ipaddress: 10.2.117.92 + labsettings: + upstream_dns: 8.8.8.8 + nodes: + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:d8:ba:46" + power: + type: ipmi + address: 10.2.117.81 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:0b:72" + power: + type: ipmi + address: 10.2.117.82 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:08:7f" + power: + type: ipmi + address: 10.2.117.83 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:08:b1" + power: + type: ipmi + address: 10.2.117.84 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:0a:4b" + power: + type: ipmi + address: 10.2.117.85 + user: root + pass: root +opnfv: + release: c + distro: trusty + type: nonha + openstack: liberty + sdncontroller: + - type: nosdn + storage: + - type: ceph + disk: /srv/osd + floating-ip-range: + feature: odl_l2 + ext-port: eth5 diff --git a/labconfig/intel/pod6/deployment.yaml b/labconfig/intel/pod6/deployment.yaml new file mode 100755 index 00000000..82f49b81 --- /dev/null +++ b/labconfig/intel/pod6/deployment.yaml @@ -0,0 +1,94 @@ +demo-maas: + juju-bootstrap: + arch: amd64 + disk_size: 120G + interfaces: + - bridge=brAdm,model=virtio + memory: 4096 + name: bootstrap + pool: default + vcpus: 4 + maas: + apt_http_proxy: null + apt_sources: + - ppa:maas/stable + - ppa:juju/stable + arch: amd64 + boot_source: + keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg + selections: + 1: + arches: amd64 + labels: release + os: ubuntu + release: xenial + subarches: '*' + url: http://maas.ubuntu.com/images/ephemeral-v2/releases/ + disk_size: 160G + interfaces: + - bridge=brAdm,model=virtio + ip_address: + memory: 4096 + name: opnfv-intelpod6 + network_config: + node_group_ifaces: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + - broadcast_ip: + dynamic_range: + high: + low: + static_range: + high: + low: + nodes: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + - architecture: + mac_addresses: + - + power: + address: + password: ubuntu + pool: default + release: trusty + settings: + maas_name: + main_archive: http://us.archive.ubuntu.com/ubuntu + upstream_dns: + user: ubuntu + vcpus: 4 + virsh: + rsa_priv_key: /home/ubuntu/.ssh/id_rsa + rsa_pub_key: /home/ubuntu/.ssh/id_rsa.pub + uri: diff --git a/labconfig/intel/pod6/labconfig.yaml b/labconfig/intel/pod6/labconfig.yaml new file mode 100644 index 00000000..52775d78 --- /dev/null +++ b/labconfig/intel/pod6/labconfig.yaml @@ -0,0 +1,81 @@ +labconfig: + lab_location: intelpod6 + bridges: + - type: admin + bridge: brAdm + cidr: 10.6.1.0/24 + gateway: 10.6.1.1 + - type: data + bridge: brData + cidr: 10.6.12.0/24 + gateway: + - type: public + bridge: brPublic + cidr: 10.6.15.0/24 + gateway: 10.6.15.254 + - type: external + bridge: brExt + cidr: + gateway: + ipaddress: 10.2.117.107 + labsettings: + upstream_dns: 8.8.8.8 + nodes: + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:d8:ba:46" + power: + type: ipmi + address: 10.2.117.96 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:0b:72" + power: + type: ipmi + address: 10.2.117.97 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:09:33" + power: + type: ipmi + address: 10.2.117.98 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:09:fb" + power: + type: ipmi + address: 10.2.117.99 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:cf:bc:f8" + power: + type: ipmi + address: 10.2.117.100 + user: root + pass: root +opnfv: + release: c + distro: trusty + type: nonha + openstack: liberty + sdncontroller: + - type: nosdn + storage: + - type: ceph + disk: sda,sdb + floating-ip-range: + feature: odl_l2 + ext-port: eth0 diff --git a/labconfig/intel/pod9/deployment.yaml b/labconfig/intel/pod9/deployment.yaml new file mode 100755 index 00000000..dcb2068b --- /dev/null +++ b/labconfig/intel/pod9/deployment.yaml @@ -0,0 +1,230 @@ +# 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-intel + interfaces: ['bridge=brAdm,model=virtio', 'bridge=brData,model=virtio', 'bridge=brPublic,model=virtio', 'bridge=brExt,model=virtio'] + memory: 4096 + vcpus: 4 + arch: amd64 + pool: default + disk_size: 160G + release: trusty + + # Apt http proxy setting(s) + apt_http_proxy: + + apt_sources: + - ppa:maas/stable + - ppa:juju/stable + + boot_source: + url: http://maas.ubuntu.com/images/ephemeral-v2/daily/ + keyring_filename: /usr/share/keyrings/ubuntu-cloudimage-keyring.gpg + exclusive: true + selections: + 1: + release: trusty + os: ubuntu + arches: amd64 + subarches: "*" + labels: daily + 2: + release: xenial + os: ubuntu + arches: amd64 + subarches: "*" + labels: daily + + # 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://jenkins@10.9.1.1/system + + # Defines the IP Address that the configuration script will use to + # to access the MAAS controller via SSH. + ip_address: 10.9.1.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: 8.8.8.8 + maas_name: intelpod9 + # 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 10.9.1.2 + netmask 255.255.255.0 + network 10.9.1.0 + broadcast 10.9.1.255 + gateway 10.9.1.1 + dns-nameservers 8.8.8.8 10.9.1.2 127.0.0.1 + + auto eth1 + iface eth1 inet static + address 10.9.12.2 + netmask 255.255.255.0 + + auto eth2 + iface eth2 inet static + address 10.9.15.2 + netmask 255.255.255.0 + + auto eth3 + iface eth3 inet static + address 10.2.117.143 + netmask 255.255.255.0 + #auto lo + #iface lo inet loopback + + #auto eth0 + #iface eth0 inet static + # address 192.168.122.2 + # netmask 255.255.248.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 + + # 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: 10.9.1.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.9.1.255 + router_ip: 10.9.1.1 + static_range: + low: 10.9.1.50 + high: 10.9.1.80 + dynamic_range: + low: 10.9.1.81 + high: 10.9.1.250 + - device: eth1 + ip: 10.9.12.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.9.12.255 + management: 1 + static_range: + low: 10.9.12.20 + high: 10.9.12.150 + dynamic_range: + low: 10.9.12.151 + high: 10.9.12.200 + - device: eth2 + ip: 10.9.15.2 + subnet_mask: 255.255.255.0 + broadcast_ip: 10.9.15.255 + router_ip: 10.9.15.254 + management: 1 + static_range: + low: 10.9.15.20 + high: 10.9.15.150 + dynamic_range: + low: 10.9.15.151 + high: 10.9.15.200 + + # Defines the physical nodes which are added to the MAAS cluster + # controller upon startup of the node. + nodes: + - name: node1-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "00:1E:67:D4:30:38" + power: + type: ipmi + address: 10.2.117.142 + user: root + pass: root + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: node2-compute + tags: compute + architecture: amd64/generic + mac_addresses: + - "00:1E:67:D4:33:A3" + power: + type: ipmi + address: 10.2.117.144 + user: root + pass: root + driver: LAN_2_0 +# sticky_ip_address: +# mac_address: "38:63:bb:43:b8:9c" +# requested_address: 192.168.122.5 + + - name: node3-control + tags: control + architecture: amd64/generic + mac_addresses: + - "00:1E:67:D4:2F:BA" + power: + type: ipmi + address: 10.2.117.146 + user: root + pass: root + 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', 'bridge=brExt,model=virtio'] + memory: 4096 + vcpus: 4 + arch: amd64 + pool: default + disk_size: 120G diff --git a/labconfig/intel/pod9/labconfig.yaml b/labconfig/intel/pod9/labconfig.yaml new file mode 100644 index 00000000..2f0b72e2 --- /dev/null +++ b/labconfig/intel/pod9/labconfig.yaml @@ -0,0 +1,63 @@ +labconfig: + lab_location: intelpod9 + bridges: + - type: admin + bridge: brAdm + cidr: 10.9.1.0/24 + gateway: 10.9.1.1 + - type: data + bridge: brData + cidr: 10.9.12.0/24 + gateway: + - type: public + bridge: brPublic + cidr: 10.9.15.0/24 + gateway: 10.9.15.254 + - type: external + bridge: brExt + cidr: + gateway: + ipaddress: 10.2.117.143 + labsettings: + upstream_dns: 8.8.8.8 + nodes: + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1E:67:D4:30:38" + power: + type: ipmi + address: 10.2.117.142 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1E:67:D4:33:A3" + power: + type: ipmi + address: 10.2.117.144 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1E:67:D4:2F:BA" + power: + type: ipmi + address: 10.2.117.146 + user: root + pass: root +opnfv: + release: c + distro: trusty + type: nonha + openstack: liberty + sdncontroller: + - type: nosdn + storage: + - type: ceph + disk: sda,sdb + floating-ip-range: + feature: odl_l2 + ext-port: eth0 diff --git a/labconfig/labconfig.yaml b/labconfig/labconfig.yaml new file mode 100644 index 00000000..52775d78 --- /dev/null +++ b/labconfig/labconfig.yaml @@ -0,0 +1,81 @@ +labconfig: + lab_location: intelpod6 + bridges: + - type: admin + bridge: brAdm + cidr: 10.6.1.0/24 + gateway: 10.6.1.1 + - type: data + bridge: brData + cidr: 10.6.12.0/24 + gateway: + - type: public + bridge: brPublic + cidr: 10.6.15.0/24 + gateway: 10.6.15.254 + - type: external + bridge: brExt + cidr: + gateway: + ipaddress: 10.2.117.107 + labsettings: + upstream_dns: 8.8.8.8 + nodes: + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:d8:ba:46" + power: + type: ipmi + address: 10.2.117.96 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:0b:72" + power: + type: ipmi + address: 10.2.117.97 + user: root + pass: root + - type: control + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:09:33" + power: + type: ipmi + address: 10.2.117.98 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:e0:09:fb" + power: + type: ipmi + address: 10.2.117.99 + user: root + pass: root + - type: compute + architecture: x86_64 + pxe_mac_address: + - "00:1e:67:cf:bc:f8" + power: + type: ipmi + address: 10.2.117.100 + user: root + pass: root +opnfv: + release: c + distro: trusty + type: nonha + openstack: liberty + sdncontroller: + - type: nosdn + storage: + - type: ceph + disk: sda,sdb + floating-ip-range: + feature: odl_l2 + ext-port: eth0 |