Commit Graph

39 Commits

Author SHA1 Message Date
Dmitriy Rabotyagov 9fca8555df Move repo_packages to group_vars
At the moment it's not possible to apply different versions of
services to the different groups due to playbook vars having
prescedence over group_vars. However, it can be quite important
to  such use cases, for example for phased rollouts of newer versions.

This will also reduce amount of unnecessary variables that are included
for each host, since only required git details will be loaded.

Closes-Bug: #2007296
Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-os_rally/+/881954
Change-Id: Icaa3a958926d9f9aa6cb649bd9f3da9449dd7490
2023-05-18 08:49:51 +00:00
Dmitriy Rabotyagov c91a63e957 Drop sshd role requirement
We use sshd role only for aio bootstrap. In fact, what we need is
to simply install and launch daemon.

Using a role for that is overkill considering they have a tendency to
fail against newer versions.

Change-Id: I650a6e611eb53d95fdf94c86d3086bedf5f506c9
2022-05-20 14:40:07 +00:00
Jonathan Rosser f1ed3f5dc9 Remove references to unsupported operating systems
All references to Gentoo, SUSE, Debian stretch and Centos-7  are removed.
Conditional tasks, ternary operators and variables are simplified where possible
OS specific variables files are generalised where possible

Change-Id: I42e40adc20a122ea5bba292b1f6fea9e79b3c365
2022-01-13 19:45:26 +02:00
Jonathan Rosser 24b8ea0ba6 Remove support for nspawn containers.
Support for nspawn was previously deprecated, and is now removed.

Change-Id: I37811d66eedf7aa781d4365024b7181ba44081bc
2021-04-20 16:59:13 +03:00
Jonathan Rosser e2c4cd43bb Use ansible_facts[] instead of fact variables in tests
See https://github.com/ansible/ansible/issues/73654

Change-Id: I7e27477d4fb1292aa5d79adcf6cb33eaa31da035
2021-03-27 11:49:09 +00:00
Jonathan Rosser ec3233f9f8 Update ansible-lint==4.3.5, flake8==3.8.3, bashate>=0.5.1
Correct lint errors that arise from these version updates.

This also fixes ceph deployment after backporting breaking changes
to stable-5.0 branch.

Change-Id: Iaa6bd137ebc4bf6cc2071712eb3f53a08c85d75e
2020-10-05 13:32:51 +00:00
Mohammed Naser e167e56857 Add Centos-8 support
Depends-On: https://review.opendev.org/738903
Depends-On: https://review.opendev.org/735555
Depends-On: https://review.opendev.org/735781
Depends-On: https://review.opendev.org/735926
Depends-On: https://review.opendev.org/735971
Depends-On: https://review.opendev.org/736097
Depends-On: https://review.opendev.org/736095
Depends-On: https://review.opendev.org/736850
Depends-On: https://review.opendev.org/739026

Change-Id: Ibac278398ef533bc8fcf253c67cb983461bd145d
2020-07-03 04:56:04 +00:00
Jonathan Rosser 8e28b8e85e Install python3 instead of python2 during host bootstrapping.
Also use ansible interpreter discovery rather than hardcoding the
path to the python executable which may vary depending on distro.

Change-Id: Id6d1ec65106b5b8eabb152b0238a6f9c0a2d97da
2020-04-26 22:58:55 +01:00
James Denton 9f9bfae7e6 Run setup module prior to bootstrapping aio
On some systems, the aio bootstrap script will fail due to an issue with fact
gathering. This patch runs the setup module prior to the bootstrap process.

Reference: Eavesdrop IRC Logs - openstack-ansible.2018-11-23.log.html
URL: https://pasted.tech/l/418bb8177f794d3f

Change-Id: I52a7ebb946cc068013a0f7dbbc43989abf1cbd02
Closes-Bug: #1851248
2019-11-04 15:09:19 +00:00
Mohammed Naser c0db5c423b repo: stop using repo_build + pip_install
This patch removes all references and stops using repo_build as
all the integrated roles have their wheels and virtualenvs
built inside the role.

