enableiflist=`grep "interface-enable" deployconfig.yaml | cut -d ' ' -f 4 `
datanet=`grep "dataNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
stornet=`grep "storageNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
+ pubnet=`grep "publicNetwork" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //'`
# split EXTERNAL_NETWORK=first ip;last ip; gateway;network
i="0"
while [ ! -z "${EXTNET[i]}" ];
do
- echo enableautomode ${EXTNET[i]} AUTO $stornet || true
+ enableautomode ${EXTNET[i]} AUTO $stornet || true
+ i=$[$i+1]
+ done
+ fi
+ if [ "$pubnet" != "''" ]; then
+ EXTNET=(${enableiflist//,/ })
+ i="0"
+ while [ ! -z "${EXTNET[i]}" ];
+ do
+ enableautomode ${EXTNET[i]} AUTO $pubnet || true
i=$[$i+1]
done
fi
}
opnfvlabcfg['opnfv']={'ext-port':'','floating-ip-range':'','dataNetwork':'','ceph-disk':'/srv/',\
- 'storageNetwork':'','interface-enable':""}
+ 'storageNetwork':'','interface-enable':'','publicNetwork':''}
opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:maas/stable")
opnfvcfg['demo-maas']['maas']['apt_sources'].append("ppa:juju/stable")
brgway = getFromDict(labcfg, ["opnfv","spaces",c,"gateway"])
tmpcidr = brcidr[:-4]
opnfvlabcfg["opnfv"]["admNetwork"]=tmpcidr+"2"
+ opnfvlabcfg["opnfv"]["admNetgway"]=brgway
nodegroup={"device": "eth"+str(y), "ip": tmpcidr+"5","subnet_mask": "255.255.255.0", \
"broadcast_ip": tmpcidr+"255", "router_ip": brgway,\
y=y+1
if brtype == "public":
opnfvcfg["demo-maas"]["juju-bootstrap"]["interfaces"].append("bridge="+brname+",model=virtio")
+ opnfvlabcfg["opnfv"]["publicNetwork"]=brcidr
if brtype == "external":
ipaddress = getFromDict(labcfg, ["opnfv","spaces",c,"ipaddress"])
ethbrAdm = (ethbrAdm+'\n'
echo "...... deployment finished ......."
if [ "$opnfvsdn" == "onos" ]; then
- ./openstack.sh "$opnfvlab"
+ ./openstack.sh "$opnfvsdn"
check_status
else
#create the basic data for verification of stack.
- rabbitmq-server:amqp
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
hacluster-keystone:
charm: "local:trusty/heat"
to:
- "lxc:nodes=0"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
mysql:
charm: "local:trusty/percona-cluster"
#default-socket-memory: 1024
#defualt-socket-cores: 1
#dpdk-driver: uio_pci_generic
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=1"
-#!/bin/sh -ex
+#!/bin/bash -ex
distro=$1
mkdir -p $distro
+function build {
+ sudo apt-get install charm-tools -y
+ (cd $distro/charm-congress; charm build -s $distro -obuild src)
+ mv $distro/charm-congress/build/$distro/congress $distro
+}
+
# openstack
bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise
bzr branch lp:~billy-olsen/charms/xenial/mongodb/trunk $distro/mongodb
git clone https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
git clone https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
git clone https://github.com/openstack/charm-heat.git $distro/heat
+git clone https://github.com/gnuoy/charm-congress.git $distro/charm-congress
+build
#controller specific charm
git clone https://github.com/openstack/charm-odl-controller.git $distro/odl-controller
git clone https://github.com/openstack/charm-neutron-api-odl.git $distro/neutron-api-odl
git clone https://github.com/openstack/charm-openvswitch-odl.git $distro/openvswitch-odl
-
- - "neutron-api-odl:odl-controller"
- "odl-controller:controller-api"
- - "keystone:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "nova-cloud-controller:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "nova-cloud-controller:amqp"
- "rabbitmq-server:amqp"
- - "nova-cloud-controller:image-service"
- - "nova-compute:image-service"
- "glance:image-service"
- - "glance:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "glance:identity-service"
- "keystone:identity-service"
- - "glance:amqp"
- - "openstack-dashboard:identity-service"
- "keystone:identity-service"
- - "neutron-api:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "neutron-api:amqp"
- "rabbitmq-server:amqp"
- - "nova-cloud-controller:neutron-api"
- - "ceilometer:shared-db"
- "mongodb:database"
- - "heat:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "heat:identity-service"
- "keystone:identity-service"
- - "heat:amqp"
- - "ceph:client"
- "nova-compute:ceph"
- - "cinder:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "ceph:client"
- "cinder-ceph:ceph"
- - "ceph:client"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
hacluster-keystone:
charm: "local:trusty/hacluster"
# options:
# corosync_key: |
# 'tk8U/FkH1+dNsvj6IU0C8AST7i/9ylIoCD8kWpPjB+UE2AYR7tkgkjnc4m5dzIYPYTceY7Hnb9xLJ0nlcQLYYFBRAJOg3drNTcVrfh63y9g9La1J1r51YSbOqXq1Q6RUhxP4OQBtDGE6/4NtZwuRPvPGLcI2ENiVm78l8JFkXRw='
- percona-cluster:
+ mysql:
charm: "local:trusty/percona-cluster"
num_units: 3
options:
security-groups: True
openvswitch-odl:
charm: local:trusty/openvswitch-odl
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
mysql:
charm: "local:trusty/percona-cluster"
opnfv-promise:
branch: lp:~narindergupta/charms/trusty/promise/trunk
to:
- - "lxc:nodes=1"
+ - "lxc:nodes=0"
neutron-api-odl:
charm: local:trusty/neutron-api-odl
options:
security-groups: True
openvswitch-odl:
charm: local:trusty/openvswitch-odl
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=1"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
mysql:
charm: "local:trusty/percona-cluster"
security-groups: True
openvswitch-odl:
charm: local:trusty/openvswitch-odl
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
-#!/bin/sh -ex
+#!/bin/bash -ex
distro=$1
mkdir -p $distro
+function build {
+ sudo apt-get install charm-tools -y
+ (cd $distro/charm-congress; charm build -s $distro -obuild src)
+ mv $distro/charm-congress/build/$distro/congress $distro
+}
+
# openstack
bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise
bzr branch lp:~billy-olsen/charms/xenial/mongodb/trunk $distro/mongodb
git clone https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
git clone https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
git clone https://github.com/openstack/charm-heat.git $distro/heat
+git clone https://github.com/gnuoy/charm-congress.git $distro/charm-congress
+build
# Controller specific charm
bzr branch lp:~wuwenbin2/onosfw/onos-controller $distro/onos-controller
- - "neutron-api-onos:onos-controller"
- "onos-controller:controller-api"
- - "keystone:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "nova-cloud-controller:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "nova-cloud-controller:amqp"
- "rabbitmq-server:amqp"
- - "nova-cloud-controller:image-service"
- - "nova-compute:image-service"
- "glance:image-service"
- - "glance:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "glance:identity-service"
- "keystone:identity-service"
- - "glance:amqp"
- - "openstack-dashboard:identity-service"
- "keystone:identity-service"
- - "neutron-api:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "neutron-api:amqp"
- "rabbitmq-server:amqp"
- - "nova-cloud-controller:neutron-api"
- - "ceilometer:shared-db"
- "mongodb:database"
- - "heat:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "heat:identity-service"
- "keystone:identity-service"
- - "heat:amqp"
- - "ceph:client"
- "nova-compute:ceph"
- - "cinder:shared-db"
- - "percona-cluster:shared-db"
+ - "mysql:shared-db"
- - "ceph:client"
- "cinder-ceph:ceph"
- - "ceph:client"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
-
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
hacluster-keystone:
charm: "local:trusty/hacluster"
options:
corosync_key: |
'cHkgKGJpdHMgPSA5NjApLgpQcmVzcyBrZXlzIG9uIHlvdXIga2V5Ym9hcmQgdG8gZ2VuZXJhdGUgZW50cm9weSAoYml0cyA9IDEwMDgpLgpXcml0aW5nIGNvcm9zeW5jIGtleSB0byAvZXRjL2Nvcm9zeW5jL2F1dGhrZXkuCg=='
- percona-cluster:
+ mysql:
charm: "local:trusty/percona-cluster"
num_units: 3
options:
security-groups: True
openvswitch-onos:
charm: "local:trusty/openvswitch-onos"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
mysql:
charm: "local:trusty/percona-cluster"
security-groups: True
openvswitch-onos:
charm: "local:trusty/openvswitch-onos"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
- "keystone:identity-service"
#- - nova-compute:lxd
#- lxd:lxd
-
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
services:
mysql:
charm: "local:trusty/percona-cluster"
security-groups: True
openvswitch-onos:
charm: "local:trusty/openvswitch-onos"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes=0"
-#!/bin/sh -ex
+#!/bin/bash -ex
distro=$1
mkdir precise
mkdir -p $distro
+function build {
+ sudo apt-get install charm-tools -y
+ (cd $distro/charm-congress; charm build -s $distro -obuild src)
+ mv $distro/charm-congress/build/$distro/congress $distro
+}
+
# openstack
bzr branch lp:~narindergupta/charms/trusty/promise/trunk $distro/promise
bzr branch lp:~billy-olsen/charms/xenial/mongodb/trunk $distro/mongodb
git clone https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
git clone https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
git clone https://github.com/openstack/charm-heat.git $distro/heat
+git clone https://github.com/gnuoy/charm-congress.git $distro/charm-congress
+build
# Controller specific charm
bzr branch lp:~sdn-charmers/charms/$distro/keepalived/trunk $distro/keepalived
openstack-phase2:
inherits: openstack-phase1
services:
- percona-cluster:
+ mysql:
branch: "lp:~openstack-charmers/charms/trusty/percona-cluster/next"
num_units: 3
options:
branch: lp:~narindergupta/charms/trusty/promise/trunk
num_units: 1
to:
- - "lxc:nodes-api=2"
+ - "lxc:nodes-api=0"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes-api=0"
relations:
- [ "glance:ha", "hacluster-glance:ha" ]
- [ "keystone:ha", "hacluster-keystone:ha" ]
- [ "nova-cloud-controller:ha", "hacluster-nova:ha" ]
- [ "openstack-dashboard:ha", "hacluster-horizon:ha" ]
- [ "ceilometer:ha", "hacluster-ceilometer:ha" ]
- - [ keystone, percona-cluster ]
- - [ nova-cloud-controller, percona-cluster ]
+ - [ keystone, mysql ]
+ - [ nova-cloud-controller, mysql ]
- [ nova-cloud-controller, rabbitmq-server ]
- [ nova-cloud-controller, glance ]
- [ nova-cloud-controller, keystone ]
- [ nova-compute, nova-cloud-controller ]
- - [ "nova-compute:shared-db", "percona-cluster:shared-db" ]
+ - [ "nova-compute:shared-db", "mysql:shared-db" ]
- [ "nova-compute:amqp", "rabbitmq-server:amqp" ]
- [ nova-compute, glance ]
- - [ glance, percona-cluster ]
+ - [ glance, mysql ]
- [ glance, keystone ]
- [ openstack-dashboard, keystone ]
- - [ neutron-api, percona-cluster ]
+ - [ neutron-api, mysql ]
- [ neutron-api, rabbitmq-server ]
- [ neutron-api, nova-cloud-controller ]
- [ neutron-api, keystone ]
- [ "ceilometer:identity-notifications", "keystone:identity-notifications" ]
- [ "ceilometer-agent:nova-ceilometer", "nova-compute:nova-ceilometer" ]
- [ "ceilometer:shared-db", "mongodb:database" ]
- - [ "heat:shared-db", "percona-cluster:shared-db" ]
+ - [ "heat:shared-db", "mysql:shared-db" ]
- [ "heat:identity-service", "keystone:identity-service" ]
- [ "heat:amqp", "rabbitmq-server:amqp" ]
- [ "cinder:image-service", "glance:image-service" ]
- [ "cinder:cinder-volume-service", "nova-cloud-controller:cinder-volume-service" ]
- [ "cinder-ceph:storage-backend", "cinder:storage-backend" ]
- [ "ceph:client", "nova-compute:ceph" ]
- - [ "cinder:shared-db", "percona-cluster:shared-db" ]
+ - [ "cinder:shared-db", "mysql:shared-db" ]
- [ "ceph:client", "cinder-ceph:ceph" ]
- [ "ceph:client", "glance:ceph" ]
- [ "ceph-osd:mon", "ceph:osd" ]
- [ "ceph-radosgw:mon", "ceph:radosgw" ]
- [ "ceph-radosgw:identity-service", "keystone:identity-service" ]
-
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
contrail:
inherits: openstack-phase2
services:
num_units: 1
to:
- "lxc:nodes-api=0"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes-api=0"
relations:
- [ keystone, mysql ]
- [ nova-cloud-controller, mysql ]
- [ "ceph-osd:mon", "ceph:osd" ]
- [ "ceph-radosgw:mon", "ceph:radosgw" ]
- [ "ceph-radosgw:identity-service", "keystone:identity-service"]
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
contrail:
inherits: openstack-phase2
services:
num_units: 1
to:
- "lxc:nodes-api=0"
+ congress:
+ charm: local:trusty/congress
+ options:
+ source-branch: stable/liberty
+ to:
+ - "lxc:nodes-api=0"
relations:
- [ keystone, mysql ]
- [ nova-cloud-controller, mysql ]
- [ "cinder:shared-db", "mysql:shared-db" ]
- [ "ceph:client", "cinder-ceph:ceph" ]
- [ "ceph:client", "glance:ceph" ]
+ - - congress:shared-db
+ - mysql:shared-db
+ - - congress:identity-service
+ - keystone:identity-service
+ - - congress:amqp
+ - rabbitmq-server:amqp
contrail:
inherits: openstack-phase2
services:
EXTNET_GW=${EXTNET[2]}
EXTNET_NET=${EXTNET[3]}
EXTNET_PORT=`grep "ext-port" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
+ ADMNET_GW=`grep "admNetgway" deployconfig.yaml | cut -d ' ' -f 4 | sed -e 's/ //' | tr ',' ' '`
fi
for node in $computer_list; do
echo "node name is ${node}"
juju ssh $node "sudo ifconfig $EXTNET_PORT up"
- juju ssh $node "sudo route del default gw $EXTNET_GW"
+ juju ssh $node "sudo route del default gw $ADMNET_GW"
done
}
# create external network and subnet in openstack
create_openrc() {
mkdir -m 0700 -p cloud
- keystoneIp=$(unitAddress keystone 0)
+ keystoneIp=$(juju get keystone | grep vip: -A 7 | grep value | awk '{print $2}')
+ if [ -z "$keystoneIp" ]; then
+ keystoneIp=$(unitAddress keystone 0)
+ fi
adminPasswd=$(juju get keystone | grep admin-password -A 5 | grep value | awk '{print $2}')
configOpenrc admin $adminPasswd admin http://$keystoneIp:5000/v2.0 Canonical > cloud/admin-openrc
chmod 0600 cloud/admin-openrc
rm -rf /tmp/images
# adjust tiny image
-nova flavor-delete m1.tiny
-nova flavor-create m1.tiny 1 512 8 1
+#nova flavor-delete m1.tiny
+#nova flavor-create m1.tiny 1 512 8 1
-# configure security groups
-neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0 default
-neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0 default
# import key pair
keystone tenant-create --name demo --description "Demo Tenant"
neutron subnet-create ext-net --name ext-subnet \
--allocation-pool start=$EXTNET_FIP,end=$EXTNET_LIP \
--disable-dhcp --gateway $EXTNET_GW $EXTNET_NET
+ # configure security groups
+ neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol icmp --remote-ip-prefix 0.0.0.0/0 default
+ neutron security-group-rule-create --direction ingress --ethertype IPv4 --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 0.0.0.0/0 default
fi
+
# create vm network
neutron net-create demo-net
neutron subnet-create --name demo-subnet --gateway 10.20.5.1 demo-net 10.20.5.0/24
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:85:4E:2C"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:85:4E:2D"]
power:
type: ipmi
address: 10.2.117.81
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:84:08:B8"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:84:08:B9"]
power:
type: ipmi
address: 10.2.117.82
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:84:07:0D"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:84:07:0E"]
power:
type: ipmi
address: 10.2.117.83
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:83:FD:80"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:83:FD:81"]
power:
type: ipmi
address: 10.2.117.84
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:75:22:74"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:75:22:75"]
power:
type: ipmi
address: 10.2.117.85
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:83:FD:20"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:83:FD:21"]
power:
type: ipmi
address: 10.2.117.96
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:75:30:F4"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:75:30:F5"]
power:
type: ipmi
address: 10.2.117.97
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:83:FE:74"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:83:FE:75"]
power:
type: ipmi
address: 10.2.117.98
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:84:15:7C"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:84:15:7D"]
power:
type: ipmi
address: 10.2.117.99
- ifname: eth4
spaces: [data]
mac: ["90:E2:BA:84:08:F4"]
+ - ifname: eth5
+ spaces: [public]
+ mac: ["90:E2:BA:84:08:F5"]
power:
type: ipmi
address: 10.2.117.100