Commit Graph

22 Commits

Author SHA1 Message Date
Dmitriy Rabotyagov 9b9bc21121 Fix linters and metadata
With update of ansible-lint to version >=6.0.0 a lot of new
linters were added, that enabled by default. In order to comply
with linter rules we're applying changes to the role.

With that we also update metdata to reflect current state.

Depends-On: https://review.opendev.org/c/openstack/ansible-role-systemd_service/+/888223
Change-Id: I730ae569f199fc8542a5a61beb149f459465d7e2
2023-07-17 16:17:30 +02:00
Jonathan Rosser d620d3b06a Remove apt pinning task for debian buster
Buster is no longer supported on recent OSA releases so this task
is not required.

Change-Id: I96332980798cb56f725b8bdc9a0514ab40c1a0f9
2022-01-27 18:17:01 +00:00
Jonathan Rosser 7b03c1b5b1 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: I4a68549bf85fd322ea344139869916aae3275377
2021-03-10 12:16:39 +00:00
Jean-Philippe Evrard 28e2e7015c Clarify supported SUSE versions
This role only support openSUSE Leap 15, not 42.3, not tumbleweed.
Saying all is confusing and a bad practice. This fixes it, while
ensuring the job is properly defined to test that assertion.

Change-Id: Iff8425e2aff37a35432202d9912b7bd00ddcd761
2019-05-21 09:58:13 +02:00
Mohammed Naser ea4bf245c4 debian: add ci and update meta
This patch adds the Debian jobs for this role to make sure
it's always passing as well as updates the meta to reflect
it's support of Debian accordingly.

Depends-On: I9a92b73c419a0dc1cca40dacfef75de61a61db94
Change-Id: Iedec892565580438dbba721949f1635a752e1c81
2019-04-06 18:57:08 -04:00
Markos Chandras b6fa5989b9 SUSE: Add support for openSUSE Leap 15
This also removes python-keystonemiddleware from the distro packages
since anything that needs it should pull it as a dependency.

Depends-On: https://review.openstack.org/604473
Depends-On: https://review.openstack.org/604286
Change-Id: I8398b70fc7e371d163bed8bed8fc11f50c521e28
2018-09-25 08:08:02 +01:00
Jesse Pretorius 5f85707423 Remove galera_client meta-dependency
Given that pymysql is pure python and has no C binding
dependencies, we no longer need the role to install the
MariaDB client libraries.

Change-Id: I3a6c04807b4bad36c5d9b378db71bd76257ff888
2018-09-17 18:47:58 +00:00
Jonathan Rosser cdc1906998 Add bionic to galaxy_info metadata
Change-Id: I94e01154bbfda9b831126cd91068d7844eee50b1
2018-08-02 15:04:00 +01:00
Jesse Pretorius d0696a90ab Execute service setup against a delegated host using Ansible built-in modules
In order to reduce the packages required to pip install on to the hosts,
we allow the service setup to be delegated to a specific host, defaulting
to the deploy host. We also switch as many tasks as possible to using the
built-in Ansible modules which make use of the shade library.

The 'virtualenv' package is now installed appropriately by the openstack_hosts
role, so there's no need to install it any more. The 'httplib2' package is a
legacy Ansible requirement for the get_url/get_uri module which is no longer
needed. The keystone client library is not required any more now that we're
using the upstream modules. As there are no required packages left, the task
to install them is also removed.

Unfortunately we need to use the openstack client to wait for a compute host
to register, so we add it into the nova venv and implement a change in the
way we do the wait so that openrc/clouds.yaml is only implemented on a single
compute host and the wait task is executed there.

Depends-On: https://review.openstack.org/582359
Change-Id: I702480a5188a583a03f66bb39609f7d25a996e4a
2018-07-22 14:22:40 +00:00
Major Hayden 044025ca0a Change include: to include_tasks:
This removes warnings in Ansible 2.4+.

The patch also removes "static:" arguments which are no longer
used by Ansible.

Change-Id: I6341e694cee527b4bcf46f813c09db9f1bcabb00
2018-02-20 09:41:13 +00:00
Jean-Philippe Evrard 9b436a1479 Remove pip_install dependency
With addition of pip_install on every node, we don't
need to have pip_install as a meta dependency.

Depends-On: If3412bb888ebb854874bbc43eb76bfcb3e4a7868
Depends-On: I79ff70c438b44753be2a93f004ebbc46de0a963d
Change-Id: Ic7c617bb379c1f19b4fd402ebfb003686379e447
2017-12-05 11:55:47 +00:00
Jean-Philippe Evrard 554e4eae58 Add OpenStack-Ansible metadata
We need to add openstack ansible information in the role
metadata to be able to track role maturity. With it,
we can create a role maturity table and take decisions about
role deprecations.

Change-Id: Ib46384aff0143e5234b1464a8966e5a71b7669d1
2017-10-11 09:07:36 +00:00
Markos Chandras 394365f0af Add support for the openSUSE Leap distributions
Add support for the openSUSE Leap distributions. Similar to CentOS,
we need to modify the libvirt sysconfig file to enable/disable the
TCP/IP listening option. Moreover, we also update the  zypper cache
before package installation.

