13741 Commits

Author SHA1 Message Date
Ian Wienand
ee7faefe08 Create ansible roles to install puppet
Currently our puppet-requiring hosts (all !bridge) do not manage their
puppet installs.  This is OK for existing servers, but new servers
come up without puppet installed.

This is playbooks to manage puppet installs on hosts.  It is mostly a
port of the relevant parts of ./install_puppet.sh for our various
control-plane platforms.

Basic testing with zuul-integration jobs is added.  Using this in the
control-plane base.yaml playbooks will be a follow-on.

Change-Id: Id5b2f5eb0f1ade198acf53a7c886dd5b3ab79816
2018-08-28 16:42:45 +10:00
Ian Wienand
d049cf45fb Only run role integration tests on role changes
Change-Id: I531dd10da459b36e3f2f02d65e8f3baa961aade2
2018-08-28 11:28:42 +10:00
Ian Wienand
7bfb0db43f Add role integration jobs
The top-level roles in roles/* should be usable as roles under Zuul
and as generic Ansible roles (for control plane).

Add an integration job to ensure this.  Start with the kerberos and
afs roles.

Change-Id: I9f5d572d5f69ca4b58e6e62b06fc873fe7a1e2f0
2018-08-28 11:28:42 +10:00
James E. Blair
055f29d8ab Use python2 on centos/trusty in system-config-run-base
This mirrors the group var we set for hosts which run on centos
and trusty.

Change-Id: I5f0f9eee04e45c35566bd4f4990ee527184f4d90
2018-08-27 15:39:16 -07:00
James E. Blair
3d166f99f6 Add unbound role
Add it to the base playbook and add a testinfra test for it.

Change-Id: Id5098f33aac213e6add6f061684d0214dc99ab5b
2018-08-27 13:29:18 -07:00
Zuul
4dfd604936 Merge "Add volume-size flag to launch-node" 2018-08-27 19:17:44 +00:00
Zuul
58b96d6703 Merge "Add VEXXHOST to Ansible cloud layouts" 2018-08-27 16:38:36 +00:00
Zuul
74895df154 Merge "Adding SJC1 for VEXXHOST" 2018-08-27 16:22:48 +00:00
Zuul
973b624427 Merge "Add testinfra test for timezone" 2018-08-27 16:19:24 +00:00
Zuul
52f847013b Merge "Add snmpd role and add it to base" 2018-08-27 16:19:22 +00:00
Zuul
73d61df06d Merge "Add testinfra test for ntp" 2018-08-27 16:19:21 +00:00
Zuul
27b2c7e10b Merge "Add timezone role" 2018-08-27 16:19:19 +00:00
Zuul
ba263fa07e Merge "Add NTP service to base-server" 2018-08-27 16:19:18 +00:00
Zuul
53b308b786 Merge "Add iptables role" 2018-08-27 16:19:16 +00:00
Mohammed Naser
0bb20fc5bf Add VEXXHOST to Ansible cloud layouts
Change-Id: I055df4aa90428db73db9808435bc5a4adc8ad204
2018-08-27 11:50:04 -04:00
Mohammed Naser
1534c42409 Adding SJC1 for VEXXHOST
Change-Id: Ia4bf3fcd576d415418f756cb07609b817d035534
2018-08-27 11:34:53 -04:00
David Shrewsbury
faec087e20 Add testinfra test for timezone
Change-Id: Ib02d54eb5b188928906670607d4d2bff80a384f2
2018-08-27 11:21:03 -04:00
Zuul
4bd5095f37 Merge "Scope exim service name variable" 2018-08-27 14:53:04 +00:00
James E. Blair
dceb09d886 Add snmpd role and add it to base
Change-Id: I00bf872e8504efb26d20832f1da82da8cfe87258
2018-08-27 07:34:36 -07:00
James E. Blair
6ec51b4d00 Add testinfra test for ntp
Change-Id: If7b5215edea93d272dc1d0344839756d9f43b2ac
2018-08-27 07:34:30 -07:00
David Shrewsbury
b3b698c6ff Add timezone role
Contains a handler to restart crond when tz is changed. Cron service
name differs across distros.

Removes the puppet-timezone usage.

Change-Id: I4e45d0e0ed37214ac491f373ff2d37750e720718
2018-08-27 07:34:28 -07:00
David Shrewsbury
360e0107a7 Add NTP service to base-server
Removes puppet-side ntp setup.

Change-Id: I75a87ca55fd4b75c5715cc3fd2b708e0b0ae2c20
2018-08-27 07:34:25 -07:00
Monty Taylor
15663daaf7 Add iptables role
Co-Authored-By: James E. Blair <corvus@inaugust.com>
Change-Id: Id8b347483affd710759f9b225bfadb3ce851333c
Depends-On: https://review.openstack.org/596503
2018-08-27 14:33:32 +00:00
Zuul
6c71d80d87 Merge "Add openafs-client role" 2018-08-27 01:39:46 +00:00
Zuul
f52774cc20 Merge "Add kerberos-client role" 2018-08-27 01:39:44 +00:00
James E. Blair
3bc18bc705 Scope exim service name variable
This is used in a handler which may be run after intervening roles;
ensure it has a unique variable name.

Change-Id: I6a3d856d3252ff62220d9769232e31ea7c4f9080
2018-08-24 17:05:03 -07:00
Andreas Jaeger
1c6b4876eb Cleanup docs formatting
Fix indents of some pages, the wrong indent let to gray bars besides
them.

Also, fix a typo and add some markup.

Change-Id: I6e7126ef7b782b376efcc7c6d69c6de9a504ddb5
2018-08-24 22:13:37 +02:00
Zuul
dde24421d0 Merge "Add system-config-run-base to gate" 2018-08-24 19:57:30 +00:00
Zuul
18bcfeb5c8 Merge "Don't create "admin" group" 2018-08-24 19:57:29 +00:00
Zuul
fcfacc7e52 Merge "Add system-config-run-base job" 2018-08-24 19:57:27 +00:00
James E. Blair
9decd58b41 Add system-config-run-base to gate
And run on testinfra changes.

Change-Id: I146c0cf847c0c355af4351f89c2ed530990497dc
2018-08-24 09:28:10 -07:00
Ian Wienand
114953cbff Don't create "admin" group
According to the Ubuntu 12.04 release notes, up until Ubuntu 11.10
admin access was granted via the "admin" unix group, but was changed
to the "sudo" group to be more consistent with Debian et al.

Remove the now unnecessary group

Modify the install-ansible role to set some directory ownership to
root:root; there didn't seem to be any reason to use admin here.

This means the "users" role is no longer required in the bridge.yaml,
as it is run from the base playbook anyway.

Change-Id: I6a7fdd460fb472f0d3468eb080aebbb010931e11
2018-08-24 08:50:22 -07:00
James E. Blair
19aebca3e7 Add system-config-run-base job
This adds a job which creates a bridge-like node and bootstraps it,
and then runs the base playbook against all of the node types we
use in our control plane.  It uses testinfra to validate the results.

Change-Id: Ibdbaf511bbdaee46e1335f2c83b95ba1553a1d94
Depends-On: https://review.openstack.org/595905
2018-08-24 08:50:01 -07:00
Zuul
36386394ca Merge "Allow bridge playbook to run under zuul" 2018-08-24 04:34:51 +00:00
Zuul
ea2dd8ccb8 Merge "Move exim role to top-level" 2018-08-24 03:30:28 +00:00
Zuul
7dd0473481 Merge "roles: Add README.rst and lint" 2018-08-23 21:56:58 +00:00
James E. Blair
1fa136cba9 Allow bridge playbook to run under zuul
Normally the bridge playbook runs as root on bridge.  In order to
allow zuul to bootstrap a bridge-like node in its tests while running
as the zuul user, add become: true to the playbook.  This will have
no effect on bridge itself, but will cause the playbook to behave
in the same manner in tests.

Also add the "users" role to bridge.  This is in the base playbook
and is therefore eventually run on bridge.  However it needs to also
be in the bridge playbook in order to bootstrap bridge correctly, as
the install-ansible role references groups which are created in the
users role.

Change-Id: If311914e9e632d8be855fff0a62528dd191bf1d0
2018-08-23 08:29:01 -07:00
Zuul
2f4d4dab32 Merge "playbooks/roles/exim: remove "true" filter plugin" 2018-08-23 11:44:25 +00:00
Zuul
e6124f36d2 Merge "Generate roles documentation" 2018-08-23 11:44:24 +00:00
Ian Wienand
801e7c9bd0 Add openafs-client role
The role sets up a host as an OpenAFS client.

As noted in the README, OpenAFS is not available in every
distribution, or on every architecture.  The goal is to provide
sensible defaults but allow for flexibility.

This is largely a port of the client parts of
openstack-infra/puppet-openafs.

This is a generic role because it will be used from Zuul jobs
(wheel-builds) and in the control-plane (servers mounting AFS)

Tested-By: https://review.openstack.org/589335
Needed-By: https://review.openstack.org/590636
Change-Id: Iaaa18194baca4ebd37669ea00505416ebf6c884c
2018-08-23 21:34:47 +10:00
Ian Wienand
e3da2c2e3e Add kerberos-client role
A role to setup a host as a kerberos client

This is largely a port of the client ports of
openstack-infra/puppet-kerberos.

This is a generic role because it will be used from Zuul jobs
(wheel-builds) and in the control-plane (servers mounting AFS)

Tested-By: https://review.openstack.org/589335
Needed-By: https://review.openstack.org/590636
Change-Id: I4b38ea7ec2325071a67068555ef47e15d559c18e
2018-08-23 21:34:47 +10:00
Ian Wienand
1939f3e8ec Move exim role to top-level
Move the exim role to be a "generic" role in the top-level roles/
directory, making it available for use as a Zuul role.

Update the linters jobs to look for roles in the top level

Update the Role documentation to explain what the split in roles is
about.

Change-Id: I6b49d2a4b120141b3c99f5f1e28c410da12d9dc3
2018-08-23 21:34:47 +10:00
Ian Wienand
4402201d56 roles: Add README.rst and lint
These role docs aren't exactly War and Peace, but I think longer term
as we fiddle about making things generic or not and moving them
around, we'll be better off having kept ourselves to writing
*something*.

Add terse README.rst files for all existing roles, and add simple
linter check to ensure new roles get them too.

Change-Id: Ibc836310fb8a45e12c2e31f112d92509ac350413
2018-08-23 21:34:42 +10:00
Tony Breeds
da2f6457ce Install the puppetlabs puppet package
in Ica34b7525bab53f8a6d161401f7fb9a2dbe37bc3 we added support for
installing puppet5 on bionic nodes.  However we missed adding the
package name.  Which results in the expansion[1]:

  apt-get --option Dpkg::Options::=--force-confold --assume-yes install -y --force-yes git rubygems

and later puppet isn't installed[2]:

  Failed to stop puppet.service: Unit puppet.service not loaded.

Adding the pkg name gets us[3]

[1] http://logs.openstack.org/41/588441/1/check/build-wheel-mirror-ubuntu-bionic/b3fd7ef/job-output.txt.gz#_2018-08-22_23_42_42_196476
[2] http://logs.openstack.org/41/588441/1/check/build-wheel-mirror-ubuntu-bionic/b3fd7ef/job-output.txt.gz#_2018-08-22_23_42_46_453880
[3] http://paste.openstack.org/raw/728653/

Change-Id: Icbcf5268624a5ff75e0058f8a355881125cd5d79
2018-08-23 14:55:08 +10:00
Ian Wienand
564a17812f playbooks/roles/exim: remove "true" filter plugin
This filter is unsued in the role, remove it.

This allows it to be run under zuul and can be moved into the
top-level role/ directory later.

Change-Id: Ice97f0c3c9f52b6bf9f48c7b16d577e555924034
2018-08-23 14:49:50 +10:00
Ian Wienand
b99c4c6fb0 Generate roles documentation
Since we're building out roles in system-config now, generate
documentation.  We look in roles/* and playbook/roles/* (follow-on
changes will split things up between the two).

Correct the reference names in the exim documentation to avoid
warnings and failure.

This also revealed a single unicode character in the exim readme
(which caused prior versions of zuul-sphinx to barf).  For fun, see if
you can find it!

Depends-On: https://review.openstack.org/#/c/579474/
Change-Id: I243a96bbd6d09560f8aa80b6345b90039422547a
2018-08-23 14:49:50 +10:00
Zuul
0eaee6c131 Merge "Support puppet5 for bionic" 2018-08-22 21:26:36 +00:00
Zuul
6bd0ce4e8f Merge "Add bridge to cacti" 2018-08-22 03:57:09 +00:00
Monty Taylor
4f9ab4eeb2 Increase the run_all forks count to 20
In testing this on bridge, 20 forks did not appreciably increase the
load average.

Change-Id: Ib571dec0f07e031273dc76a9f364478183b8f578
2018-08-22 01:42:43 +00:00
Zuul
181aa06d8e Merge "Move tox basepython to top-level" 2018-08-22 01:26:16 +00:00