This patch removes all references and usage of pip_install as we
no longer need to do this.

Change-Id: Ie48b738c9281578e48b1811481d2a8da3832dc1b
2019-03-29 10:46:41 +00:00
Jesse Pretorius ada265c844 Implement AIO changes to allow test usage by roles
In this patch we change the 'scenario' for the AIO bootstrap
to allow it to be overloaded with any additional service names
which correspond to an appropriate conf.d AIO configuration file.

This allows us to implement jobs using a scenario called something
like 'aio_lxc_octavia' and it will implement the base AIO and add
the octavia service.

In order to make use of this for the experimental jobs, we change
the job names so that the appropriate services are deployed.

Related-bug: #1759784
Change-Id: If6b7e401021ea57a908a616ec8b86e7aa6798558
2018-11-28 22:29:18 +00:00
Jesse Pretorius 74bebf5d57 Ensure AIO container_tech/install_method vars are namespaced
To ensure there are no clashes with the inventory and other uses
beyond the AIO bootstrap, we namespace the container_tech variable
and the install_method variable. This also allows us to use those
variables as the common base in all conditionals, rather than repeat
the use of the env var lookup here and there.

We also tidy up a bit of content in the user_variables.yml template and
the bootstrap-aio.yml playbook.

Finally, we remove the unnecessary specification of the
'bootstrap_host_scenario', 'install_method' and 'openstack_confd_entries'
variables in the playbook, given that they're now in the role defaults.

Change-Id: I5c276a2efed5e1b300fc72f2767abb008199571c
2018-11-23 12:36:06 +00:00
Kevin Carter 4a07e2612e Minimal(ist) network config for nspawn gating
Nspawn containers can attach directly to the physical host interface
using macvlan which allows us to greatly simplify connectivity in test
instances.

Changes to the user variable files have been made to allow the services
to function on a simplified stack.

Depends-On: I083042a791d9213b9b1872a239dc18dc6c7ae46e
Change-Id: Iaa7cfb051d26bcd080df15ef8949d3cf16208ea9
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2018-09-14 09:36:12 -06:00
Jonathan Rosser 420df0153e Ensure that tests fail early if network interfaces are down
Interfaces such as eth12 are required to be working for functional
tests such as healthcheck/tempest, and we waste a lot of CI time
when these interfaces do not come up properly during host preparation.

This change makes the build fail if either:

* The network bridges do not come up after creation
* The new interfaces eth12/13/14 are not up after host bootstrap

Change-Id: Idf83b48beab29e9044fbc0e6d4eacc89f68bf18f
2018-08-21 10:53:53 +00:00
Jesse Pretorius 191e0b8660 Eliminate installing pip on host/containers
None of the hosts need pip installed any more. Everything
installed on the host is now a distribution package, and
all pip packages are inside a virtualenv. As such, we make
the final changes to eliminate the installation of pip on
the host.

1. We change the pip_install role settings to only put
   pip.conf down, and not bother installing pip. The
   pip.conf remains necessary to provide any pip installs
   done in venvs with the details of the repo server.
2. We update the utility container playbook so that it
   installs everything into a venv, then symlinks the
   appropriate openstack client binaries to /usr/local/bin
   for convenient access. This is only done for source
   based installs.
3. We update the ceph radosgw keystone setup to make it
   use the appropriate service host, and to make use of
   the correct runtime venv. It also now makes use of
   native ansible modules instead of our own.

Depends-On: https://review.openstack.org/587840
Depends-On: https://review.openstack.org/587849
Depends-On: https://review.openstack.org/589643
Depends-On: https://review.openstack.org/590011
Depends-On: https://review.openstack.org/590178
Change-Id: Iac018386e98d1531b605c66bccf3bcce10226e19
2018-08-09 15:17:55 +01:00
Markos Chandras 4603188934 Add support for using distribution packages for OpenStack services
Add new 'aio_distro_basekit' jobs to test the minimal basekit deployment
using distribution packages for the OpenStack services.

