System configuration for the OpenDev Collaboratory
Go to file
Ian Wienand afd907c16d letsencrypt support
This change contains the roles and testing for deploying certificates
on hosts using letsencrypt with domain authentication.

From a top level, the process is implemented in the roles as follows:

1) letsencrypt-acme-sh-install

   This role installs the acme.sh tool on hosts in the letsencrypt
   group, along with a small custom driver script to help parse output
   that is used by later roles.

2) letsencrypt-request-certs

   This role runs on each host, and reads a host variable describing
   the certificates required.  It uses the acme.sh tool (via the
   driver) to request the certificates from letsencrypt.  It populates
   a global Ansible variable with the authentication TXT records
   required.

   If the certificate exists on the host and is not within the renewal
   period, it should do nothing.

3) letsencrypt-install-txt-record

   This role runs on the adns server.  It installs the TXT records
   generated in step 2 to the acme.opendev.org domain and then
   refreshes the server.  Hosts wanting certificates will have
   pre-provisioned CNAME records for _acme-challenge.host.opendev.org
   pointing to acme.opendev.org.

4) letsencrypt-create-certs

   This role runs on each host, reading the same variable as in step
   2.  However this time the acme.sh tool is run to authenticate and
   create the certificates, which should now work correctly via the
   TXT records from step 3.  After this, the host will have the
   full certificate material.

Testing is added via testinfra.  For testing purposes requests are
made to the staging letsencrypt servers and a self-signed certificate
is provisioned in step 4 (as the authentication is not available
during CI).  We test that the DNS TXT records are created locally on
the CI adns server, however.

Related-Spec: https://review.openstack.org/587283

Change-Id: I1f66da614751a29cc565b37cdc9ff34d70fdfd3f
2019-04-02 15:31:41 +11:00
doc Merge "Document kerberos stash file requirement" 2019-03-01 18:15:25 +00:00
docker Upgrade to gitea 1.7.4 2019-03-15 09:09:42 -07:00
hiera Add meetbot to openstack-fenix channel 2019-03-11 14:18:25 +09:00
inventory letsencrypt support 2019-04-02 15:31:41 +11:00
kubernetes Fix gitea k8s files 2019-02-14 16:39:12 -08:00
launch Add global inventory to launch_node 2019-03-08 17:53:28 +00:00
manifests Use docs.opendev.org ssl cert 2019-03-26 15:31:50 -07:00
modules/openstack_project Merge "Add monitoring for filesystems other than root" 2019-03-28 22:35:10 +00:00
playbooks letsencrypt support 2019-04-02 15:31:41 +11:00
roles Use include_tasks instead of include 2018-09-20 09:08:55 -05:00
roles-test Make kdc03 the master kerberos kdc and admin server 2019-02-22 15:47:49 -08:00
testinfra letsencrypt support 2019-04-02 15:31:41 +11:00
tools Replace openstack.org git:// URLs with https:// 2019-03-25 09:40:52 -07:00
.gitignore Ignore ansible .retry files 2016-07-15 12:04:48 -07:00
.gitreview Rename config to system-config in .gitreview 2014-10-17 22:31:20 +00:00
.zuul.yaml letsencrypt support 2019-04-02 15:31:41 +11:00
bindep.txt Add libffi dev packages needed for ansible install 2016-10-04 15:20:00 -07:00
COPYING.GPL Add yamlgroup inventory plugin 2018-11-02 08:19:53 +11:00
Gemfile Add beaker tests for openstack_project::server 2018-07-10 22:04:57 +02:00
install_modules.sh Merge "Support puppet5 for bionic" 2018-08-22 21:26:36 +00:00
install_puppet.sh Install the puppetlabs puppet package 2018-08-23 14:55:08 +10:00
make_swap.sh Add base playbooks and roles to bootstrap a new server 2018-08-01 14:57:44 -07:00
modules.env Merge "Bump puppet/staging to 1.0.1 to satisfy mysql module dep" 2019-03-06 20:07:39 +00:00
mount_volume.sh Add support to launch-node for cinder attach 2016-04-19 11:07:23 -07:00
Rakefile Further changes to bring puppetboard online 2014-03-22 12:54:38 -07:00
README.md Replace openstack.org git:// URLs with https:// 2019-03-25 09:40:52 -07:00
roles.yaml Replace openstack.org git:// URLs with https:// 2019-03-25 09:40:52 -07:00
run_all.sh Fix puppet 4 installations 2019-03-08 14:18:28 -08:00
run_cloud_launcher.sh run_cloud_launcher.sh : generate runtime stats 2018-11-08 08:43:40 +11:00
run_k8s_ansible.sh Change to parent dir in run_k8s_ansible.sh 2019-03-15 09:51:40 +11:00
run_puppet.sh Clean up bashate failures 2014-09-30 12:40:59 -07:00
setup.cfg Update to openstackdocstheme 2018-06-25 11:19:43 +10:00
setup.py Update to openstackdocstheme 2018-06-25 11:19:43 +10:00
test-requirements.txt Cap ansible-lint at < 4.0.0 2018-12-18 12:21:09 -08:00
tox.ini Test gitea project creation playbook 2019-03-06 18:42:39 +00:00

Puppet Modules

These are a set of puppet manifests and modules that are currently being used to manage the OpenStack Project infrastructure.

The main entry point is in manifests/site.pp.

In general, most of the modules here are designed to be able to be run either in agent or apply mode.

These puppet modules require puppet 2.7 or greater. Additionally, the site.pp manifest assumes the existence of hiera.

See http://docs.openstack.org/infra/system-config for more information.

Documentation

The documentation presented at http://docs.openstack.org/infra/system-config comes from https://git.openstack.org/openstack-infra/system-config repo's docs/source. To build the documentation use

$ tox -evenv python setup.py build_sphinx