sudo apt-get dist-upgrade -y
sudo apt-get install openssh-server bzr git juju virtinst qemu-kvm libvirt-bin \
maas maas-region-controller python-pip python-psutil python-openstackclient \
- python-congressclient gsutil charm-tools pastebinit python-jinja2 sshpass -y
+ python-congressclient gsutil charm-tools pastebinit python-jinja2 sshpass \
+ openssh-server vlan -y
sudo pip install --upgrade pip
#
# MAAS config
+# https://insights.ubuntu.com/2016/01/23/maas-setup-deploying-openstack-on-maas-1-9-with-juju/
+# http://blog.naydenov.net/2016/01/nodes-networking-deploying-openstack-on-maas-1-9-with-juju/
#
configuremaas(){
sudo maas createadmin --username=ubuntu --email=ubuntu@ubuntu.com --password=ubuntu
maas $PROFILE tags create name='compute'
maas $PROFILE tags create name='control'
maas $PROFILE tags create name='storage'
+
+ #create the required spaces.
+ maas $PROFILE space update 0 name=default
+ maas $PROFILE spaces create name=unused
+ maas $PROFILE spaces create name=admin-api
+ maas $PROFILE spaces create name=internal-api
+ maas $PROFILE spaces create name=public-api
+ maas $PROFILE spaces create name=compute-data
+ maas $PROFILE spaces create name=compute-external
+ maas $PROFILE spaces create name=storage-data
+ maas $PROFILE spaces create name=storage-cluster
+
+ #maas $PROFILE subnet update vlan:<vlan id> name=internal-api space=<0> gateway_ip=10.5.1.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=admin-api space=<2> gateway_ip=10.5.12.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=public-api space=<1> gateway_ip=10.5.15.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=compute-data space=<3> gateway_ip=10.5.17.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=compute-external space=<4> gateway_ip=10.5.19.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=storage-data space=<5> gateway_ip=10.5.20.1
+ #maas $PROFILE subnet update vlan:<vlan id> name=storage-cluster space=<6> gateway_ip=10.5.21.1
+
}
enablesubnetanddhcp(){
num_units: 1
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() if os.beta.hacluster_ceph_radosgw else 1 }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
{% endif %}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: 1
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: 1
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
region: {{ os.region }}
neutron-security-groups: true
{% if os.beta.public_api %}
- use-internal-endpoints: true
+ #use-internal-endpoints: true
{% endif %}
{% if os.network.ipv6 %}
prefer-ipv6: {{ os.network.ipv6 }}
{% if opnfv.spaces_dict.data is defined %}
{% if os.service.bindings %}
bindings:
- data: admin
+ data: admin-api
{% endif %}
{% endif %}
options:
{% if opnfv.spaces_dict.data is defined %}
{% if os.service.bindings %}
bindings:
- data: admin
+ data: admin-api
{% endif %}
{% endif %}
{% if os.network.dpdk %}
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- internal: internal
+ internal: internal-api
{% if opnfv.spaces_dict.data is defined %}
- admin: admin
+ admin: admin-api
{% else %}
- admin: internal
+ admin: internal-api
{% endif %}
{% if opnfv.spaces_dict.public is defined %}
- public: public
+ public: public-api
{% else %}
- public: internal
+ public: internal-api
{% endif %}
{% endif %}
options:
num_units: {{ unit_qty() }}
{% if os.service.bindings %}
bindings:
- amqp: internal
+ amqp: internal-api
{% endif %}
options:
{% if opnfv.storage_dict.ceph is defined %}
git clone https://github.com/gnuoy/charm-congress.git $distro/charm-congress
build congress
-git clone -b stable/16.10 https://github.com/openstack/charm-hacluster.git $distro/hacluster
-git clone -b stable/16.10 https://github.com/openstack/charm-ceilometer.git $distro/ceilometer
-git clone -b stable/16.10 https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent
-git clone -b stable/16.10 https://github.com/openstack/charm-ceph-mon.git $distro/ceph
-git clone -b stable/16.10 https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd
-git clone -b stable/16.10 https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw
-git clone -b stable/16.10 https://github.com/openstack/charm-cinder.git $distro/cinder
-git clone -b stable/16.10 https://github.com/openstack/charm-cinder-ceph.git $distro/cinder-ceph
-git clone -b stable/16.10 https://github.com/openstack/charm-glance.git $distro/glance
-git clone -b stable/16.10 https://github.com/openstack/charm-keystone.git $distro/keystone
-git clone -b stable/16.10 https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster
-git clone -b stable/16.10 https://github.com/openstack/charm-neutron-api.git $distro/neutron-api
-git clone -b stable/16.10 https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway
-git clone -b stable/16.10 https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch
-git clone -b stable/16.10 https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller
-git clone -b stable/16.10 https://github.com/openstack/charm-nova-compute.git $distro/nova-compute
-git clone -b stable/16.10 https://github.com/openstack/charm-openstack-dashboard.git $distro/openstack-dashboard
-git clone -b stable/16.10 https://github.com/openstack/charm-rabbitmq-server.git $distro/rabbitmq-server
-git clone -b stable/16.10 https://github.com/openstack/charm-heat.git $distro/heat
-git clone -b stable/16.10 https://github.com/openstack/charm-lxd.git xenial/lxd
+git clone https://github.com/openstack/charm-hacluster.git $distro/hacluster
+git clone https://github.com/openstack/charm-ceilometer.git $distro/ceilometer
+git clone https://github.com/openstack/charm-ceilometer-agent.git $distro/ceilometer-agent
+git clone https://github.com/openstack/charm-ceph-mon.git $distro/ceph
+git clone https://github.com/openstack/charm-ceph-osd.git $distro/ceph-osd
+git clone https://github.com/openstack/charm-ceph-radosgw.git $distro/ceph-radosgw
+git clone https://github.com/openstack/charm-cinder.git $distro/cinder
+git clone https://github.com/openstack/charm-cinder-ceph.git $distro/cinder-ceph
+git clone https://github.com/openstack/charm-glance.git $distro/glance
+git clone https://github.com/openstack/charm-keystone.git $distro/keystone
+git clone https://github.com/openstack/charm-percona-cluster.git $distro/percona-cluster
+git clone https://github.com/openstack/charm-neutron-api.git $distro/neutron-api
+git clone https://github.com/openstack/charm-neutron-gateway.git $distro/neutron-gateway
+git clone https://github.com/openstack/charm-neutron-openvswitch.git $distro/neutron-openvswitch
+git clone https://github.com/openstack/charm-nova-cloud-controller.git $distro/nova-cloud-controller
+git clone https://github.com/openstack/charm-nova-compute.git $distro/nova-compute
+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/openstack/charm-lxd.git xenial/lxd
charm pull cs:$distro/aodh $distro/aodh
charm pull cs:~free.ekanayaka/xenial/haproxy-1 $distro/haproxy