We can skip all repo-* related playbooks and roles since we are not
building pip packages for OpenStack services anymore. Finally, we can
populate the utility container using the distribution packages for the
OpenStack client instead of using the wheel packages.

Change-Id: Ia8c394123b5588fff8c4acbe1532ed5a6dc7e8ec
Depends-On: https://review.openstack.org/#/c/583161/
Depends-On: https://review.openstack.org/#/c/567530/
Depends-On: https://review.openstack.org/#/c/580455/
Implements: blueprint openstack-distribution-packages
2018-07-20 08:14:32 +01:00
Jesse Pretorius eb7661d9e8 Ensure that constraints are used for AIO bootstrap
Currently the pip_install role does not configure any
constraints when exercising the AIO bootstrap, creating
the possibility that the initial bootstrap may not have
the right software versions.

This patch ensures that the same constraints are used
for the AIO bootstrap as was done for the Ansible
bootstrap.

Change-Id: I6aa467d4f1f6db33c824f4fcf8e46adb0a26cfa0
2018-02-18 13:48:37 +00:00
Matt Thompson 7466aaec57 Update default scenarios from aio to aio_lxc
It looks like the `aio` scenario was renamed to `aio_lxc`, however
there are still a few references to `aio`.  This commit updates those
references to `aio_lxc`.

Change-Id: Ia080bc4f979cc9b29ea645725d25442edbb73668
2018-02-02 10:45:00 -05:00
Kevin Carter fdf33902c2 Add dynamic table for our tested Scenarios
This change adds in a dynamic table to our documentation so that we're
able to generate a table of all available scenarios and mark where
services are tested within. To make the dynamic scenario generation
easier the AIO scenario conf setup has been moved into it's own variable
file.

The file doc/source/contributor/scenario-table-gen.html has been touched
allowing sphinx to import and generate the required table as needed.

Change-Id: Ief5d180491d3a330890d6bfa06d43f565dd26103
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-11-22 05:07:59 +00:00
Victor Morales 08b700a592 Add proxy environment vars to boostrap-aio.yml
The bootrastap-aio.sh script uses the bootstrap-aio.yml file to
provision an All-in-One setup but this playbook lacks of proxy
support resulting in timeout inside of corporate networks. This
change add support to networks that need to reach a proxy server.

Change-Id: I3b28b8a39d050ced0ebca5ffdfbe1a7b78b9a7f5
2017-10-26 10:10:30 -07:00
Markos Chandras 18374fba1d tests: bootstrap-aio: Add sftp subsystem option for SUSE
Convert the existing sftp variable into a dictionary so it can contain
the correct sftp path for SUSE hosts.

Change-Id: Ie5ade74f9fc5a6fa8eef4af35b269d87125674d6
2017-08-24 18:27:51 +01:00
German Eichberger b5441ed049 Adds a constraint file to the pip install for Octavia scenario
Change-Id: I7f202948e2799e48ee29dba1b154c8835fb59626
2017-08-24 11:14:25 +01:00
Manuel Buil bd79f0720a Add tacker installation
This patch provides the necessary files and changes in existing files to
deploy tacker component. Tacker is an orchestrator and VNF manager, which
is widely used as MANO component in NFV type of deployments

Change-Id: I339c9cc032f871766a89e24c2ada38063fc7ac39
2017-08-21 16:27:32 +02:00
German Eichberger 7ac103efb1 Octavia scenario
Configure glance to only use file to avoid swift, etc.

Depends-On: I7b8a2314a23281a4369d431aba280e0c0dc66f22

Change-Id: I6054f754d2671beacd83d3a0fe950d49fa221342
2017-08-03 19:26:42 +00:00
Jesse Pretorius 5f7000e185 Improve ansible host & venv bootstrap
The current ansible bootstrap process tried to
pin the versions of pip, setuptools and wheel
on the host and also uses inherited python
packages from the host. This causes problems
when the host has a version of setuptools which
is cannot be changed (perhaps due to some bug)
or when the host has otherwise undesirable
python packages.

