0% found this document useful (0 votes)
116 views

AIO Openstack-Ansible Sumarizado

This document provides instructions for setting up an All-In-One (AIO) deployment of OpenStack using OpenStack-Ansible. It describes preparing the host system, bootstrapping Ansible and roles, configuring the AIO, and running playbooks. Key steps include updating packages, cloning the OpenStack-Ansible repo, bootstrapping Ansible, running bootstrap scripts to partition disks and configure the host, and modifying configuration files to enable additional OpenStack services as needed.

Uploaded by

casmssm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
116 views

AIO Openstack-Ansible Sumarizado

This document provides instructions for setting up an All-In-One (AIO) deployment of OpenStack using OpenStack-Ansible. It describes preparing the host system, bootstrapping Ansible and roles, configuring the AIO, and running playbooks. Key steps include updating packages, cloning the OpenStack-Ansible repo, bootstrapping Ansible, running bootstrap scripts to partition disks and configure the host, and modifying configuration files to enable additional OpenStack services as needed.

Uploaded by

casmssm
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

x

This release is under development. The current supported release is


Yoga.
(/yoga/) 
Back to Top

Quickstart: AIO
 (../index.html)
 (../network-arch/example.html)
 (https://docs.openstack.org//openstack-ansible/latest/doc-openstack-
ansible.pdf)
 (https://bugs.launchpad.net/openstack-ansible/+filebug?field.title=Quickstart%3A%20AIO%20in%20openstack-
ansible&field.tags=&field.comment=%0A%0A%0AThis bug tracker is for errors with the documentation, use the following as a template
and remove or add fields as you see fit. Convert [ ] into [x] to check boxes:%0A%0A- [ ] This doc is inaccurate in this way: ______%0A- [ ]
This is a doc addition request.%0A- [ ] I have a fix to the document that I can paste below including example: input and output. %0A%0AIf
you have a troubleshooting or support issue, use the following resources:%0A%0A - The mailing list: https://lists.openstack.org%0A - IRC:
'openstack' channel on OFTC%0A%0A-----------------------------------%0ARelease:%2025.1.0.dev68%20on%202021-10-
06%2017:05:06%0ASHA:%2061b0139ea7436297e870d4280fd865ce91d8cb46%0ASource:%20https://opendev.org/openstack/openstack-
ansible/src/doc/source/user/aio/quickstart.rst%0AURL: https://docs.openstack.org/openstack-ansible/latest/user/aio/quickstart.html)

[
English (../../user/aio/quickstart.html)
| français (../../fr/user/aio/quickstart.html)
| English (United Kingdom)
(../../en_GB/user/aio/quickstart.html)
| Indonesia (../../id/user/aio/quickstart.html)
| русский (../../ru/user/aio/quickstart.html)
| español
(../../es/user/aio/quickstart.html)
| Deutsch (../../de/user/aio/quickstart.html)
]

All-in-one (AIO) builds are a great way to perform an OpenStack-Ansible build


for:

a development environment

an overview of how all of the OpenStack services fit together

a simple lab deployment

Although AIO builds aren’t recommended for large production deployments,


they’re great for smaller proof-of-concept deployments.

Absolute minimum server resources (currently used for gate checks):

8 vCPU’s

50GB free disk space on the root partition

8GB RAM

Recommended server resources:

CPU/motherboard that supports hardware-assisted virtualization (https://en.wikipedia.org/wiki/Hardware-


assisted_virtualization)

8 CPU Cores

80GB free disk space on the root partition, or 60GB+ on a blank


secondary disk. Using a secondary disk requires the use of the
bootstrap_host_data_disk_device parameter. Please see
Building an AIO for more details.

16GB RAM

It is possible to perform AIO builds within a virtual machine for


demonstration and evaluation, but your virtual machines will perform
poorly
unless nested virtualization is available. For production workloads, multiple
nodes for specific roles are recommended.

Building an AIO¶
Overview¶
There are three steps to running an AIO build, with an optional first step
should you need to customize your build:

Prepare the host

Bootstrap Ansible and the required roles

Bootstrap the AIO configuration

Run playbooks

Prepare the host¶


When building an AIO on a new server, it is recommended that all
system packages are upgraded and then reboot into the new x
This release is under development. The current supported release is
Yoga.
(/yoga/)
kernel:

Back to Top

 Note

Execute the following commands and scripts as the root user.

## Ubuntu / Debian

# apt-get update

# apt-get dist-upgrade

# reboot

## CentOS

# dnf upgrade

# dnf install git-core

# systemctl stop firewalld

# systemctl mask firewalld

# reboot

 Note

Before rebooting, in /etc/sysconfig/selinux, make sure that


SELINUX=enforcing is changed to SELINUX=disabled.
SELinux enabled is not currently supported in OpenStack-Ansible
for CentOS/RHEL due to a lack of maintainers for the feature.

 Note

If you are installing with limited connectivity, please review Installing


with limited connectivity (../limited-
connectivity/index.html#limited-connectivity) before proceeding.

Bootstrap Ansible and the required roles¶


Start by cloning the OpenStack-Ansible repository and changing into the
repository root directory:

# git clone https://opendev.org/openstack/openstack-ansible \

/opt/openstack-ansible

# cd /opt/openstack-ansible

Next switch the applicable branch/tag to be deployed from. Note that


deploying from the head of a branch may result in an unstable
build due to
changes in flight and upstream OpenStack changes. For a test (for example,
not a development) build it is usually best to
checkout the latest tagged
version.

# # List all existing tags.

# git tag -l

# # Checkout the stable branch and find just the latest tag

# git checkout master

# git describe --abbrev=0 --tags

# # Checkout the latest tag from either method of retrieving the tag.

# git checkout master

 Note

The Yoga release is only compatible with


Debian 11 (bullseye), Ubuntu 20.04 (Focal Fossa), CentOS 8 Stream,
and derivitives of
CentOS Stream/RHEL such as Rocky Linux.
The next step is to bootstrap Ansible and the Ansible roles for the
development environment. x
This release is under development. The current supported release is
Yoga.
(/yoga/) 
Back to Top
Run the following to bootstrap Ansible and the required roles:

# scripts/bootstrap-ansible.sh

 Note

You might encounter an error while running the Ansible bootstrap script
when building some of the Python extensions (like
pycrypto) which says:

configure: error: cannot run C compiled programs.

The reason of this failure might be resulting from a noexec mount flag
used for the filesystem associated with /tmp which you
can check by
running the following command:

# mount | grep $(df /tmp | tail -n +2 | awk '{print $1}') | grep noexec

If this is the case you can specify an alternate path which does not
have this mount option set:

# TMPDIR=/var/tmp scripts/bootstrap-ansible.sh

Bootstrap the AIO configuration¶


In order for all the services to run, the host must be prepared with the
appropriate disks partitioning, packages, network configuration
and
configurations for the OpenStack Deployment.

By default the AIO bootstrap scripts deploy a base set of OpenStack services
with sensible defaults for the purpose of a gate check,
development or testing
system.

Review the bootstrap-host role defaults (https://opendev.org/openstack/openstack-ansible/src/tests/roles/bootstrap-


host/defaults/main.yml) file to see various configuration
options. Deployers have the option to change how the host is bootstrapped.
This is useful when you wish the AIO to make use of a secondary data disk,
or when using this role to bootstrap a multi-node
development environment.

The bootstrap script is pre-set to pass the environment variable


BOOTSTRAP_OPTS as an additional option to the bootstrap process.
For
example, if you wish to set the bootstrap to re-partition a specific
secondary storage device (/dev/sdb), which will erase all of
the data
on the device, then execute:

# export BOOTSTRAP_OPTS="bootstrap_host_data_disk_device=sdb"

Additional options may be implemented by simply concatenating them with


a space between each set of options, for example:

# export BOOTSTRAP_OPTS="bootstrap_host_data_disk_device=sdb"

# export BOOTSTRAP_OPTS="${BOOTSTRAP_OPTS} bootstrap_host_data_disk_fs_type=xfs"

If you are installing with limited connectivity, or you don’t have default
route set, you will need to define interface for outgoing
connections manually

# export BOOTSTRAP_OPTS="bootstrap_host_public_interface=eth1"

For the default AIO scenario, the AIO configuration preparation is completed by
executing:

# scripts/bootstrap-aio.sh

To add OpenStack Services over and above the bootstrap-aio default services
for the applicable scenario, copy the conf.d files with x
This release is under development. The current supported release is
Yoga.
(/yoga/) 
Back to Top
the .aio file
extension into /etc/openstack_deploy and rename then to .yml files.
For example, in order to enable the
OpenStack Telemetry services, execute the
following:

# cd /opt/openstack-ansible/

# cp etc/openstack_deploy/conf.d/{aodh,gnocchi,ceilometer}.yml.aio /etc/openstack_deploy/conf.d/

# for f in $(ls -1 /etc/openstack_deploy/conf.d/*.aio); do mv -v ${f} ${f%.*}; done

It is possible to also do this (and change other defaults) during the bootstrap
script initial execution by changing the SCENARIO
environment variable before
running the script. The key word ‘aio’ will ensure that a basic set of
OpenStack services (cinder, glance,
horizon, neutron, nova) will be deployed.
The key words ‘lxc’ can be used to set the container back-end,
while the key word ‘metal’ will
deploy all services without containers. In
order to implement any other services, add the name of the conf.d file name
without the
.yml.aio extension into the SCENARIO environment variable. Each
key word should be delimited by an underscore. For example, the
following will
implement an AIO with barbican, cinder, glance, horizon, neutron, and nova. It
will set the cinder storage back-end to
ceph and will make use of LXC as the
container back-end.

# export SCENARIO='aio_lxc_barbican_ceph'
# scripts/bootstrap-aio.sh

To add any global overrides, over and above the defaults for the applicable
scenario, edit
/etc/openstack_deploy/user_variables.yml. In order to
understand the various ways that you can override the default
behaviour
set out in the roles, playbook and group variables, see Overriding default configuration (../../reference/configuration/using-
overrides.html#user-overrides).

See the Deployment Guide (https://docs.openstack.org/project-deploy-guide/openstack-ansible/latest/index.html) for a more


detailed break
down of how to implement your own configuration rather than to use the AIO
bootstrap.

Run playbooks¶
Finally, run the playbooks by executing:

# cd /opt/openstack-ansible/playbooks

# openstack-ansible setup-hosts.yml

# openstack-ansible setup-infrastructure.yml

# openstack-ansible setup-openstack.yml

The installation process will take a while to complete, but here are some
general estimates:

Bare metal systems with SSD storage: ~ 30-50 minutes

Virtual machines with SSD storage: ~ 45-60 minutes

Systems with traditional hard disks: ~ 90-120 minutes

Once the playbooks have fully executed, it is possible to experiment with


various settings changes in
/etc/openstack_deploy/user_variables.yml and
only run individual playbooks. For example, to run the playbook for the
Keystone service, execute:

# cd /opt/openstack-ansible/playbooks

# openstack-ansible os-keystone-install.yml

Rebooting an AIO¶
As the AIO includes all three cluster members of MariaDB/Galera, the cluster
has to be re-initialized after the host is rebooted.

This is done by executing the following:

# cd /opt/openstack-ansible/playbooks

# openstack-ansible -e galera_ignore_cluster_state=true galera-install.yml

If this fails to get the database cluster back into a running state, then
please make use of the
Galera Cluster Recovery x
This release is under development. The current supported releasein
(/admin/maintenance-tasks.html#galera-cluster-recovery)
section is
Yoga.
(/yoga/)
the operations guide.

Back to Top

Rebuilding an AIO¶
Sometimes it may be useful to destroy all the containers and rebuild the AIO.
While it is preferred that the AIO is entirely destroyed
and rebuilt, this
isn’t always practical. As such the following may be executed instead:

# # Move to the playbooks directory.

# cd /opt/openstack-ansible/playbooks

# # Destroy all of the running containers.

# openstack-ansible lxc-containers-destroy.yml

# # On the host stop all of the services that run locally and not

# # within a container.

# for i in \

$(ls /etc/init \

| grep -e "nova\|swift\|neutron\|cinder" \

| awk -F'.' '{print $1}'); do \

service $i stop; \

done

# # Uninstall the core services that were installed.

# for i in $(pip freeze | grep -e "nova\|neutron\|keystone\|swift\|cinder"); do \

pip uninstall -y $i; done

# # Remove crusty directories.

# rm -rf /openstack /etc/{neutron,nova,swift,cinder} \

/var/log/{neutron,nova,swift,cinder}

# # Remove the pip configuration files on the host

# rm -rf /root/.pip

# # Remove the apt package manager proxy

# rm /etc/apt/apt.conf.d/00apt-cacher-proxy

Should an existing AIO environment need to be reinstalled, the most efficient


method is to destroy the host operating system and
start over. For this reason,
AIOs are best run inside of some form of virtual machine or cloud guest.

Reference Diagram for an AIO Build¶


Here is a basic diagram that attempts to illustrate what the resulting AIO
deployment looks like.

This diagram is not to scale and is not even 100% accurate, this diagram was
built for informational purposes only and should ONLY
be used as such.
x
This release is under development.
------->[ ETH0 ==The current
Public supported
Network ]
release is
Yoga.
(/yoga/) 
Back to Top
|

V [ * ] Socket Connections

[ HOST MACHINE ] [ <>v^ ] Network Connections

* ^ *

| | |-------------------------------------------------------

| | |

| |---------------->[ HAProxy ] |

| ^ |

| | |

| V |

| (BR-Interfaces)<------ |

| ^ * | |

*-[ LXC ]*--*----------------------|-----|------|----| |

| | | | | | | |

| | | | | | | |

| | | | | | | |

| | | | V * | |

| * | | [ Galera x3 ] |

| [ Memcached ]<------------| | | |

*-------*[ Rsyslog ]<--------------|--| | * |

| [ Repos Server x3 ]<------| ---|-->[ RabbitMQ x3 ] |

| [ Horizon x2 ]<-----------| | | |

| [ Nova api ec2 ]<---------|--| | |

| [ Nova api os ]<----------|->| | |

| [ Nova console ]<---------| | | |

| [ Nova Cert ]<------------|->| | |

| [ Cinder api ]<-----------|->| | |

| [ Glance api ]<-----------|->| | |

| [ Heat apis ]<------------|->| | [ Loop back devices ]*-*

| [ Heat engine ]<----------|->| | \ \ |

| ------>[ Nova api metadata ] | | | { LVM } { XFS x3 } |

| | [ Nova conductor ]<-------| | | * * |

| |----->[ Nova scheduler ]--------|->| | | | |

| | [ Keystone x3 ]<----------|->| | | | |

| | |--->[ Neutron agents ]*-------|--|---------------------------*

| | | [ Neutron server ]<-------|->| | | |

| | | |->[ Swift proxy ]<----------- | | | |

*-|-|-|-*[ Cinder volume ]*----------------------* | |

| | | | | | |

| | | ----------------------------------------- | |

| | ----------------------------------------- | | |

| | -------------------------| | | | |

| | | | | | |

| | V | | * |

---->[ Compute ]*[ Neutron linuxbridge ]<---| |->[ Swift storage ]-

 (../index.html)
 (../network-arch/example.html)
 (https://docs.openstack.org//openstack-ansible/latest/doc-openstack-
ansible.pdf)
 (https://bugs.launchpad.net/openstack-ansible/+filebug?field.title=Quickstart%3A%20AIO%20in%20openstack-
ansible&field.tags=&field.comment=%0A%0A%0AThis bug tracker is for errors with the documentation, use the following as a
template and remove or add fields as you see fit. Convert [ ] into [x] to check boxes:%0A%0A- [ ] This doc is inaccurate in this way:
______%0A- [ ] This is a doc addition request.%0A- [ ] I have a fix to the document that I can paste below including example: input and
output. %0A%0AIf you have a troubleshooting or support issue, use the following resources:%0A%0A - The mailing list:
https://lists.openstack.org%0A - IRC: 'openstack' channel on OFTC%0A%0A-----------------------------------
%0ARelease:%2025.1.0.dev68%20on%202021-10-
06%2017:05:06%0ASHA:%2061b0139ea7436297e870d4280fd865ce91d8cb46%0ASource:%20https://opendev.org/openstack/openstack-
ansible/src/doc/source/user/aio/quickstart.rst%0AURL: https://docs.openstack.org/openstack-ansible/latest/user/aio/quickstart.html)

THIS PAGE LAST UPDATED: 2021-10-06 17:05:06

(https://creativecommons.org/licenses/by/3.0/)
Except where otherwise noted, this document is licensed under
Creative Commons
Attribution 3.0 License
(https://creativecommons.org/licenses/by/3.0/). See all OpenStack Legal Documents (https://www.openstack.org/legal).
 FOUND AN ERROR? REPORT A BUG (HTTPS://BUGS.LAUNCHPAD.NET/OPENSTACK-ANSIBLE/+FILEBUG? x
This release is under development. The current supported release is
Yoga.
(/yoga/)
FIELD.TITLE=QUICKSTART%3A%20AIO%20IN%20OPENSTACK-ANSIBLE&FIELD.TAGS=&FIELD.COMMENT=%0A%0A%0ATHIS BUG TRACKER IS FOR ERRORS
Back to Top
WITH THE
DOCUMENTATION, USE THE FOLLOWING AS A TEMPLATE AND REMOVE OR ADD FIELDS AS YOU SEE FIT. CONVERT [ ] INTO [X] TO CHECK BOXES:%0A%0A- [ ] THIS DOC
IS INACCURATE IN THIS WAY: ______%0A- [ ] THIS IS A DOC ADDITION REQUEST.%0A- [ ] I HAVE A FIX TO THE DOCUMENT THAT I CAN PASTE BELOW INCLUDING
EXAMPLE: INPUT AND OUTPUT. %0A%0AIF YOU HAVE A TROUBLESHOOTING OR SUPPORT ISSUE, USE THE FOLLOWING RESOURCES:%0A%0A - THE MAILING LIST:
HTTPS://LISTS.OPENSTACK.ORG%0A - IRC: 'OPENSTACK' CHANNEL ON OFTC%0A%0A-----------------------------------%0ARELEASE:%2025.1.0.DEV68%20ON%202021-10-
06%2017:05:06%0ASHA:%2061B0139EA7436297E870D4280FD865CE91D8CB46%0ASOURCE:%20HTTPS://OPENDEV.ORG/OPENSTACK/OPENSTACK-
ANSIBLE/SRC/DOC/SOURCE/USER/AIO/QUICKSTART.RST%0AURL: HTTPS://DOCS.OPENSTACK.ORG/OPENSTACK-ANSIBLE/LATEST/USER/AIO/QUICKSTART.HTML)

 OpenStack Documentation 

openstack-ansible 25.1.0.dev68
(../../index.html)

Deployment guide (https://docs.openstack.org/project-deploy-guide/openstack-ansible/latest/)


Release notes (https://docs.openstack.org/releasenotes/openstack-ansible/unreleased.html)
Operations Guide (../../admin/index.html)
User Guide (../index.html)
Quickstart: AIO
Network architectures (../network-arch/example.html)
Test environment example (../test/example.html)
Production environment (../prod/example.html)
Provider network groups (../prod/provnet_groups.html)
Installing with limited connectivity (../limited-connectivity/index.html)
Routed environment example (../l3pods/example.html)
Ceph production example (../ceph/full-deploy.html)
Using radosgw as a drop-in replacement for Swift (../ceph/swift.html)
Integrate radosgw into your Telemetry (../ceph/ceilometer.html)
Security settings (../security/index.html)
Source overriding examples (../source-overrides/index.html)
Telemetry with Gnocchi, Ceph and Redis example (../prod/gnocchi_redis.html)
Hybrid messaging example (../messaging/messaging.html)
So You Want to Contribute… (../../contributor/contributing.html)
Developer Documentation (../../contributor/index.html)
OpenStack-Ansible Reference (../../reference/index.html)

Page Contents

Building an AIO
Overview
Prepare the host
Bootstrap Ansible and the required roles
Bootstrap the AIO configuration
Run playbooks
Rebooting an AIO
Rebuilding an AIO
Reference Diagram for an AIO Build

OpenStack
Projects (https://openstack.org/projects/)
OpenStack Security (https://www.openstack.org/software/security/)
Common Questions (https://openstack.org/projects/openstack-faq/) x
This release is under development. The current supported release is
Yoga.
(/yoga/) 
Back to Top
Blog (https://openstack.org/blog/)
g
News (https://openstack.org/news/)

Community
User Groups (https://openstack.org/community/)
Events (https://openstack.org/community/events/)
Jobs (https://openstack.org/community/jobs/)
Companies (https://openstack.org/foundation/companies/)
Contribute (https://docs.openstack.org/contributors)

Documentation

OpenStack Manuals (https://docs.openstack.org)


Getting Started (https://openstack.org/software/start/)
API Documentation (https://developer.openstack.org)
Wiki (https://wiki.openstack.org)

Branding & Legal


Logos & Guidelines (https://openstack.org/brand/)
Trademark Policy (https://openstack.org/brand/openstack-trademark-policy/)
Privacy Policy (https://openstack.org/privacy/)
OpenStack CLA (https://wiki.openstack.org/wiki/How_To_Contribute#Contributor_License_Agreement)

Stay In Touch
(https://twitter.com/OpenStack)

(https://www.facebook.com/openstack)

(https://www.linkedin.com/company/openstack)

(https://www.youtube.com/user/OpenStackFoundation)

The OpenStack project is provided under the


Apache 2.0 license (https://www.apache.org/licenses/LICENSE-2.0). Openstack.org is powered by
Rackspace
Cloud Computing (https://rackspace.com).

You might also like