From 38280cd969e490d0826b85cc7a92cb72e83b521f Mon Sep 17 00:00:00 2001 From: Peter Matulis Date: Sat, 12 Sep 2020 00:17:47 -0400 Subject: [PATCH] Update install-openstack page * Update charms to MySQL8 and OVN * Update series to Focal * Update MAAS install to a snap * Remove one swift-storage unit (four was overkill) * Update Horizon screenshot * Include juju status checkpoints * Update final juju status output * Simplify MAAS node names * Improve some wording * Include OVN bug reference and workaround I used all steps with two deployments and was able to ssh to an instance. One required the OVN workaround and the other did not. Change-Id: I6d20d07bedc6614295d44f732adfd602390fefe1 --- deploy-guide/source/config-openstack.rst | 10 + deploy-guide/source/index.rst | 27 +- deploy-guide/source/install-juju.rst | 5 +- deploy-guide/source/install-maas.rst | 66 +-- .../source/install-openstack-juju-status.rst | 287 ++++++---- deploy-guide/source/install-openstack.rst | 540 +++++++++++------- .../media/install-openstack_horizon.png | Bin 762457 -> 2215297 bytes 7 files changed, 582 insertions(+), 353 deletions(-) diff --git a/deploy-guide/source/config-openstack.rst b/deploy-guide/source/config-openstack.rst index ed4a0d0..633c2d9 100644 --- a/deploy-guide/source/config-openstack.rst +++ b/deploy-guide/source/config-openstack.rst @@ -305,6 +305,13 @@ own rules. We do the latter by creating a group called 'Allow_SSH': Create and access an instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.. important:: + + It has been observed in some newly-deployed clouds that the configuration of + OVN remains incomplete, which prevents cloud instances from being created. + The workaround is to restart the ``ovn-northd`` daemon on each ovn-central + unit. See `LP #1895303`_ for details. + Determine the network ID of private network 'Network1' and then create an instance called 'bionic-1': @@ -388,3 +395,6 @@ guidance. .. _openstack-bundles: https://github.com/openstack-charmers/openstack-bundles/blob/master/stable/shared/openrcv3_project .. _Reserved IP range: https://maas.io/docs/concepts-and-terms#heading--ip-ranges .. _Using OpenStack with Juju: https://jaas.ai/docs/openstack-cloud + +.. BUGS +.. _LP #1895303: https://bugs.launchpad.net/charm-ovn-central/+bug/1895303 diff --git a/deploy-guide/source/index.rst b/deploy-guide/source/index.rst index 099e28f..6548c13 100644 --- a/deploy-guide/source/index.rst +++ b/deploy-guide/source/index.rst @@ -12,23 +12,30 @@ Overview The main purpose of the OpenStack Charms Deployment Guide is to demonstrate how to build a multi-node OpenStack cloud with `MAAS`_, `Juju`_, and `OpenStack -Charms`_. For accessibility reasons, the cloud will be minimal, while remaining +Charms`_. For easy adoption the cloud will be minimal. Nevertheless, it will be capable of both performing some real work and scaling to fit more ambitious -projects. - -Software versions used in this guide are as follows: - -* **Ubuntu 18.04 LTS** (Bionic) for the MAAS system, its cluster nodes, and all - cloud nodes -* **MAAS 2.6.2** -* **Juju 2.7.0** -* **OpenStack Train** +projects. High availability will not be implemented beyond natively HA +applications (Ceph, MySQL8, OVN, Swift, and RabbitMQ). .. note:: For OpenStack Charms project information, development guidelines, release notes, and release schedules, please refer to the `OpenStack Charm Guide`_. +Requirements +------------ + +The software versions used in this guide are as follows: + +* **Ubuntu 20.04 LTS (Focal)** for the MAAS server, Juju client, Juju + controller, and all cloud nodes (including containers) +* **MAAS 2.8.2** +* **Juju 2.8.1** +* **OpenStack Ussuri** + +Hardware requirements are listed on the :doc:`Install MAAS ` +page. + Appendices ---------- diff --git a/deploy-guide/source/install-juju.rst b/deploy-guide/source/install-juju.rst index e7087b3..c4471d3 100644 --- a/deploy-guide/source/install-juju.rst +++ b/deploy-guide/source/install-juju.rst @@ -8,7 +8,7 @@ Overview In the :doc:`previous section `, we set up the base environment in the form of a `MAAS`_ cluster. We are now going to implement `Juju`_ as a management solution for that environment. The main goal will be the creation of -a Juju *controller*, the administrative node for a Juju-managed cloud. +a Juju controller, the administrative node for a Juju-managed cloud. Install Juju ------------ @@ -119,7 +119,8 @@ Next steps ---------- The next step is to use Juju to deploy OpenStack. This will involve deploying -the OpenStack applications and adding relations between them. +the OpenStack applications and adding relations between them. Go to +:doc:`Install OpenStack ` now. .. LINKS .. _Juju: https://jaas.ai diff --git a/deploy-guide/source/install-maas.rst b/deploy-guide/source/install-maas.rst index 9901ddb..512314d 100644 --- a/deploy-guide/source/install-maas.rst +++ b/deploy-guide/source/install-maas.rst @@ -41,12 +41,12 @@ MAAS is also considered to be the sole provider of DHCP and DNS for the network hosting the MAAS cluster. The MAAS system's single network interface resides on subnet -**10.0.0.0/21** and the system itself has an assigned IP address of -**10.0.0.3**. +**10.0.0.0/24** and the system itself has an assigned IP address of +**10.0.0.2**. .. attention:: - The MAAS-provisioned nodes rely upon Bionic AMD64 images provided by MAAS. + The MAAS-provisioned nodes rely upon Focal AMD64 images provided by MAAS. .. _install_maas: @@ -59,19 +59,19 @@ instructions`_ for details: .. code-block:: none - sudo apt-add-repository -y ppa:maas/2.6 - sudo apt install -y maas - sudo maas init --admin-username admin --admin-password ubuntu \ - --admin-email admin@example.com --admin-ssh-import - sudo maas-region apikey --username=admin > ~/admin-api-key + sudo snap install maas-test-db + sudo snap install maas --channel=2.8/stable + sudo maas init region+rack --maas-url http://10.0.0.2:5240/MAAS --database-uri maas-test-db:/// + sudo maas createadmin --username admin --password ubuntu --email admin@example.com --ssh-import lp: + sudo maas apikey --username admin > ~ubuntu/admin-api-key See :command:`maas init --help` for details. Notes: -* MAAS does not currently make use of the email address supplied to the - :command:`maas init` command. * The :command:`maas init` command cannot be invoked a second time. +* MAAS does not currently make use of the email address supplied to the + :command:`maas createadmin` command. * The last command puts a copy of the API key for user 'admin' in a file. We'll need this information on the next page. @@ -95,14 +95,14 @@ MAAS administrator are: | Password: **ubuntu** | -In this example, the address of the MAAS system is 10.0.0.3. +In this example, the address of the MAAS system is 10.0.0.2. The web UI URL then becomes: -**http://10.0.0.3:5240/MAAS** +**http://10.0.0.2:5240/MAAS** You will be whisked through an on-boarding process when you access the web UI -for the first time. Recall that we require 18.04 LTS AMD64 images. +for the first time. Recall that we require 20.04 LTS AMD64 images. Enable DHCP ~~~~~~~~~~~ @@ -136,8 +136,8 @@ will eliminate this concern. .. important:: - A MAAS node should *always* remain configured to netboot. MAAS will manage - the booting of its cluster members. + A MAAS node should always remain configured to netboot. MAAS will manage the + booting of its cluster members. Configure node power type ~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -161,9 +161,8 @@ Rename nodes Rename the newly commissioned nodes to something more appealing or meaningful. To change the name of a node, select it from the **Machines** page and use the -name field in the top-left. Here we've used 'os-compute01' through -'os-compute04' for the four cloud nodes and 'os-juju01' for the Juju controller -node. +name field in the top-left. Here we've used 'node1' through 'node4' for the +four cloud nodes and 'controller' for the Juju controller node. .. note:: @@ -187,32 +186,33 @@ Node summary Here's a summary of the five MAAS nodes: -+---------------------+-----------+------+------+-----+-------+---------+ -| Node name | Tag(s) | CPUs | NICs | RAM | Disks | Storage | -+=====================+===========+======+======+=====+=======+=========+ -| os-compute01.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | -+---------------------+-----------+------+------+-----+-------+---------+ -| os-compute02.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | -+---------------------+-----------+------+------+-----+-------+---------+ -| os-compute03.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | -+---------------------+-----------+------+------+-----+-------+---------+ -| os-compute04.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | -+---------------------+-----------+------+------+-----+-------+---------+ -| os-juju01.maas | juju | 2 | 1 | 4.0 | 1 | 40.0 | -+---------------------+-----------+------+------+-----+-------+---------+ ++-----------------+-----------+------+------+-----+-------+---------+ +| Node name | Tag(s) | CPUs | NICs | RAM | Disks | Storage | ++=================+===========+======+======+=====+=======+=========+ +| node1.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | ++-----------------+-----------+------+------+-----+-------+---------+ +| node2.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | ++-----------------+-----------+------+------+-----+-------+---------+ +| node3.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | ++-----------------+-----------+------+------+-----+-------+---------+ +| node4.maas | compute | 2 | 2 | 8.0 | 3 | 80.0 | ++-----------------+-----------+------+------+-----+-------+---------+ +| controller.maas | juju | 2 | 1 | 4.0 | 1 | 40.0 | ++-----------------+-----------+------+------+-----+-------+---------+ Next steps ---------- The next step is to create a Juju controller. This will involve deploying -Ubuntu and Juju software onto the designated node. +Ubuntu and Juju software onto the designated node. Go to :doc:`Install Juju +` now. .. LINKS .. _CLI: https://maas.io/docs/maas-cli .. _API: https://maas.io/docs/api .. _MAAS: https://maas.io .. _MAAS requirements: https://maas.io/docs/maas-requirements -.. _MAAS installation instructions: https://maas.io/docs/install-from-packages +.. _MAAS installation instructions: https://maas.io/docs/install-from-a-snap .. _Concepts and terms: https://maas.io/docs/concepts-and-terms .. _Handling DHCP: https://maas.io/docs/dhcp .. _BMC power types: https://maas.io/docs/bmc-power-types diff --git a/deploy-guide/source/install-openstack-juju-status.rst b/deploy-guide/source/install-openstack-juju-status.rst index 5a7c3f4..0adb3f5 100644 --- a/deploy-guide/source/install-openstack-juju-status.rst +++ b/deploy-guide/source/install-openstack-juju-status.rst @@ -10,123 +10,184 @@ The below :command:`juju status --relations` output represents the cloud installed from the instructions given on the :doc:`Install OpenStack ` page. -.. code-block:: ini +.. code-block:: console Model Controller Cloud/Region Version SLA Timestamp - openstack maas-controller mymaas/default 2.7.0 unsupported 21:02:58Z + openstack maas-controller mymaas/default 2.8.1 unsupported 02:53:54Z - App Version Status Scale Charm Store Rev OS Notes - ceph-mon 14.2.2 active 3 ceph-mon jujucharms 44 ubuntu - ceph-osd 14.2.2 active 4 ceph-osd jujucharms 294 ubuntu - cinder 15.0.0 active 1 cinder jujucharms 297 ubuntu - cinder-ceph 15.0.0 active 1 cinder-ceph jujucharms 251 ubuntu - glance 19.0.0 active 1 glance jujucharms 291 ubuntu - keystone 16.0.0 active 1 keystone jujucharms 309 ubuntu - mysql 5.7.20 active 1 percona-cluster jujucharms 281 ubuntu - neutron-api 15.0.0 active 1 neutron-api jujucharms 282 ubuntu - neutron-gateway 15.0.0 active 1 neutron-gateway jujucharms 276 ubuntu - neutron-openvswitch 15.0.0 active 3 neutron-openvswitch jujucharms 269 ubuntu - nova-cloud-controller 20.0.0 active 1 nova-cloud-controller jujucharms 339 ubuntu - nova-compute 20.0.0 active 3 nova-compute jujucharms 309 ubuntu - ntp 3.2 active 4 ntp jujucharms 36 ubuntu - openstack-dashboard 13.0.2 active 1 openstack-dashboard jujucharms 297 ubuntu - placement 2.0.0 active 1 placement jujucharms 0 ubuntu - rabbitmq-server 3.6.10 active 1 rabbitmq-server jujucharms 97 ubuntu + App Version Status Scale Charm Store Rev OS Notes + ceph-mon 15.2.3 active 3 ceph-mon jujucharms 49 ubuntu + ceph-osd 15.2.3 active 4 ceph-osd jujucharms 304 ubuntu + cinder 16.1.0 active 1 cinder jujucharms 304 ubuntu + cinder-ceph 16.1.0 active 1 cinder-ceph jujucharms 257 ubuntu + cinder-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + dashboard-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + glance 20.0.0 active 1 glance jujucharms 299 ubuntu + glance-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + keystone 17.0.0 active 1 keystone jujucharms 317 ubuntu + keystone-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + mysql-innodb-cluster 8.0.21 active 3 mysql-innodb-cluster jujucharms 1 ubuntu + ncc-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + neutron-api 16.0.0 active 1 neutron-api jujucharms 288 ubuntu + neutron-api-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + neutron-api-plugin-ovn 16.0.0 active 1 neutron-api-plugin-ovn jujucharms 1 ubuntu + nova-cloud-controller 21.0.0 active 1 nova-cloud-controller jujucharms 346 ubuntu + nova-compute 21.0.0 active 3 nova-compute jujucharms 320 ubuntu + ntp 3.5 active 4 ntp jujucharms 41 ubuntu + openstack-dashboard 18.3.2 active 1 openstack-dashboard jujucharms 305 ubuntu + ovn-central 20.03.0 active 3 ovn-central jujucharms 1 ubuntu + ovn-chassis 20.03.0 active 3 ovn-chassis jujucharms 4 ubuntu + placement 3.0.0 active 1 placement jujucharms 12 ubuntu + placement-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu + rabbitmq-server 3.8.2 active 1 rabbitmq-server jujucharms 104 ubuntu + swift-proxy 2.25.0 active 1 swift-proxy jujucharms 94 ubuntu + swift-storage 2.25.0 active 3 swift-storage jujucharms 271 ubuntu + vault 1.1.1 active 1 vault jujucharms 40 ubuntu + vault-mysql-router 8.0.21 active 1 mysql-router jujucharms 3 ubuntu - Unit Workload Agent Machine Public address Ports Message - ceph-mon/0* active idle 1/lxd/1 10.0.0.21 Unit is ready and clustered - ceph-mon/1 active idle 2/lxd/3 10.0.0.22 Unit is ready and clustered - ceph-mon/2 active idle 3/lxd/1 10.0.0.23 Unit is ready and clustered - ceph-osd/0 active idle 0 10.0.0.27 Unit is ready (1 OSD) - ntp/2 active idle 10.0.0.27 123/udp chrony: Ready - ceph-osd/1 active idle 1 10.0.0.26 Unit is ready (1 OSD) - ntp/1 active idle 10.0.0.26 123/udp chrony: Ready - ceph-osd/2* active idle 2 10.0.0.28 Unit is ready (1 OSD) - ntp/0* active idle 10.0.0.28 123/udp chrony: Ready - ceph-osd/3 active idle 3 10.0.0.255 Unit is ready (1 OSD) - ntp/3 active idle 10.0.0.255 123/udp chrony: Ready - cinder/0* active idle 1/lxd/2 10.0.0.24 8776/tcp Unit is ready - cinder-ceph/0* active idle 10.0.0.24 Unit is ready - glance/0* active idle 2/lxd/2 10.0.0.20 9292/tcp Unit is ready - keystone/0* active idle 3/lxd/0 10.0.0.29 5000/tcp Unit is ready - mysql/0* active idle 0/lxd/0 10.0.0.8 3306/tcp Unit is ready - neutron-api/0* active idle 1/lxd/0 10.0.0.7 9696/tcp Unit is ready - neutron-gateway/0* active idle 0 10.0.0.27 Unit is ready - nova-cloud-controller/0* active idle 2/lxd/0 10.0.0.10 8774/tcp,8775/tcp Unit is ready - nova-compute/0 active idle 1 10.0.0.26 Unit is ready - neutron-openvswitch/2 active idle 10.0.0.26 Unit is ready - nova-compute/1* active idle 2 10.0.0.28 Unit is ready - neutron-openvswitch/0* active idle 10.0.0.28 Unit is ready - nova-compute/2 active idle 3 10.0.0.255 Unit is ready - neutron-openvswitch/1 active idle 10.0.0.255 Unit is ready - openstack-dashboard/0* active idle 3/lxd/2 10.0.0.14 80/tcp,443/tcp Unit is ready - placement/0* active idle 2/lxd/1 10.0.0.11 8778/tcp Unit is ready - rabbitmq-server/0* active idle 0/lxd/1 10.0.0.9 5672/tcp Unit is ready + Unit Workload Agent Machine Public address Ports Message + ceph-mon/0* active idle 0/lxd/3 10.0.0.227 Unit is ready and clustered + ceph-mon/1 active idle 1/lxd/4 10.0.0.226 Unit is ready and clustered + ceph-mon/2 active idle 2/lxd/3 10.0.0.225 Unit is ready and clustered + ceph-osd/0* active idle 0 10.0.0.206 Unit is ready (1 OSD) + ntp/1 active idle 10.0.0.206 123/udp chrony: Ready + ceph-osd/1 active idle 1 10.0.0.208 Unit is ready (1 OSD) + ntp/0* active idle 10.0.0.208 123/udp chrony: Ready + ceph-osd/2 active idle 2 10.0.0.209 Unit is ready (1 OSD) + ntp/3 active idle 10.0.0.209 123/udp chrony: Ready + ceph-osd/3 active idle 3 10.0.0.213 Unit is ready (1 OSD) + ntp/2 active idle 10.0.0.213 123/udp chrony: Ready + cinder/0* active idle 1/lxd/5 10.0.0.228 8776/tcp Unit is ready + cinder-ceph/0* active idle 10.0.0.228 Unit is ready + cinder-mysql-router/0* active idle 10.0.0.228 Unit is ready + glance/0* active idle 3/lxd/3 10.0.0.224 9292/tcp Unit is ready + glance-mysql-router/0* active idle 10.0.0.224 Unit is ready + keystone/0* active idle 0/lxd/2 10.0.0.223 5000/tcp Unit is ready + keystone-mysql-router/0* active idle 10.0.0.223 Unit is ready + mysql-innodb-cluster/0* active idle 0/lxd/0 10.0.0.211 Unit is ready: Mode: R/W + mysql-innodb-cluster/1 active idle 1/lxd/0 10.0.0.212 Unit is ready: Mode: R/O + mysql-innodb-cluster/2 active idle 2/lxd/0 10.0.0.214 Unit is ready: Mode: R/O + neutron-api/0* active idle 1/lxd/2 10.0.0.220 9696/tcp Unit is ready + neutron-api-mysql-router/0* active idle 10.0.0.220 Unit is ready + neutron-api-plugin-ovn/0* active idle 10.0.0.220 Unit is ready + nova-cloud-controller/0* active idle 3/lxd/1 10.0.0.216 8774/tcp,8775/tcp Unit is ready + ncc-mysql-router/0* active idle 10.0.0.216 Unit is ready + nova-compute/0* active idle 1 10.0.0.208 Unit is ready + ovn-chassis/1 active idle 10.0.0.208 Unit is ready + nova-compute/1 active idle 2 10.0.0.209 Unit is ready + ovn-chassis/0* active idle 10.0.0.209 Unit is ready + nova-compute/2 active idle 3 10.0.0.213 Unit is ready + ovn-chassis/2 active idle 10.0.0.213 Unit is ready + openstack-dashboard/0* active idle 1/lxd/3 10.0.0.210 80/tcp,443/tcp Unit is ready + dashboard-mysql-router/0* active idle 10.0.0.210 Unit is ready + ovn-central/0* active idle 0/lxd/1 10.0.0.218 6641/tcp,6642/tcp Unit is ready (leader: ovnnb_db, ovnsb_db northd: active) + ovn-central/1 active idle 1/lxd/1 10.0.0.221 6641/tcp,6642/tcp Unit is ready + ovn-central/2 active idle 2/lxd/1 10.0.0.219 6641/tcp,6642/tcp Unit is ready + placement/0* active idle 3/lxd/2 10.0.0.215 8778/tcp Unit is ready + placement-mysql-router/0* active idle 10.0.0.215 Unit is ready + rabbitmq-server/0* active idle 2/lxd/2 10.0.0.222 5672/tcp Unit is ready + swift-proxy/0* active idle 3/lxd/4 10.0.0.231 8080/tcp Unit is ready + swift-storage/0* active idle 0 10.0.0.206 Unit is ready + swift-storage/1 active idle 2 10.0.0.209 Unit is ready + swift-storage/2 active idle 3 10.0.0.213 Unit is ready + vault/0* active idle 3/lxd/0 10.0.0.217 8200/tcp Unit is ready (active: true, mlock: disabled) + vault-mysql-router/0* active idle 10.0.0.217 Unit is ready Machine State DNS Inst id Series AZ Message - 0 started 10.0.0.27 virt-node-03 bionic default Deployed - 0/lxd/0 started 10.0.0.8 juju-218d08-0-lxd-0 bionic default Container started - 0/lxd/1 started 10.0.0.9 juju-218d08-0-lxd-1 bionic default Container started - 1 started 10.0.0.26 virt-node-02 bionic default Deployed - 1/lxd/0 started 10.0.0.7 juju-218d08-1-lxd-0 bionic default Container started - 1/lxd/1 started 10.0.0.21 juju-218d08-1-lxd-1 bionic default Container started - 1/lxd/2 started 10.0.0.24 juju-218d08-1-lxd-2 bionic default Container started - 2 started 10.0.0.28 virt-node-04 bionic default Deployed - 2/lxd/0 started 10.0.0.10 juju-218d08-2-lxd-0 bionic default Container started - 2/lxd/1 started 10.0.0.11 juju-218d08-2-lxd-1 bionic default Container started - 2/lxd/2 started 10.0.0.20 juju-218d08-2-lxd-2 bionic default Container started - 2/lxd/3 started 10.0.0.22 juju-218d08-2-lxd-3 bionic default Container started - 3 started 10.0.0.255 virt-node-01 bionic default Deployed - 3/lxd/0 started 10.0.0.29 juju-218d08-3-lxd-0 bionic default Container started - 3/lxd/1 started 10.0.0.23 juju-218d08-3-lxd-1 bionic default Container started - 3/lxd/2 started 10.0.0.14 juju-218d08-3-lxd-2 bionic default Container started + 0 started 10.0.0.206 node1 focal default Deployed + 0/lxd/0 started 10.0.0.211 juju-6f106b-0-lxd-0 focal default Container started + 0/lxd/1 started 10.0.0.218 juju-6f106b-0-lxd-1 focal default Container started + 0/lxd/2 started 10.0.0.223 juju-6f106b-0-lxd-2 focal default Container started + 0/lxd/3 started 10.0.0.227 juju-6f106b-0-lxd-3 focal default Container started + 1 started 10.0.0.208 node2 focal default Deployed + 1/lxd/0 started 10.0.0.212 juju-6f106b-1-lxd-0 focal default Container started + 1/lxd/1 started 10.0.0.221 juju-6f106b-1-lxd-1 focal default Container started + 1/lxd/2 started 10.0.0.220 juju-6f106b-1-lxd-2 focal default Container started + 1/lxd/3 started 10.0.0.210 juju-6f106b-1-lxd-3 focal default Container started + 1/lxd/4 started 10.0.0.226 juju-6f106b-1-lxd-4 focal default Container started + 1/lxd/5 started 10.0.0.228 juju-6f106b-1-lxd-5 focal default Container started + 2 started 10.0.0.209 node3 focal default Deployed + 2/lxd/0 started 10.0.0.214 juju-6f106b-2-lxd-0 focal default Container started + 2/lxd/1 started 10.0.0.219 juju-6f106b-2-lxd-1 focal default Container started + 2/lxd/2 started 10.0.0.222 juju-6f106b-2-lxd-2 focal default Container started + 2/lxd/3 started 10.0.0.225 juju-6f106b-2-lxd-3 focal default Container started + 3 started 10.0.0.213 node4 focal default Deployed + 3/lxd/0 started 10.0.0.217 juju-6f106b-3-lxd-0 focal default Container started + 3/lxd/1 started 10.0.0.216 juju-6f106b-3-lxd-1 focal default Container started + 3/lxd/2 started 10.0.0.215 juju-6f106b-3-lxd-2 focal default Container started + 3/lxd/3 started 10.0.0.224 juju-6f106b-3-lxd-3 focal default Container started + 3/lxd/4 started 10.0.0.231 juju-6f106b-3-lxd-4 focal default Container started - Relation provider Requirer Interface Type Message - ceph-mon:client cinder-ceph:ceph ceph-client regular - ceph-mon:client glance:ceph ceph-client regular - ceph-mon:client nova-compute:ceph ceph-client regular - ceph-mon:mon ceph-mon:mon ceph peer - ceph-mon:osd ceph-osd:mon ceph-osd regular - ceph-osd:juju-info ntp:juju-info juju-info subordinate - cinder-ceph:storage-backend cinder:storage-backend cinder-backend subordinate - cinder:cinder-volume-service nova-cloud-controller:cinder-volume-service cinder regular - cinder:cluster cinder:cluster cinder-ha peer - glance:cluster glance:cluster glance-ha peer - glance:image-service cinder:image-service glance regular - glance:image-service nova-cloud-controller:image-service glance regular - glance:image-service nova-compute:image-service glance regular - keystone:cluster keystone:cluster keystone-ha peer - keystone:identity-service cinder:identity-service keystone regular - keystone:identity-service glance:identity-service keystone regular - keystone:identity-service neutron-api:identity-service keystone regular - keystone:identity-service nova-cloud-controller:identity-service keystone regular - keystone:identity-service openstack-dashboard:identity-service keystone regular - keystone:identity-service placement:identity-service keystone regular - mysql:cluster mysql:cluster percona-cluster peer - mysql:shared-db cinder:shared-db mysql-shared regular - mysql:shared-db glance:shared-db mysql-shared regular - mysql:shared-db keystone:shared-db mysql-shared regular - mysql:shared-db neutron-api:shared-db mysql-shared regular - mysql:shared-db nova-cloud-controller:shared-db mysql-shared regular - mysql:shared-db placement:shared-db mysql-shared regular - neutron-api:cluster neutron-api:cluster neutron-api-ha peer - neutron-api:neutron-api nova-cloud-controller:neutron-api neutron-api regular - neutron-api:neutron-plugin-api neutron-gateway:neutron-plugin-api neutron-plugin-api regular - neutron-api:neutron-plugin-api neutron-openvswitch:neutron-plugin-api neutron-plugin-api regular - neutron-gateway:cluster neutron-gateway:cluster quantum-gateway-ha peer - neutron-gateway:quantum-network-service nova-cloud-controller:quantum-network-service quantum regular - neutron-openvswitch:neutron-plugin nova-compute:neutron-plugin neutron-plugin subordinate - nova-cloud-controller:cluster nova-cloud-controller:cluster nova-ha peer - nova-compute:cloud-compute nova-cloud-controller:cloud-compute nova-compute regular - nova-compute:compute-peer nova-compute:compute-peer nova peer - ntp:ntp-peers ntp:ntp-peers ntp peer - openstack-dashboard:cluster openstack-dashboard:cluster openstack-dashboard-ha peer - placement:cluster placement:cluster openstack-ha peer - placement:placement nova-cloud-controller:placement placement regular - rabbitmq-server:amqp cinder:amqp rabbitmq regular - rabbitmq-server:amqp neutron-api:amqp rabbitmq regular - rabbitmq-server:amqp neutron-gateway:amqp rabbitmq regular - rabbitmq-server:amqp neutron-openvswitch:amqp rabbitmq regular - rabbitmq-server:amqp nova-cloud-controller:amqp rabbitmq regular - rabbitmq-server:amqp nova-compute:amqp rabbitmq regular - rabbitmq-server:cluster rabbitmq-server:cluster rabbitmq-ha peer + Relation provider Requirer Interface Type Message + ceph-mon:client cinder-ceph:ceph ceph-client regular + ceph-mon:client glance:ceph ceph-client regular + ceph-mon:client nova-compute:ceph ceph-client regular + ceph-mon:mon ceph-mon:mon ceph peer + ceph-mon:osd ceph-osd:mon ceph-osd regular + ceph-osd:juju-info ntp:juju-info juju-info subordinate + cinder-ceph:ceph-access nova-compute:ceph-access cinder-ceph-key regular + cinder-ceph:storage-backend cinder:storage-backend cinder-backend subordinate + cinder-mysql-router:shared-db cinder:shared-db mysql-shared subordinate + cinder:cinder-volume-service nova-cloud-controller:cinder-volume-service cinder regular + cinder:cluster cinder:cluster cinder-ha peer + dashboard-mysql-router:shared-db openstack-dashboard:shared-db mysql-shared subordinate + glance-mysql-router:shared-db glance:shared-db mysql-shared subordinate + glance:cluster glance:cluster glance-ha peer + glance:image-service cinder:image-service glance regular + glance:image-service nova-cloud-controller:image-service glance regular + glance:image-service nova-compute:image-service glance regular + keystone-mysql-router:shared-db keystone:shared-db mysql-shared subordinate + keystone:cluster keystone:cluster keystone-ha peer + keystone:identity-service cinder:identity-service keystone regular + keystone:identity-service glance:identity-service keystone regular + keystone:identity-service neutron-api:identity-service keystone regular + keystone:identity-service nova-cloud-controller:identity-service keystone regular + keystone:identity-service openstack-dashboard:identity-service keystone regular + keystone:identity-service placement:identity-service keystone regular + keystone:identity-service swift-proxy:identity-service keystone regular + mysql-innodb-cluster:cluster mysql-innodb-cluster:cluster mysql-innodb-cluster peer + mysql-innodb-cluster:coordinator mysql-innodb-cluster:coordinator coordinator peer + mysql-innodb-cluster:db-router cinder-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router dashboard-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router glance-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router keystone-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router ncc-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router neutron-api-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router placement-mysql-router:db-router mysql-router regular + mysql-innodb-cluster:db-router vault-mysql-router:db-router mysql-router regular + ncc-mysql-router:shared-db nova-cloud-controller:shared-db mysql-shared subordinate + neutron-api-mysql-router:shared-db neutron-api:shared-db mysql-shared subordinate + neutron-api-plugin-ovn:neutron-plugin neutron-api:neutron-plugin-api-subordinate neutron-plugin-api-subordinate subordinate + neutron-api:cluster neutron-api:cluster neutron-api-ha peer + neutron-api:neutron-api nova-cloud-controller:neutron-api neutron-api regular + nova-cloud-controller:cluster nova-cloud-controller:cluster nova-ha peer + nova-compute:cloud-compute nova-cloud-controller:cloud-compute nova-compute regular + nova-compute:compute-peer nova-compute:compute-peer nova peer + ntp:ntp-peers ntp:ntp-peers ntp peer + openstack-dashboard:cluster openstack-dashboard:cluster openstack-dashboard-ha peer + ovn-central:ovsdb ovn-chassis:ovsdb ovsdb regular + ovn-central:ovsdb-cms neutron-api-plugin-ovn:ovsdb-cms ovsdb-cms regular + ovn-central:ovsdb-peer ovn-central:ovsdb-peer ovsdb-cluster peer + ovn-chassis:nova-compute nova-compute:neutron-plugin neutron-plugin subordinate + placement-mysql-router:shared-db placement:shared-db mysql-shared subordinate + placement:cluster placement:cluster openstack-ha peer + placement:placement nova-cloud-controller:placement placement regular + rabbitmq-server:amqp cinder:amqp rabbitmq regular + rabbitmq-server:amqp neutron-api:amqp rabbitmq regular + rabbitmq-server:amqp nova-cloud-controller:amqp rabbitmq regular + rabbitmq-server:amqp nova-compute:amqp rabbitmq regular + rabbitmq-server:cluster rabbitmq-server:cluster rabbitmq-ha peer + swift-proxy:cluster swift-proxy:cluster swift-ha peer + swift-storage:swift-storage swift-proxy:swift-storage swift regular + vault-mysql-router:shared-db vault:shared-db mysql-shared subordinate + vault:certificates cinder:certificates tls-certificates regular + vault:certificates glance:certificates tls-certificates regular + vault:certificates keystone:certificates tls-certificates regular + vault:certificates neutron-api-plugin-ovn:certificates tls-certificates regular + vault:certificates neutron-api:certificates tls-certificates regular + vault:certificates nova-cloud-controller:certificates tls-certificates regular + vault:certificates openstack-dashboard:certificates tls-certificates regular + vault:certificates ovn-central:certificates tls-certificates regular + vault:certificates ovn-chassis:certificates tls-certificates regular + vault:certificates placement:certificates tls-certificates regular + vault:cluster vault:cluster vault-ha peer diff --git a/deploy-guide/source/install-openstack.rst b/deploy-guide/source/install-openstack.rst index 2e50ac1..37c1fbf 100644 --- a/deploy-guide/source/install-openstack.rst +++ b/deploy-guide/source/install-openstack.rst @@ -29,7 +29,7 @@ bundle ` for method #2. machine series). See `Charm upgrades`_ for details. #. The Juju machines that comprise the cloud should all be running the same - series (e.g. 'xenial' or 'bionic', but not a mix of the two). See `Series + series (e.g. 'bionic' or 'focal', but not a mix of the two). See `Series upgrade`_ for details. Despite the length of this page, only three distinct Juju commands will be @@ -50,14 +50,22 @@ This page will show how to install a minimal non-HA OpenStack cloud. See OpenStack release ----------------- -As the guide's :doc:`Overview ` section states, OpenStack Train will be -deployed atop Ubuntu 18.04 LTS (Bionic) cloud nodes. In order to achieve this a -cloud archive release of 'cloud:bionic-train' will be used during the install -of each OpenStack application. Note that some applications are not part of the -OpenStack project per se and therefore do not apply (exceptionally, Ceph -applications do use this method). Not using a more recent OpenStack release in -this way will result in a Queens deployment (i.e. Queens is in the Ubuntu -package archive for Bionic). +.. TEMPLATE + As the guide's :doc:`Overview ` section states, OpenStack Ussuri will + be deployed atop Ubuntu 18.04 LTS (Bionic) cloud nodes. In order to achieve + this a cloud archive release of 'cloud:bionic-train' will be used during the + install of each OpenStack application. Note that some applications are not + part of the OpenStack project per se and therefore do not apply + (exceptionally, Ceph applications do use this method). Not using a more + recent OpenStack release in this way will result in a Queens deployment + (i.e. Queens is in the Ubuntu package archive for Bionic). + +As the guide's :doc:`Overview ` section states, OpenStack Ussuri will be +deployed atop Ubuntu 20.04 LTS (Focal) cloud nodes. In order to achieve this +the default package archive ("distro") for the cloud nodes will be used during +the install of each OpenStack application. Note that some applications are not +part of the OpenStack project per se and therefore do not apply (exceptionally, +Ceph applications do use this method). See :ref:`Perform the upgrade ` in the :doc:`OpenStack Upgrades ` appendix for more details on cloud @@ -66,7 +74,8 @@ archive releases and how they are used when upgrading OpenStack. .. important:: The chosen OpenStack release may impact the installation and configuration - instructions. **This guide assumes that OpenStack Train is being deployed.** + instructions. **This guide assumes that OpenStack Ussuri is being + deployed.** Installation progress --------------------- @@ -98,8 +107,8 @@ context now: In the following sections, the various OpenStack components will be added to the 'openstack' model. Each application will be installed from the online -`Charm store`_ and each will typically have configuration options specified via -its own YAML file. +`Charm store`_ and many will have configuration options specified via a YAML +file. .. note:: @@ -112,23 +121,23 @@ Ceph OSD The ceph-osd application is deployed to four nodes with the `ceph-osd`_ charm. The name of the block devices backing the OSDs is dependent upon the hardware -on the nodes. Here, we'll be using the same second drive on each cloud node: -``/dev/sdb``. File ``ceph-osd.yaml`` contains the configuration. If your -devices are not identical across the nodes you will need separate files (or -stipulate them on the command line): +on the nodes. All possible devices across the nodes should be given as the +value for the ``osd-devices`` option (space-separated). Here, we'll be using +the same device on each cloud node: ``/dev/sdb``. File ``ceph-osd.yaml`` +contains the configuration. .. code-block:: yaml ceph-osd: osd-devices: /dev/sdb - source: cloud:bionic-train + source: distro To deploy the application we'll make use of the 'compute' tag we placed on each of these nodes on the :doc:`Install MAAS ` page. .. code-block:: none - juju deploy --constraints tags=compute --config ceph-osd.yaml -n 4 ceph-osd + juju deploy -n 4 --config ceph-osd.yaml --constraints tags=compute ceph-osd If a message from a ceph-osd unit like "Non-pristine devices detected" appears in the output of :command:`juju status` you will need to use actions @@ -147,7 +156,7 @@ Nova compute The nova-compute application is deployed to one node with the `nova-compute`_ charm. We'll then scale-out the application to two other machines. File -``compute.yaml`` contains the configuration: +``nova-compute.yaml`` contains the configuration: .. code-block:: yaml @@ -155,22 +164,15 @@ charm. We'll then scale-out the application to two other machines. File enable-live-migration: true enable-resize: true migration-auth-type: ssh - openstack-origin: cloud:bionic-train + openstack-origin: distro The initial node must be targeted by machine since there are no more free Juju machines (MAAS nodes) available. This means we're placing multiple services on -our nodes. We've chosen machine 1: +our nodes. We've chosen machines 1, 2, and 3: .. code-block:: none - juju deploy --to 1 --config compute.yaml nova-compute - -Now scale-out to machines 2 and 3: - -.. code-block:: none - - juju add-unit --to 2 nova-compute - juju add-unit --to 3 nova-compute + juju deploy -n 3 --to 1,2,3 --config nova-compute.yaml nova-compute .. note:: @@ -183,313 +185,440 @@ Now scale-out to machines 2 and 3: Swift storage ~~~~~~~~~~~~~ -The swift-storage application is deployed to one node (machine 0) with the -`swift-storage`_ charm and then scaled-out to three other machines. File -``swift-storage.yaml`` contains the configuration: +The swift-storage application is deployed to three nodes (machines 0, 2, and +3) with the `swift-storage`_ charm. File ``swift-storage.yaml`` contains the +configuration: .. code-block:: yaml swift-storage: block-device: sdc overwrite: "true" - openstack-origin: cloud:bionic-train + openstack-origin: distro This configuration points to block device ``/dev/sdc``. Adjust according to your available hardware. In a production environment, avoid using a loopback device. -Here are the four deploy commands for the four machines: +Deploy to the three machines: .. code-block:: none - juju deploy --to 0 --config swift-storage.yaml swift-storage - juju add-unit --to 1 swift-storage - juju add-unit --to 2 swift-storage - juju add-unit --to 3 swift-storage + juju deploy -n 3 --to 0,2,3 --config swift-storage.yaml swift-storage + +MySQL InnoDB Cluster +~~~~~~~~~~~~~~~~~~~~ + +MySQL InnoDB Cluster always requires at least three database units. They will +be containerised on machines 0, 1, and 2: + +.. code-block:: none + + juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 mysql-innodb-cluster + +Vault +~~~~~ + +Vault is necessary for managing the TLS certificates that will enable encrypted +communication between cloud applications. + +Deploy it in this way: + +.. code-block:: none + + juju deploy --to lxd:3 vault + +This is the first application to be joined with the cloud database that was set +up in the previous section. The process is: + +#. create an application-specific instance of mysql-router (a subordinate) +#. add a relation between that mysql-router instance and the database +#. add a relation between the application and the mysql-router instance + +The combination of steps 2 and 3 joins the application to the cloud database. + +Here are the corresponding commands for Vault: + +.. code-block:: none + + juju deploy mysql-router vault-mysql-router + juju add-relation vault-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation vault-mysql-router:shared-db vault:shared-db + +Vault now needs to be initialised and unsealed. The vault charm will also need +to be authorised to carry out certain tasks. These steps are covered on the +`Vault`_ page. Perform them now. + +Once the above is completed the Unit section output to command :command:`juju +status` should look similar to this: + +.. code-block:: console + + Unit Workload Agent Machine Public address Ports Message + ceph-osd/0* blocked idle 0 10.0.0.206 Missing relation: monitor + ceph-osd/1 blocked idle 1 10.0.0.208 Missing relation: monitor + ceph-osd/2 blocked idle 2 10.0.0.209 Missing relation: monitor + ceph-osd/3 blocked idle 3 10.0.0.213 Missing relation: monitor + mysql-innodb-cluster/0* active idle 0/lxd/0 10.0.0.211 Unit is ready: Mode: R/W + mysql-innodb-cluster/1 active idle 1/lxd/0 10.0.0.212 Unit is ready: Mode: R/O + mysql-innodb-cluster/2 active idle 2/lxd/0 10.0.0.214 Unit is ready: Mode: R/O + nova-compute/0* blocked idle 1 10.0.0.208 Missing relations: image, messaging + nova-compute/1 blocked idle 2 10.0.0.209 Missing relations: image, messaging + nova-compute/2 blocked idle 3 10.0.0.213 Missing relations: messaging, image + swift-storage/0* blocked idle 0 10.0.0.206 Missing relations: proxy + swift-storage/1 blocked idle 2 10.0.0.209 Missing relations: proxy + swift-storage/2 blocked idle 3 10.0.0.213 Missing relations: proxy + vault/0* active idle 3/lxd/0 10.0.0.217 8200/tcp Unit is ready (active: true, mlock: disabled) + vault-mysql-router/0* active idle 10.0.0.217 Unit is ready .. _neutron_networking: Neutron networking ~~~~~~~~~~~~~~~~~~ -Neutron networking is implemented with three applications: +Neutron networking is implemented with four applications: -* neutron-gateway * neutron-api -* neutron-openvswitch +* neutron-api-plugin-ovn (subordinate) +* ovn-central +* ovn-chassis (subordinate) -File ``neutron.yaml`` contains the configuration for two of them: +File ``neutron.yaml`` contains the configuration necessary for three of them: .. code-block:: yaml - neutron-gateway: - data-port: br-ex:eth1 - bridge-mappings: physnet1:br-ex - openstack-origin: cloud:bionic-train + ovn-chassis: + bridge-interface-mappings: br-ex:eth1 + ovn-bridge-mappings: physnet1:br-ex neutron-api: neutron-security-groups: true flat-network-providers: physnet1 - openstack-origin: cloud:bionic-train + openstack-origin: distro + ovn-central: + source: distro -.. note:: - - The neutron-openvswitch charm does not support option ``openstack-origin`` - due to it being a subordinate charm to the nova-compute charm, which does - support it. - -The ``data-port`` setting refers to a network interface that Neutron Gateway -will bind to. In the above example it is 'eth1' and it should be an unused -interface. In MAAS this interface must be given an *IP mode* of 'Unconfigured' -(see `Post-commission configuration`_ in the MAAS documentation). Set all four -nodes in this way to ensure that any node is able to accommodate Neutron -Gateway. +The ``bridge-interface-mappings`` setting refers to a network interface that +the OVN Chassis will bind to. In the above example it is 'eth1' and it should +be an unused interface. In MAAS this interface must be given an IP mode of +'Unconfigured' (see `Post-commission configuration`_ in the MAAS +documentation). All four nodes should have this interface to ensure that any +node is able to accommodate OVN Chassis. The ``flat-network-providers`` setting enables the Neutron flat network provider used in this example scenario and gives it the name of 'physnet1'. The flat network provider and its name will be referenced when we :ref:`Set up public networking ` on the next page. -The ``bridge-mappings`` setting maps the data-port interface to the flat +The ``ovn-bridge-mappings`` setting maps the data-port interface to the flat network provider. -The neutron-gateway application will be deployed directly on machine 0: +The main OVN application is ovn-central and it requires at least three units. +They will be containerised on machines 0, 1, and 2: .. code-block:: none - juju deploy --to 0 --config neutron.yaml neutron-gateway + juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config neutron.yaml ovn-central -The neutron-api application will be deployed as a container on machine 1: +The neutron-api application will be containerised on machine 1: .. code-block:: none juju deploy --to lxd:1 --config neutron.yaml neutron-api -The neutron-openvswitch application will be deployed by means of a subordinate -charm (it will be installed on a machine once its relation is added): +Deploy the subordinate charm applications: .. code-block:: none - juju deploy neutron-openvswitch + juju deploy neutron-api-plugin-ovn + juju deploy --config neutron.yaml ovn-chassis -Three relations need to be added: +Add the necessary relations: .. code-block:: none - juju add-relation neutron-api:neutron-plugin-api neutron-gateway:neutron-plugin-api - juju add-relation neutron-api:neutron-plugin-api neutron-openvswitch:neutron-plugin-api - juju add-relation neutron-openvswitch:neutron-plugin nova-compute:neutron-plugin + juju add-relation neutron-api-plugin-ovn:neutron-plugin neutron-api:neutron-plugin-api-subordinate + juju add-relation neutron-api-plugin-ovn:ovsdb-cms ovn-central:ovsdb-cms + juju add-relation ovn-chassis:ovsdb ovn-central:ovsdb + juju add-relation ovn-chassis:nova-compute nova-compute:neutron-plugin + juju add-relation neutron-api:certificates vault:certificates + juju add-relation neutron-api-plugin-ovn:certificates vault:certificates + juju add-relation ovn-central:certificates vault:certificates + juju add-relation ovn-chassis:certificates vault:certificates -.. caution:: - - Co-locating units of neutron-openvswitch and neutron-gateway will cause APT - package incompatibility between the two charms on the underlying host. The - result is that packages for these services will be removed: - neutron-metadata-agent, neutron-dhcp-agent, and neutron-l3-agent. - - The alternative is to run the neutron-gateway unit on a LXD container or on - a different host entirely. Another option is to run neutron-openvswitch in - DVR mode. - - Recall that neutron-openvswitch is a subordinate charm; its host is - determined via a relation between it and a principle charm (e.g. - nova-compute). - -Percona cluster -~~~~~~~~~~~~~~~ - -The Percona XtraDB cluster is the OpenStack database of choice. The -percona-cluster application is deployed as a single LXD container on machine 0 -with the `percona-cluster`_ charm. File ``mysql.yaml`` contains the -configuration: - -.. code-block:: yaml - - mysql: - max-connections: 20000 - -To deploy Percona while giving it an application name of 'mysql': +Join neutron-api to the cloud database: .. code-block:: none - juju deploy --to lxd:0 --config mysql.yaml percona-cluster mysql - -Only a single relation is needed: - -.. code-block:: none - - juju add-relation neutron-api:shared-db mysql:shared-db + juju deploy mysql-router neutron-api-mysql-router + juju add-relation neutron-api-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation neutron-api-mysql-router:shared-db neutron-api:shared-db Keystone ~~~~~~~~ -The keystone application is deployed as a single LXD container on machine 3. -File ``keystone.yaml`` contains the configuration: - -.. code-block:: yaml - - keystone: - openstack-origin: cloud:bionic-train +The keystone application will be containerised on machine 0. To deploy: .. code-block:: none - juju deploy --to lxd:3 --config keystone.yaml keystone + juju deploy --to lxd:0 --config openstack-origin=distro keystone -Then add these two relations: +Join keystone to the cloud database: + +.. code-block:: none + + juju deploy mysql-router keystone-mysql-router + juju add-relation keystone-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation keystone-mysql-router:shared-db keystone:shared-db + +Two additional relations can be added at this time: .. code-block:: none - juju add-relation keystone:shared-db mysql:shared-db juju add-relation keystone:identity-service neutron-api:identity-service + juju add-relation keystone:certificates vault:certificates RabbitMQ ~~~~~~~~ -The rabbitmq-server application is deployed as a single LXD container on -machine 0 with the `rabbitmq-server`_ charm. No additional configuration is -required. To deploy: +The rabbitmq-server application will be containerised on machine 2 with the +`rabbitmq-server`_ charm: .. code-block:: none - juju deploy --to lxd:0 rabbitmq-server + juju deploy --to lxd:2 rabbitmq-server -Four relations are needed: +Two relations can be added at this time: .. code-block:: none juju add-relation rabbitmq-server:amqp neutron-api:amqp - juju add-relation rabbitmq-server:amqp neutron-openvswitch:amqp juju add-relation rabbitmq-server:amqp nova-compute:amqp - juju add-relation rabbitmq-server:amqp neutron-gateway:amqp + +At this time the Unit section output to command :command:`juju status` should +look similar to this: + +.. code-block:: console + + Unit Workload Agent Machine Public address Ports Message + ceph-osd/0* blocked idle 0 10.0.0.206 Missing relation: monitor + ceph-osd/1 blocked idle 1 10.0.0.208 Missing relation: monitor + ceph-osd/2 blocked idle 2 10.0.0.209 Missing relation: monitor + ceph-osd/3 blocked idle 3 10.0.0.213 Missing relation: monitor + keystone/0* active idle 0/lxd/2 10.0.0.223 5000/tcp Unit is ready + keystone-mysql-router/0* active idle 10.0.0.223 Unit is ready + mysql-innodb-cluster/0* active idle 0/lxd/0 10.0.0.211 Unit is ready: Mode: R/W + mysql-innodb-cluster/1 active idle 1/lxd/0 10.0.0.212 Unit is ready: Mode: R/O + mysql-innodb-cluster/2 active idle 2/lxd/0 10.0.0.214 Unit is ready: Mode: R/O + neutron-api/0* active idle 1/lxd/2 10.0.0.220 9696/tcp Unit is ready + neutron-api-mysql-router/0* active idle 10.0.0.220 Unit is ready + neutron-api-plugin-ovn/0* active idle 10.0.0.220 Unit is ready + nova-compute/0* blocked idle 1 10.0.0.208 Missing relations: image + ovn-chassis/1 active idle 10.0.0.208 Unit is ready + nova-compute/1 blocked idle 2 10.0.0.209 Missing relations: image + ovn-chassis/0* active idle 10.0.0.209 Unit is ready + nova-compute/2 blocked idle 3 10.0.0.213 Missing relations: image + ovn-chassis/2 active idle 10.0.0.213 Unit is ready + ovn-central/0* active idle 0/lxd/1 10.0.0.218 6641/tcp,6642/tcp Unit is ready (leader: ovnnb_db, ovnsb_db northd: active) + ovn-central/1 active idle 1/lxd/1 10.0.0.221 6641/tcp,6642/tcp Unit is ready + ovn-central/2 active idle 2/lxd/1 10.0.0.219 6641/tcp,6642/tcp Unit is ready + rabbitmq-server/0* active idle 2/lxd/2 10.0.0.222 5672/tcp Unit is ready + swift-storage/0* blocked idle 0 10.0.0.206 Missing relations: proxy + swift-storage/1 blocked idle 2 10.0.0.209 Missing relations: proxy + swift-storage/2 blocked idle 3 10.0.0.213 Missing relations: proxy + vault/0* active idle 3/lxd/0 10.0.0.217 8200/tcp Unit is ready (active: true, mlock: disabled) + vault-mysql-router/0* active idle 10.0.0.217 Unit is ready Nova cloud controller ~~~~~~~~~~~~~~~~~~~~~ The nova-cloud-controller application, which includes nova-scheduler, nova-api, -and nova-conductor services, is deployed as a single LXD container on machine 2 -with the `nova-cloud-controller`_ charm. File ``controller.yaml`` contains the -configuration: +and nova-conductor services, will be containerised on machine 0 with the +`nova-cloud-controller`_ charm. File ``nova-cloud-controller.yaml`` contains +the configuration: .. code-block:: yaml nova-cloud-controller: network-manager: Neutron - openstack-origin: cloud:bionic-train + openstack-origin: distro To deploy: .. code-block:: none - juju deploy --to lxd:2 --config controller.yaml nova-cloud-controller + juju deploy --to lxd:3 --config nova-cloud-controller.yaml nova-cloud-controller -Relations need to be added for six applications: +Join nova-cloud-controller to the cloud database: + +.. code-block:: none + + juju deploy mysql-router ncc-mysql-router + juju add-relation ncc-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation ncc-mysql-router:shared-db nova-cloud-controller:shared-db + +.. note:: + + To keep :command:`juju status` output compact the expected + ``nova-cloud-controller-mysql-router`` application name has been shortened + to ``ncc-mysql-router``. + +Five additional relations can be added at this time: .. code-block:: none - juju add-relation nova-cloud-controller:shared-db mysql:shared-db juju add-relation nova-cloud-controller:identity-service keystone:identity-service juju add-relation nova-cloud-controller:amqp rabbitmq-server:amqp - juju add-relation nova-cloud-controller:quantum-network-service neutron-gateway:quantum-network-service juju add-relation nova-cloud-controller:neutron-api neutron-api:neutron-api juju add-relation nova-cloud-controller:cloud-compute nova-compute:cloud-compute + juju add-relation nova-cloud-controller:certificates vault:certificates Placement ~~~~~~~~~ -The placement application is deployed as a single LXD container on machine 2 -with the `placement`_ charm. File ``placement.yaml`` contains the -configuration: - -.. code-block:: yaml - - placement: - openstack-origin: cloud:bionic-train +The placement application will be containerised on machine 2 with the +`placement`_ charm. To deploy: .. code-block:: none - juju deploy --to lxd:2 --config placement.yaml placement + juju deploy --to lxd:3 --config openstack-origin=distro placement -Relations need to be added for three applications: +Join placement to the cloud database: + +.. code-block:: none + + juju deploy mysql-router placement-mysql-router + juju add-relation placement-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation placement-mysql-router:shared-db placement:shared-db + +Three additional relations can be added at this time: .. code-block:: none - juju add-relation placement:shared-db mysql:shared-db juju add-relation placement:identity-service keystone:identity-service juju add-relation placement:placement nova-cloud-controller:placement + juju add-relation placement:certificates vault:certificates OpenStack dashboard ~~~~~~~~~~~~~~~~~~~ -The openstack-dashboard application (Horizon) is deployed as a single LXD -container on machine 3 with the `openstack-dashboard`_ charm. File -``dashboard.yaml`` contains the configuration: - -.. code-block:: yaml - - openstack-dashboard: - openstack-origin: cloud:bionic-train +The openstack-dashboard application (Horizon) will be containerised on machine +1 with the `openstack-dashboard`_ charm. To deploy: .. code-block:: none - juju deploy --to lxd:3 --config dashboard.yaml openstack-dashboard + juju deploy --to lxd:1 --config openstack-origin=distro openstack-dashboard -A single relation is required: +Join openstack-dashboard to the cloud database: + +.. code-block:: none + + juju deploy mysql-router dashboard-mysql-router + juju add-relation dashboard-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation dashboard-mysql-router:shared-db openstack-dashboard:shared-db + +.. note:: + + To keep :command:`juju status` output compact the expected + ``openstack-dashboard-mysql-router`` application name has been shortened to + ``dashboard-mysql-router``. + +Two additional relations are required: .. code-block:: none juju add-relation openstack-dashboard:identity-service keystone:identity-service + juju add-relation openstack-dashboard:certificates vault:certificates Glance ~~~~~~ -The glance application is deployed as a single container on machine 2 with the -`glance`_ charm. File ``glance.yaml`` contains the configuration: - -.. code-block:: yaml - - glance: - openstack-origin: cloud:bionic-train +The glance application will be containerised on machine 2 with the `glance`_ +charm. To deploy: .. code-block:: none - juju deploy --to lxd:2 --config glance.yaml glance + juju deploy --to lxd:3 --config openstack-origin=distro glance -Four relations are needed: +Join glance to the cloud database: + +.. code-block:: none + + juju deploy mysql-router glance-mysql-router + juju add-relation glance-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation glance-mysql-router:shared-db glance:shared-db + +Four additional relations can be added at this time: .. code-block:: none juju add-relation glance:image-service nova-cloud-controller:image-service juju add-relation glance:image-service nova-compute:image-service - juju add-relation glance:shared-db mysql:shared-db juju add-relation glance:identity-service keystone:identity-service + juju add-relation glance:certificates vault:certificates + +At this time the Unit section output to command :command:`juju status` should +look similar to this: + +.. code-block:: console + + Unit Workload Agent Machine Public address Ports Message + ceph-osd/0* blocked idle 0 10.0.0.206 Missing relation: monitor + ceph-osd/1 blocked idle 1 10.0.0.208 Missing relation: monitor + ceph-osd/2 blocked idle 2 10.0.0.209 Missing relation: monitor + ceph-osd/3 blocked idle 3 10.0.0.213 Missing relation: monitor + glance/0* active idle 3/lxd/3 10.0.0.224 9292/tcp Unit is ready + glance-mysql-router/0* active idle 10.0.0.224 Unit is ready + keystone/0* active idle 0/lxd/2 10.0.0.223 5000/tcp Unit is ready + keystone-mysql-router/0* active idle 10.0.0.223 Unit is ready + mysql-innodb-cluster/0* active idle 0/lxd/0 10.0.0.211 Unit is ready: Mode: R/W + mysql-innodb-cluster/1 active idle 1/lxd/0 10.0.0.212 Unit is ready: Mode: R/O + mysql-innodb-cluster/2 active idle 2/lxd/0 10.0.0.214 Unit is ready: Mode: R/O + neutron-api/0* active idle 1/lxd/2 10.0.0.220 9696/tcp Unit is ready + neutron-api-mysql-router/0* active idle 10.0.0.220 Unit is ready + neutron-api-plugin-ovn/0* active idle 10.0.0.220 Unit is ready + nova-cloud-controller/0* active idle 3/lxd/1 10.0.0.216 8774/tcp,8775/tcp Unit is ready + ncc-mysql-router/0* active idle 10.0.0.216 Unit is ready + nova-compute/0* active idle 1 10.0.0.208 Unit is ready + ovn-chassis/1 active idle 10.0.0.208 Unit is ready + nova-compute/1 active idle 2 10.0.0.209 Unit is ready + ovn-chassis/0* active idle 10.0.0.209 Unit is ready + nova-compute/2 active idle 3 10.0.0.213 Unit is ready + ovn-chassis/2 active idle 10.0.0.213 Unit is ready + openstack-dashboard/0* active idle 1/lxd/3 10.0.0.210 80/tcp,443/tcp Unit is ready + dashboard-mysql-router/0* active idle 10.0.0.210 Unit is ready + ovn-central/0* active idle 0/lxd/1 10.0.0.218 6641/tcp,6642/tcp Unit is ready (leader: ovnnb_db, ovnsb_db northd: active) + ovn-central/1 active idle 1/lxd/1 10.0.0.221 6641/tcp,6642/tcp Unit is ready + ovn-central/2 active idle 2/lxd/1 10.0.0.219 6641/tcp,6642/tcp Unit is ready + placement/0* active idle 3/lxd/2 10.0.0.215 8778/tcp Unit is ready + placement-mysql-router/0* active idle 10.0.0.215 Unit is ready + rabbitmq-server/0* active idle 2/lxd/2 10.0.0.222 5672/tcp Unit is ready + swift-storage/0* blocked idle 0 10.0.0.206 Missing relations: proxy + swift-storage/1 blocked idle 2 10.0.0.209 Missing relations: proxy + swift-storage/2 blocked idle 3 10.0.0.213 Missing relations: proxy + vault/0* active idle 3/lxd/0 10.0.0.217 8200/tcp Unit is ready (active: true, mlock: disabled) + vault-mysql-router/0* active idle 10.0.0.217 Unit is ready Ceph monitor ~~~~~~~~~~~~ -The ceph-mon application is deployed as a container on machines 1, 2, and 3 -with the `ceph-mon`_ charm. File ``ceph-mon.yaml`` contains the configuration: - -.. code-block:: yaml - - ceph-mon: - source: cloud:bionic-train +The ceph-mon application will be containerised on machines 0, 1, and 2 with the +`ceph-mon`_ charm. To deploy: .. code-block:: none - juju deploy --to lxd:1 --config ceph-mon.yaml ceph-mon - juju add-unit --to lxd:2 ceph-mon - juju add-unit --to lxd:3 ceph-mon + juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config source=distro ceph-mon -Three relations are needed: +Three relations can be added at this time: .. code-block:: none @@ -497,20 +626,26 @@ Three relations are needed: juju add-relation ceph-mon:client nova-compute:ceph juju add-relation ceph-mon:client glance:ceph -The last relation makes Ceph the backend for Glance. +For the above relations, + +* The nova-compute:ceph relation makes Ceph the storage backend for Nova + non-bootable disk images. The nova-compute charm option + ``libvirt-image-backend`` must be set to 'rbd' for this to take effect. + +* The glance:ceph relation makes Ceph the storage backend for Glance. Cinder ~~~~~~ -The cinder application is deployed to a container on machine 1 with the -`cinder`_ charm. File ``cinder.yaml`` contains the configuration: +The cinder application will be containerised on machine 1 with the `cinder`_ +charm. File ``cinder.yaml`` contains the configuration: .. code-block:: yaml cinder: glance-api-version: 2 block-device: None - openstack-origin: cloud:bionic-train + openstack-origin: distro To deploy: @@ -518,35 +653,48 @@ To deploy: juju deploy --to lxd:1 --config cinder.yaml cinder -Relations need to be added for five applications: +Join cinder to the cloud database: + +.. code-block:: none + + juju deploy mysql-router cinder-mysql-router + juju add-relation cinder-mysql-router:db-router mysql-innodb-cluster:db-router + juju add-relation cinder-mysql-router:shared-db cinder:shared-db + +Four additional relations can be added at this time: .. code-block:: none juju add-relation cinder:cinder-volume-service nova-cloud-controller:cinder-volume-service - juju add-relation cinder:shared-db mysql:shared-db juju add-relation cinder:identity-service keystone:identity-service juju add-relation cinder:amqp rabbitmq-server:amqp juju add-relation cinder:image-service glance:image-service -In addition, like Glance, Cinder will use Ceph as its backend. This will be -implemented via the `cinder-ceph`_ subordinate charm: +The above glance:image-service relation will enable Cinder to consume the +Glance API (e.g. making Cinder able to perform volume snapshots of Glance +images). + +Like Glance, Cinder will use Ceph as its storage backend (hence ``block-device: +None`` in the configuration file). This will be implemented via the +`cinder-ceph`_ subordinate charm: .. code-block:: none juju deploy cinder-ceph -A relation is needed to Cinder, Ceph, and Nova: +Four relations need to be added: .. code-block:: none juju add-relation cinder-ceph:storage-backend cinder:storage-backend juju add-relation cinder-ceph:ceph ceph-mon:client juju add-relation cinder-ceph:ceph-access nova-compute:ceph-access + juju add-relation cinder:certificates vault:certificates Swift proxy ~~~~~~~~~~~ -The swift-proxy application is deployed to a container on machine 0 with the +The swift-proxy application will be containerised on machine 3 with the `swift-proxy`_ charm. File ``swift-proxy.yaml`` contains the configuration: .. code-block:: yaml @@ -563,7 +711,7 @@ To deploy: .. code-block:: none - juju deploy --to lxd:0 --config swift-proxy.yaml swift-proxy + juju deploy --to lxd:3 --config swift-proxy.yaml swift-proxy Two relations are needed: @@ -575,15 +723,15 @@ Two relations are needed: NTP ~~~ -The final component needed is an NTP client to keep everything synchronised. -This is done with the `ntp`_ subordinate charm: +The final component is an NTP client to keep the time on each cloud node +synchronised. This is done with the `ntp`_ subordinate charm: .. code-block:: none juju deploy ntp -This single relation will add an ntp unit alongside each of the four ceph-osd -units: +The below relation will add an ntp unit alongside each ceph-osd unit, and +thus on each of the four cloud nodes: .. code-block:: none @@ -596,9 +744,8 @@ Final results and dashboard access Once all the applications have been deployed and the relations between them have been added we need to wait for the output of :command:`juju status` to -settle. The final results should be devoid of any error-like messages. If your -terminal supports colours then you should see only green (not amber nor red) . -Example (monochrome) output for a successful cloud deployment is given +settle. The final results should be devoid of any error-like messages. Example +output (including relations) for a successful cloud deployment is given :ref:`here `. One milestone in the deployment of OpenStack is the first login to the Horizon @@ -608,7 +755,7 @@ Obtain the address in this way: .. code-block:: none - juju status --format=yaml openstack-dashboard | grep public-address | awk '{print $2}' + juju status --format=yaml openstack-dashboard | grep public-address | awk '{print $2}' | head -1 The password is queried from Keystone: @@ -616,12 +763,12 @@ The password is queried from Keystone: juju run --unit keystone/0 leader-get admin_passwd -In this example, the address is '10.0.0.14' and the password is +In this example, the address is '10.0.0.210' and the password is 'kohy6shoh3diWav5'. The dashboard URL then becomes: -**http://10.0.0.14/horizon** +**http://10.0.0.210/horizon** And the credentials are: @@ -633,6 +780,7 @@ And the credentials are: Once logged in you should see something like this: .. figure:: ./media/install-openstack_horizon.png + :scale: 70% :alt: Horizon dashboard Next steps @@ -640,7 +788,8 @@ Next steps You have successfully deployed OpenStack using both Juju and MAAS. The next step is to render the cloud functional for users. This will involve setting up -networks, images, and a user environment. +networks, images, and a user environment. Go to :doc:`Configure OpenStack +` now. .. LINKS .. _OpenStack Charms: https://docs.openstack.org/charm-guide/latest/openstack-charms.html @@ -651,6 +800,7 @@ networks, images, and a user environment. .. _Deploying applications: https://jaas.ai/docs/deploying-applications .. _Deploying to specific machines: https://jaas.ai/docs/deploying-advanced-applications#heading--deploying-to-specific-machines .. _Managing relations: https://jaas.ai/docs/relations +.. _Vault: app-vault.html .. CHARMS .. _ceph-mon: https://jaas.ai/ceph-mon diff --git a/deploy-guide/source/media/install-openstack_horizon.png b/deploy-guide/source/media/install-openstack_horizon.png index b03b36eae5ef58425dd2894008abd8e618abb37b..caf568e079b848b995bffac38e17e0910d3fa758 100644 GIT binary patch literal 2215297 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 B4Qc=Y