The ansible bootstrap process only needs to
be concerned with whether pip is installed
and understands how to use constraints.

From there we can bootstrap the venv using
get-pip and completely avoid package conflicts
with the host. Once Ansible is bootstrapped,
the pip_install role will ensure that pip,
setuptools and wheel are correctly bootstrapped
and pinned across all hosts.

The pip_install role now uses constraints for
the initial get-pip [1], so we can also remove
the list of pip pins from group_vars.

We remove pip, setuptools and wheel from the
requirements.txt to allow the packages on the
host to be installed in the bootstrap without
forcing a change of pip/setuptools/wheel at the
same time (which causes failures in some
circumstances).

[1] https://review.openstack.org/483905

Change-Id: Ida84fb6bb726e1332f0e29ade51b67a5721f0785
2017-07-20 09:23:30 +00:00
Andy McCrae 87dcb17d15 Add translations test-site deployment option
We want to set-up a test-site for translations as a separate scenario of
an AIO. This will assist the translations team to test translations
throughout the cycle.

In order for Trove to build successfully we need some Network setup
which is added in this patch.

Change-Id: I0a8bef400e5c99d9258022fac7e740632ed4b796
2017-07-07 14:48:00 +00:00
Andy McCrae 8a4729de24 SHA Bump for Pike 28/04/2016
Additionally, this adds Designate back into integrated build since
Designate is now working and requirements have caught up.

Change-Id: Ib8a6e2fe1aeb3dc475f8c0a4bdf212392ff8cdfe
2017-04-28 21:10:26 +00:00
Andy McCrae d9e1330c7f SHA Bump as of 04 April 2017
Additionally, disable designate from the integrated build until their
gate issues are unblocked and patch
https://review.openstack.org/#/c/445069/ can merge.

Change-Id: Ia5b3e4a51c907f5a27710d201c0bef07d397fd53
2017-04-04 19:50:19 +00:00
Jesse Pretorius 2aa4a3f7d2 Adjust gate-check-commit for deploy/upgrade testing
In order to facilitate periodic deployment and upgrade testing,
this patch implements an 'action' as a second CLI parameter for
the gate-check-commit script.

This seperates the 'action' from the 'scenario', allowing us to
execute a gate-check-commit for multiple scenarios instead of
being stuck with only one. That is why the 'upgrade' scenario
is removed.

This patch is partnered with this project-config change:
https://review.openstack.org/419517

The patch also tidies a few things up in order to make the
script a little more readable.

Change-Id: Ie62efc188d5eafd5bb64eb53f14c191dd50bef33
2017-03-03 16:54:10 +00:00
Kevin Carter 5094011164
Remove ceilometer from the gate
This change removes ceilometer from the integrated gate. Sadly the
ceilomteter roles and playbooks have been a little neglected which has
resulted in a slow and sometimes unstable system. To improve gate times
ceilometer has been pulled out of the integrated gate. Once we're able
to get the ceilometer roles and playbooks  updated to the latest
release and we're able to resolve all of the deprecations we should
put these rolse back in rotation for the integrated gate.

Change-Id: I116928a1db96e242ed87177578581fe7bf16a001
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2017-02-27 15:43:33 -06:00
Marc Gariepy e44a7f1ac4 Add CentOS support for AIO setup
This patch add support for deploying on CentOS.

Change-Id: I1763351a95bb3c30bcb1095fad0fedff72c1a751
2017-02-17 15:53:01 +00:00
alextricity25 6b7147e901 Move scenario variables under vars
This is so variables can be overridden in playbooks
that include bootstrap-aio.yml. Otherwise, the variables
specified at time of the role invocation will always take
precedence.

Change-Id: Ie2df5f4b18795edbc4abec1c348057106537f857
2017-02-06 15:26:32 +00:00
Sean M. Collins 3c8548b265 Work on starting the upgrade job
* Add a new variable UPGRADE_BASEBRANCH and use that to check out a
stable branch, then run the bootstrap process. This will require a
change to project-config so that the job names will add in the branch
name, so we can pick it up instead of providing a value when none is
present.

