diff --git a/docs/pages/0040-reference-architecture.rst b/docs/pages/0040-reference-architecture.rst index 383eafe649..2b29c06c27 100644 --- a/docs/pages/0040-reference-architecture.rst +++ b/docs/pages/0040-reference-architecture.rst @@ -6,6 +6,7 @@ Reference Architecture .. contents:: :local: .. include:: /pages/reference-architecture/0010-overview.rst +.. include:: /pages/reference-architecture/0015-closer-look.rst .. include:: /pages/reference-architecture/0020-logical-setup.rst .. include:: /pages/reference-architecture/0030-cluster-sizing.rst .. include:: /pages/reference-architecture/0040-network-setup.rst diff --git a/docs/pages/0050-installation-instructions.rst b/docs/pages/0050-installation-instructions.rst index 457fd98529..c60ae81fef 100644 --- a/docs/pages/0050-installation-instructions.rst +++ b/docs/pages/0050-installation-instructions.rst @@ -5,11 +5,14 @@ Create an example multi-node OpenStack cluster using Fuel .. contents:: :local: +.. include:: /pages/installation-instructions/0000-preamble.rst .. include:: /pages/installation-instructions/0010-introduction.rst +.. include:: /pages/installation-instructions/0015-before-you-start.rst .. include:: /pages/installation-instructions/0020-machines.rst .. include:: /pages/installation-instructions/0040-installing-configuring-puppet-master.rst -.. include:: /pages/installation-instructions/0055-installing-os-using-cobbler.rst +.. include:: /pages/installation-instructions/0042-installing-the-iso.rst .. include:: /pages/installation-instructions/0050-configuring-cobbler.rst +.. include:: /pages/installation-instructions/0055-installing-os-using-cobbler.rst .. include:: /pages/installation-instructions/0045-configuring-the-iso.rst .. include:: /pages/installation-instructions/0057-prepare-for-deployment.rst .. include:: /pages/installation-instructions/0060-deploying-openstack.rst diff --git a/docs/pages/installation-instructions/0000-preamble.rst b/docs/pages/installation-instructions/0000-preamble.rst new file mode 100644 index 0000000000..91df74812c --- /dev/null +++ b/docs/pages/installation-instructions/0000-preamble.rst @@ -0,0 +1,5 @@ +In this section, you’ll learn how to do an actual installation of OpenStack using Fuel. In addition to getting a feel for the steps involved, you’ll also gain some familiarity with some of your customization options. While Fuel does provide several different deployment topologies out of the box, its common to want to tweak those architectures for your own situation, so you’ll get some practice moving certain features around from the standard installation. + +The first step, however, is to commit to a deployment template. A fairly balanced small size, yet fully featured, deployment is the Multi-node (HA) Swift Compact deployment, so that’s what we’ll be using through the rest of this guide. + +Real world installations require a physical hardware infrastructure, but you can easily deploy a small simulation cloud on a single physical machine using VirtualBox. You can follow these instructions in order to install an OpenStack cloud into a test environment using VirtualBox, or to get a production-grade installation using actual hardware. diff --git a/docs/pages/installation-instructions/0010-introduction.rst b/docs/pages/installation-instructions/0010-introduction.rst index 8995ff7349..ec48742ad9 100644 --- a/docs/pages/installation-instructions/0010-introduction.rst +++ b/docs/pages/installation-instructions/0010-introduction.rst @@ -1,23 +1,3 @@ -In this section, you'll learn how to do an actual installation of -OpenStack using Fuel. In addition to getting a feel for the steps -involved, you'll also gain some familiarity with some of your -customization options. While Fuel does provide several different -deployment topologies out of the box, its common to want to tweak -those architectures for your own situation, so you'll get some practice -moving certain features around from the standard installation. - -The first step, however, is to commit to a deployment template. A -fairly balanced small size, yet fully featured, deployment is the -Multi-node (HA) Swift Compact deployment, so that's what we'll be using -through the rest of this guide. - -Real world installations require a physical hardware infrastructure, -but you can easily deploy a small simulation cloud on a single -physical machine using VirtualBox. You can follow these instructions -in order to install an OpenStack cloud into a test environment using -VirtualBox, or to get a production-grade installation using actual -hardware. - How installation works ---------------------- @@ -34,25 +14,3 @@ In contrast with version 2.0 of Fuel, version 2.1 includes orchestration capabil Start by designing your architecture. -Before you start ----------------- - -Before you begin your installation, you will need to make a number of important -decisions: - -* **OpenStack features.** You must choose which of the optional OpenStack features you want. For example, you must decide whether you want to install Swift, whether you want Glance to use Swift for image storage, whether you want Cinder for block storage, and whether you want nova-network or Quantum to handle your network connectivity. In the case of this example, we will be installing Swift, and Glance will be using it. We'll also be using Cinder for block storage. Because it can be easily installed using orchestration, we will also be using Quantum. -* **Deployment topology.** The first decision is whether your deployment requires high availability. If you do choose to do an HA deployment, you have a choice regarding the number of controllers you want to have. Following the recommendations in the previous section for a typical HA topology, we will use 3 OpenStack controllers. -* **Cobbler server and Puppet Master.** The heart of a Fuel install is the combination of Puppet Master and Cobbler used to create your resources. Although Cobbler and Puppet Master can be installed on separate machines, it is common practice to install both on a single machine for small to medium size clouds, and that's what we'll be doing in this example. (By default, the Fuel ISO creates a single server with both services.) -* **Domain name.** Puppet clients generate a Certificate Signing Request (CSR), which is then signed by Puppet Master. The signed certificate can then be used to authenticate the client during provisioning. Certificate generation requires a fully qualified hostname, so you must choose a domain name to be used in your installation. We'll leave this up to you. -* **Network addresses.** OpenStack requires a minimum of three networks. If you are deploying on physical hardware two of them -- the public network and the internal, or management network -- must be routable in your networking infrastructure. Additionally, a set of private network addresses should be selected for automatic assignment to guest VMs. (These are fixed IPs for the private network). In our case, we are allocating network addresses as follows: - - * Public network: 10.20.1.0/24 - * Internal network: 10.20.0.0/24 - * Private network: 192.168.0.0/16 - -* **Network interfaces.** All of those networks need to be assigned to the available NIC cards on the allocated machines. Additionally, if a fourth NIC is available, Cinder or block storage traffic can also be separated and delegated to the fourth NIC. In our case, were assigning networks as follows: - - * Public network: eth0 - * Internal network: eth1 - * Private network: eth2 - diff --git a/docs/pages/installation-instructions/0015-before-you-start.rst b/docs/pages/installation-instructions/0015-before-you-start.rst new file mode 100644 index 0000000000..631cc39185 --- /dev/null +++ b/docs/pages/installation-instructions/0015-before-you-start.rst @@ -0,0 +1,23 @@ + +Before you start +---------------- + +Before you begin your installation, you will need to make a number of important +decisions: + +* **OpenStack features.** You must choose which of the optional OpenStack features you want. For example, you must decide whether you want to install Swift, whether you want Glance to use Swift for image storage, whether you want Cinder for block storage, and whether you want nova-network or Quantum to handle your network connectivity. In the case of this example, we will be installing Swift, and Glance will be using it. We'll also be using Cinder for block storage. Because it can be easily installed using orchestration, we will also be using Quantum. +* **Deployment topology.** The first decision is whether your deployment requires high availability. If you do choose to do an HA deployment, you have a choice regarding the number of controllers you want to have. Following the recommendations in the previous section for a typical HA topology, we will use 3 OpenStack controllers. +* **Cobbler server and Puppet Master.** The heart of a Fuel install is the combination of Puppet Master and Cobbler used to create your resources. Although Cobbler and Puppet Master can be installed on separate machines, it is common practice to install both on a single machine for small to medium size clouds, and that's what we'll be doing in this example. (By default, the Fuel ISO creates a single server with both services.) +* **Domain name.** Puppet clients generate a Certificate Signing Request (CSR), which is then signed by Puppet Master. The signed certificate can then be used to authenticate the client during provisioning. Certificate generation requires a fully qualified hostname, so you must choose a domain name to be used in your installation. We'll leave this up to you. +* **Network addresses.** OpenStack requires a minimum of three networks. If you are deploying on physical hardware two of them -- the public network and the internal, or management network -- must be routable in your networking infrastructure. Additionally, a set of private network addresses should be selected for automatic assignment to guest VMs. (These are fixed IPs for the private network). In our case, we are allocating network addresses as follows: + + * Public network: 10.20.1.0/24 + * Internal network: 10.20.0.0/24 + * Private network: 192.168.0.0/16 + +* **Network interfaces.** All of those networks need to be assigned to the available NIC cards on the allocated machines. Additionally, if a fourth NIC is available, Cinder or block storage traffic can also be separated and delegated to the fourth NIC. In our case, were assigning networks as follows: + + * Public network: eth0 + * Internal network: eth1 + * Private network: eth2 + diff --git a/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst b/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst index c4c541fec1..dca8e46117 100644 --- a/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst +++ b/docs/pages/installation-instructions/0040-installing-configuring-puppet-master.rst @@ -157,10 +157,4 @@ Start up VirtualBox and create a new machine as follows: * Attach the downloaded ISO as a drive -Installing Fuel from the ISO ----------------------------- - -Start the new machine to install the ISO. The only real installation decision you will need to make is to specify the interface through which the installer can access the Internet: - -.. image:: /pages/installation-instructions/screenshots/fuel-iso-choose-nic.png diff --git a/docs/pages/installation-instructions/0042-installing-the-iso.rst b/docs/pages/installation-instructions/0042-installing-the-iso.rst new file mode 100644 index 0000000000..7b58a84a5f --- /dev/null +++ b/docs/pages/installation-instructions/0042-installing-the-iso.rst @@ -0,0 +1,7 @@ +Installing Fuel from the ISO +---------------------------- + +Start the new machine to install the ISO. The only real installation decision you will need to make is to specify the interface through which the installer can access the Internet: + +.. image:: /pages/installation-instructions/screenshots/fuel-iso-choose-nic.png + diff --git a/docs/pages/installation-instructions/0050-configuring-cobbler.rst b/docs/pages/installation-instructions/0050-configuring-cobbler.rst index 59c6f56208..62292e16e7 100644 --- a/docs/pages/installation-instructions/0050-configuring-cobbler.rst +++ b/docs/pages/installation-instructions/0050-configuring-cobbler.rst @@ -51,7 +51,7 @@ Set the ``public_net_router`` to be the master node. The ``ext_bridge`` is, in public_interface: eth1 private_interface: eth2 -Earlier, we decided which interfaces to use for which networks; note that here. +Earlier, we decided which interfaces to use for which networks; note that here. :: default_gateway: 10.20.0.10 @@ -121,7 +121,7 @@ The ``cobbler_common`` section applies to all machines:: # for Ubuntu profile: "ubuntu_1204_x86_64" -Fuel can install CentOS or Ubuntu on your servers, or you can add a profile of your own. +Fuel can install CentOS or Ubuntu on your servers, or you can add a profile of your own. :: netboot-enabled: "1" # for Ubuntu @@ -136,8 +136,8 @@ Set the default nameserver to be fuel-pm, and change the domain name to your own puppet_auto_setup=1 \ puppet_master=fuel-pm.your-domain-name.com \ -Change the fully-qualified domain name for the Puppet Master to reflect your own domain name. - :: +Change the fully-qualified domain name for the Puppet Master to reflect your own domain name. :: + puppet_enable=0 \ ntp_enable=1 \ mco_auto_setup=1 \ @@ -193,7 +193,7 @@ Repeat that step for any additional controllers:: static: "1" ip-address: "10.20.0.102" netmask: "255.255.255.0" - dns-name: "fuel-controller-02.your-domain-name" + dns-name: "fuel-controller-02.your-domain-name.com" management: "1" eth1: static: "0" @@ -221,7 +221,7 @@ Repeat that step for any additional controllers:: static: "1" ip-address: "10.20.0.103" netmask: "255.255.255.0" - dns-name: "fuel-controller-03.your-domain-name" + dns-name: "fuel-controller-03.your-domain-name.com" management: "1" eth1: static: "0" @@ -249,7 +249,7 @@ Repeat that step for any additional controllers:: static: "1" ip-address: "10.20.0.201" netmask: "255.255.255.0" - dns-name: "fuel-compute-01.your-domain-name" + dns-name: "fuel-compute-01.your-domain-name.com" management: "1" eth1: static: "0" @@ -268,6 +268,13 @@ Repeat that step for any additional controllers:: This file has been customized for the example in the docs, but in general you will need to be certain that IP and gateway information -- in addition to the MAC addresses -- matches the decisions you made earlier in the process. - +Load the configuration +^^^^^^^^^^^^^^^^^^^^^^ + +Once you've completed the changes to ``config.yaml``, you need to load the information into Cobbler. To do that, use the ``cobbler_system`` script:: + + cobbler_system -f config.yaml + +Now you're ready to start spinning up the controllers and compute nodes. diff --git a/docs/pages/reference-architecture/0010-overview.rst b/docs/pages/reference-architecture/0010-overview.rst index bc43fc561d..6ef0d74c0a 100644 --- a/docs/pages/reference-architecture/0010-overview.rst +++ b/docs/pages/reference-architecture/0010-overview.rst @@ -153,29 +153,4 @@ architecture. Lets take a closer look at the details of this topology. -A closer look at the Multi-node (HA) deployment (compact Swift) -------------------------------------------------------------------- - -In this section, you'll learn more about the Multi-node (HA) Compact -Swift topology and how it achieves high availability in preparation -for installing this cluster in section 3. As you may recall, this -topology looks something like this: - -.. image:: https://docs.google.com/drawings/d/1xLv4zog19j0MThVGV9gSYa4wh1Ma4MQYsBz-4vE1xvg/pub?w=767&h=413 - - -OpenStack services are interconnected by RESTful HTTP-based APIs and -AMQP-based RPC messages. So, redundancy for stateless OpenStack API -services is implemented through the combination of Virtual IP(VIP) -management using keepalived and load balancing using HAProxy. Stateful -OpenStack components, such as state database and messaging server, -rely on their respective active/active modes for high availability. -For example, RabbitMQ uses built-in clustering capabilities, while the -database uses MySQL/Galera replication. - -.. image:: https://docs.google.com/drawings/pub?id=1PzRBUaZEPMG25488mlb42fRdlFS3BygPwbAGBHudnTM&w=750&h=491 - -Lets take a closer look at what an OpenStack deployment looks like, and -what it will take to achieve high availability for an OpenStack -deployment. diff --git a/docs/pages/reference-architecture/0015-closer-look.rst b/docs/pages/reference-architecture/0015-closer-look.rst new file mode 100644 index 0000000000..50bee5e4e0 --- /dev/null +++ b/docs/pages/reference-architecture/0015-closer-look.rst @@ -0,0 +1,26 @@ +A closer look at the Multi-node (HA) deployment (compact Swift) +------------------------------------------------------------------- + +In this section, you'll learn more about the Multi-node (HA) Compact +Swift topology and how it achieves high availability in preparation +for installing this cluster in section 3. As you may recall, this +topology looks something like this: + +.. image:: https://docs.google.com/drawings/d/1xLv4zog19j0MThVGV9gSYa4wh1Ma4MQYsBz-4vE1xvg/pub?w=767&h=413 + + +OpenStack services are interconnected by RESTful HTTP-based APIs and +AMQP-based RPC messages. So, redundancy for stateless OpenStack API +services is implemented through the combination of Virtual IP(VIP) +management using keepalived and load balancing using HAProxy. Stateful +OpenStack components, such as state database and messaging server, +rely on their respective active/active modes for high availability. +For example, RabbitMQ uses built-in clustering capabilities, while the +database uses MySQL/Galera replication. + +.. image:: https://docs.google.com/drawings/pub?id=1PzRBUaZEPMG25488mlb42fRdlFS3BygPwbAGBHudnTM&w=750&h=491 + +Lets take a closer look at what an OpenStack deployment looks like, and +what it will take to achieve high availability for an OpenStack +deployment. +