James Slagle fe8af718ae Document additional NODE vars
$NODE_COUNT, $NODE_DISK, and $UNDERCLOUD_NODE_DISK weren't previously
documented.

Also, document the default values in the examples shown.

Change-Id: Ifc99a88625f97221fd4cad77e3d50f112f8b8e3f
2016-08-03 13:49:17 -04:00

290 lines
10 KiB
ReStructuredText

Virtual Environment
-----------------------------------
|project| can be used in a virtual environment using virtual machines instead
of actual baremetal. However, one baremetal machine is still
needed to act as the host for the virtual machines.
Minimum System Requirements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
By default, this setup creates 3 virtual machines:
* 1 Undercloud
* 1 Overcloud Controller
* 1 Overcloud Compute
Each virtual machine must consist of at least 4 GB of memory and 40 GB of disk
space [#]_.
.. note::
The virtual machine disk files are thinly provisioned and will not take up
the full 40GB initially.
The baremetal machine must meet the following minimum system requirements:
* Virtualization hardware extensions enabled (nested KVM is **not** supported)
* 1 quad core CPU
* 12 GB free memory
* 120 GB disk space
..
<REMOVE WHEN HA IS AVAILABLE>
For minimal **HA (high availability)** deployment you need at least 3 Overcloud
Controllers and 2 Overcloud Computes which increases the minimum system
requirements up to:
* 24 GB free memory
* 240 GB disk space.
|project| currently supports the following operating systems:
* RHEL 7.1 x86_64 or
* CentOS 7 x86_64
.. _preparing_virtual_environment:
Preparing the Virtual Environment (Automated)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#. Install RHEL 7.1 Server x86_64 or CentOS 7 x86_64 on your host machine.
.. admonition:: RHEL Portal Registration
:class: portal
Register the host machine using Subscription Management.::
sudo subscription-manager register --username="[your username]" --password="[your password]"
# Find this with `subscription-manager list --available`
sudo subscription-manager attach --pool="[pool id]"
# Verify repositories are available
sudo subscription-manager repos --list
# Enable repositories needed
sudo subscription-manager repos --enable=rhel-7-server-rpms \
--enable=rhel-7-server-optional-rpms --enable=rhel-7-server-extras-rpms \
--enable=rhel-7-server-openstack-6.0-rpms
.. admonition:: RHEL Satellite Registration
:class: satellite
To register the host machine to a Satellite, the following repos must
be synchronized on the Satellite::
rhel-7-server-rpms
rhel-7-server-optional-rpms
rhel-7-server-extras-rpms
rhel-7-server-openstack-6.0-rpms
See the `Red Hat Satellite User Guide`_ for how to configure the system to
register with a Satellite server. It is suggested to use an activation
key that automatically enables the above repos for registered systems.
#. Make sure sshd service is installed and running.
#. The user performing all of the installation steps on the virt host needs to
have sudo enabled. You can use an existing user or use the following commands
to create a new user called stack with password-less sudo enabled. Do not run
the rest of the steps in this guide as root.
* Example commands to create a user::
sudo useradd stack
sudo passwd stack # specify a password
echo "stack ALL=(root) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/stack
sudo chmod 0440 /etc/sudoers.d/stack
#. Make sure you are logged in as the non-root user you intend to use.
* Example command to log in as the non-root user::
su - stack
#. Enable needed repositories:
.. include:: ../repositories.txt
.. We need to manually continue our list numbering here since the above
"include" directive breaks the numbering.
5. Install instack-undercloud::
sudo yum install -y instack-undercloud
#. The virt setup automatically sets up a vm for the Undercloud installed with
the same base OS as the host. See the Note below to choose a different
OS:
.. note::
To setup the undercloud vm with a base OS different from the host,
set the ``$NODE_DIST`` environment variable prior to running
``instack-virt-setup``:
.. admonition:: CentOS
:class: centos
::
export NODE_DIST=centos7
.. admonition:: RHEL
:class: rhel
::
export NODE_DIST=rhel7
#. Run the script to setup your virtual environment:
.. note::
By default, 2 overcloud VMs will be created with 1 vCPU, 5120 MiB RAM and
40 GB. To adjust those values set the following::
export NODE_COUNT=2
export NODE_CPU=1
export NODE_MEM=5120
export NODE_DISK=40
The undercloud VM will be created with 2 vCPU and 6144 MiB and 30 GB of
disk by default. To ajust those values set the following::
export UNDERCLOUD_NODE_CPU=2
export UNDERCLOUD_NODE_MEM=6144
export UNDERCLOUD_NODE_DISK=30
.. admonition:: RHEL
:class: rhel
Download the RHEL 7.1 cloud image or copy it over from a different
location, for example: https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.1/x86_64/product-downloads,
and define the needed environment variables for RHEL 7.1 prior to
running ``instack-virt-setup``::
export DIB_LOCAL_IMAGE=rhel-guest-image-7.1-20150224.0.x86_64.qcow2
.. admonition:: RHEL Portal Registration
:class: portal
To register the Undercloud vm to the Red Hat Portal define the following
variables::
export REG_METHOD=portal
export REG_USER="[your username]"
export REG_PASSWORD="[your password]"
# Find this with `sudo subscription-manager list --available`
export REG_POOL_ID="[pool id]"
export REG_REPOS="rhel-7-server-rpms rhel-7-server-extras-rpms rhel-ha-for-rhel-7-server-rpms \
rhel-7-server-optional-rpms rhel-7-server-openstack-6.0-rpms"
.. admonition:: RHEL Satellite Registration
:class: satellite
To register the Undercloud vm to a Satellite define the following
variables. Only using an activation key is supported when registering
to Satellite, username/password is not supported for security reasons.
The activation key must enable the repos shown::
export REG_METHOD=satellite
# REG_SAT_URL should be in the format of:
# http://<satellite-hostname>
export REG_SAT_URL="[satellite url]"
export REG_ORG="[satellite org]"
# Activation key must enable these repos:
# rhel-7-server-rpms
# rhel-7-server-optional-rpms
# rhel-7-server-extras-rpms
# rhel-7-server-openstack-6.0-rpms
export REG_ACTIVATION_KEY="[activation key]"
.. admonition:: Ceph
:class: ceph
To use Ceph you will need at least one additional virtual machine to be
provisioned as a Ceph OSD; set the ``NODE_COUNT`` variable to 3, from a
default of 2, so that the overcloud will have exactly one more::
export NODE_COUNT=3
.. note::
The ``TESTENV_ARGS`` environment variable can be used to customize the
virtual environment configuration. For example, it could be used to
enable additional networks as follows::
export TESTENV_ARGS="--baremetal-bridge-names 'brbm brbm1 brbm2'"
.. _there:
.. note::
The ``LIBVIRT_VOL_POOL`` and ``LIBVIRT_VOL_POOL_TARGET`` environment
variables govern the name and location respectively for the storage
pool used by libvirt. The defaults are the 'default' pool with
target ``/var/lib/libvirt/images/``. These variables are useful if your
current partitioning scheme results in insufficient space for running
any useful number of vms (see the `Minimum Requirements`_)::
# you can check the space available to the default location like
df -h /var/lib/libvirt/images
# If you wish to specify an alternative pool name:
export LIBVIRT_VOL_POOL=tripleo
# If you want to specify an alternative target
export LIBVIRT_VOL_POOL_TARGET=/home/vm_storage_pool
If you don't have a 'default' pool defined at all, setting the target
is sufficient as the default will be created with your specified
target (and directories created as necessary). It isn't possible to
change the target for an existing volume pool with this method, so if
you already have a 'default' pool and cannot remove it, you should also
specify a new pool name to be created.
::
instack-virt-setup
If the script encounters problems, see
:doc:`../troubleshooting/troubleshooting-virt-setup`.
When the script has completed successfully it will output the IP address of the
instack vm that has now been installed with a base OS.
Running ``sudo virsh list --all`` [#]_ will show you now have one virtual machine called
*instack* and 2 called *baremetal[0-1]*.
You can ssh to the instack vm as the root user::
ssh root@<instack-vm-ip>
The vm contains a ``stack`` user to be used for installing the undercloud. You
can ``su - stack`` to switch to the stack user account.
Continue with :doc:`../installation/installation`.
.. rubric:: Footnotes
.. [#] Note that some default partitioning schemes may not provide
enough space to the partition containing the default path for libvirt image
storage (/var/lib/libvirt/images). The easiest fix is to export the
LIBVIRT_VOL_POOL_TARGET and LIBVIRT_VOL_POOL parameters in your environment
prior to running instack-virt-setup above (see note `there`_).
Alternatively you can just customize the partition layout at the time of
install to provide at least 200 GB of space for that path.
.. [#] The libvirt virtual machines have been defined under the system
instance (qemu:///system). The user account executing these instructions
gets added to the libvirtd group which grants passwordless access to
the system instance. It does however require logging into a new shell (or
desktop environment session if wanting to use virt-manager) before this
change will be fully applied. To avoid having to re-login, you can use
``sudo virsh``.
.. _Red Hat Satellite User Guide: https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/
.. _Minimum Requirements: http://docs.openstack.org/developer/tripleo-docs/environments/virtual.html#minimum-system-requirements