* Add a section to confd_overrides for the upgrade scenario to fix the
following error

    TASK [bootstrap-host : Deploy user conf.d configuration] ***********************
    fatal: [localhost]: FAILED! => {"failed":
    true, "msg": "{{ confd_overrides[scenario] }}: 'dict object' has no
    attribute u'upgrade'"}

Change-Id: Ia5fd197e81da0a1fd55327d155f181c8792bc199
2017-02-02 19:15:29 +00:00
Logan V 06ede41645 ceph-ansible integration
Adds ceph-ansible integration to OSA using the upstream
roles ceph-common, ceph-mon, and ceph-osd to support deployment
of a Ceph cluster for use with OSA.

The integration should be considered experimental at this point,
however an integrated functional testing scenario named "ceph"
is added which fully exercises the ceph-ansible deployment and
configures OSA to use the deployed Ceph cluster. Once this is added
to the OSA gate tests for the integrated build, that should help
quickly stabilize any issues that arise with this integration.

Change-Id: I275708096a71f66d73be1400c8a592c598382c1d
2017-01-19 08:47:10 -06:00
Jean-Philippe Evrard ce60ac19d8 Gather facts before running first role requiring them
The pip_install role is using variables requiring facts to be
present. The best way to fix this issue is to gather_facts
in the bootstrap-aio playbook.

Change-Id: Idfbcf54faa90013d229b415463ce664dbda7f334
Closes-Bug: 1647481
2016-12-06 10:00:56 +00:00
Mike Carden 09887025f0 Create Designate container and start services
Add a designate container to those installed in an AIO
and run the os-designate-install playbook to install and
start the designate services in the container.

Change-Id: I869d91161dd00076fbdae67046537ffe3e1c4706
2016-11-29 13:16:49 +11:00
Kevin Carter 1604bba1c8 Add sshd_config to the bootstrap AIO process
This change is being done to ensure that we have a consistent and
performant SSH configuration in place throughout all of our gates.

Change-Id: I4b2da075400dd7abb9826e55bf14bf10b126b5df
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
2016-09-26 23:16:01 +00:00
Jesse Pretorius f7a50a24b9 Implement scenario capability for AIO
In order to prepare for the ability to implement multiple
integrated gate scenarios, this patch does the following:

- Ensures that all inventory groups are complete and can
  be entered into the inventory with their own host groups
  instead of being forced to use the shared-os-infra group.

- Splits all OpenStack service environment configurations
  into individual conf.d files so that scenarios can be
  selective about which services are deployed.

- Implements the ability to set the desired scenario via
  an environment variable. This has already been
  implemented in OpenStack-CI.

- The current AIO is set as the default scenario, and it
  is set even if there is no environment variable present.

Depends-On: I5441f8f9a9c02cc0a501a9b9f7c6cbe2604f4b65
Change-Id: I99541d36aed6d4b9f83746c1cd1a5521b310f1f6
2016-09-14 17:51:04 +00:00
Major Hayden 892c7fe46c Convert AIO bootstrap from bash to Ansible
This patch converts the AIO bootstrap process to use Ansible
instead of bash scripting. The patch also minimises the options
available to focus the role concerned to just handle an AIO
bootstrap, but gives it just enough flexibility to allow the
use of an external MongoDB database for Ceilometer/Aodh and
for a deployer to specify a secondary disk for the AIO to
consume.

A major change is that the AIO bootstrap process no longer
assumes that it can destroy a secondary boot device. It
requires a device name to be provided. This prevents horrible
surprises.

TODO (in subsequent patches):
 - update the developer AIO docs
 - convert run-playbooks.sh into an Ansible playbook

Implements: blueprint convert-aio-bootstrap-to-ansible
Co-Authored-By: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
Change-Id: I6028952e7260388873f57db47cc3e08126ecc530
2015-12-08 19:05:45 +00:00