Change-Id: I7b2a39eb38b5bee08c90f5188c53e0e5cf3d7e2e
2017-07-25 18:55:22 +01:00
Andy McCrae 167fe1b74a Remove Trusty support from os_nova role
Change-Id: Ib0747040d6b53cbb7aec67cfaceae6cc1efb1abc
Implements: blueprint trusty-removal
2016-12-15 13:21:13 +00:00
Jesse Pretorius 42904c451d Use updated get_url module checksum functionality
Starting in Ansible 2.0, the get_url [1] module provides the
ability for a checksum to be provided to the get_url module
which will be verified against the local destination file
and the task skipped if it matches.

[1] http://docs.ansible.com/ansible/get_url_module.html

This patch implements the use of this functionality.

The ability to ignore a venv download failure is also removed
as this is not necessary or desirable. It is better for the
download to fail and the playbook execution to stop immediately
so that the failure point is exposed.

Change-Id: I0852b5319651b36b233bf0f2d425526743444052
2016-11-09 14:15:06 +00:00
Michael Gugino 0b5b8dd88a Add missing xenial to meta.yml
os_nova now supports Ubuntu 16.04, aka xenial.
This commit adds the missing platform version xenial to
the role meta data.

Change-Id: I49e797e65e7a5a4a11ec451680c488bac679378d
2016-06-27 15:35:13 -04:00
Jimmy McCrory 87c29e08a2 Remove pip_lock_down dependency
The pip_install and pip_lock_down roles have been merged.

Remove pip_lock_down from the role's meta dependencies and test
requirements.

Change-Id: Id7803c0f6ebb9b9ccd2add64f71f6110de491db8
2016-06-07 23:43:13 -05:00
Jesse Pretorius 53486a965d Update min_ansible_version to 1.9
This role makes use of the ternary filter which was only introduced in
Ansible 1.9, this patch updates the min_ansible_version to 1.9.

Change-Id: I2cde303a14b15c2ef6d348e5e73a91db8e4f58b3
2016-04-11 12:21:17 +01:00
Jesse Pretorius 32e5fc6ebd Ensure that pip lock down happens before other dependencies
The pip_install role is depended on by a lot of other roles, and
therefore sometimes gets processed prior to the pip_lock_down
role resulting in the pip, setuptools and wheels packages being
installed from a source other than the repo server once the repo
server is available. This is not the intended behaviour - the
repo server should always be a the primary source once it's
available.

This patch ensures that the pip_lock_down role is applied before
all the other dependent roles to ensure that the expected
behaviour is followed.

Change-Id: I0caa632140cb89ab8ba2e3823f43081b7a9ba25c
2016-03-31 17:08:02 +00:00
Matt Thompson cfae5455f4 Enable developer mode
This commit adds the ability to install nova without a repo server.
This pattern is lifted from the os_keystone role and allows us to
further develop functional testing for this role.

Change-Id: Ifb1c4140a33dc1d3de7f0f2741e51191efd989db
2016-03-08 15:37:11 +00:00
Kevin Carter 9ec91564a8 added role to pin packages
This new role is now providing the ability for a user to pin apt
packages as they see fit. The idea is to allow someone to implement
pinning in a generic way that can be represented as a global variable
or as a hostvar. The new role has been added to all install roles as
a dependency which will allow it to ensure that packages are pinned
everywhere as would be expected.

Change-Id: I354e8515570fa7174366ba57d57aece3c304568e
2015-05-08 13:22:42 -05:00
Kevin Carter fdd1c4c689 Convert existing roles into galaxy roles
This change implements the blueprint to convert all roles and plays into
a more generic setup, following upstream ansible best practices.

Items Changed:
* All tasks have tags.
* All roles use namespaced variables.
* All redundant tasks within a given play and role have been removed.
* All of the repetitive plays have been removed in-favor of a more
  simplistic approach. This change duplicates code within the roles but
  ensures that the roles only ever run within their own scope.
* All roles have been built using an ansible galaxy syntax.
* The `*requirement.txt` files have been reformatted follow upstream
  Openstack practices.
* Dynamically generated inventory is now more organized, this should assist
  anyone who may want or need to dive into the JSON blob that is created.
  In the inventory a properties field is used for items that customize containers
  within the inventory.
* The environment map has been modified to support additional host groups to
  enable the seperation of infrastructure pieces. While the old infra_hosts group
  will still work this change allows for groups to be divided up into seperate
  chunks; eg: deployment of a swift only stack.
* The LXC logic now exists within the plays.
* etc/openstack_deploy/user_variables.yml has all password/token
  variables extracted into the separate file
  etc/openstack_deploy/user_secrets.yml in order to allow seperate
  security settings on that file.

Items Excised:
* All of the roles have had the LXC logic removed from within them which
  should allow roles to be consumed outside of the `os-ansible-deployment`
  reference architecture.

Note:
* the directory rpc_deployment still exists and is presently pointed at plays
  containing a deprecation warning instructing the user to move to the standard
  playbooks directory.
* While all of the rackspace specific components and variables have been removed
  and or were refactored the repository still relies on an upstream mirror of
  Openstack built python files and container images. This upstream mirror is hosted
  at rackspace at "http://rpc-repo.rackspace.com" though this is
  not locked to and or tied to rackspace specific installations. This repository
  contains all of the needed code to create and/or clone your own mirror.

DocImpact
Co-Authored-By: Jesse Pretorius <jesse.pretorius@rackspace.co.uk>
Closes-Bug: #1403676
Implements: blueprint galaxy-roles
Change-Id: I03df3328b7655f0cc9e43ba83b02623d038d214e
2015-02-18 10:56:25 +00:00