Go to file
Joshua Boniface 030a3ded99 Add daily Postgres vacuum script 2019-08-11 15:29:00 -04:00
files/default Add files dir in repo 2019-06-16 02:10:43 -04:00
group_vars/default Support new log flags and update default log conf 2019-07-10 21:49:38 -04:00
roles Add daily Postgres vacuum script 2019-08-11 15:29:00 -04:00
.gitignore Update gitignore 2019-06-16 02:10:38 -04:00
LICENSE Add license file 2019-06-11 20:33:51 -04:00
README.md Update README 2019-08-08 20:22:56 -04:00
hosts.default Move hosts to hosts.default 2019-06-16 02:13:10 -04:00
pvc.yml Initial commit of PVC Ansible role 2019-06-09 00:52:18 -04:00

README.md

PVC Ansible

A set of Ansible roles to set up a PVC node host. Tested on Ansible 2.2 through 2.6; it is not guaranteed to work properly on older or newer versions.

Roles

This repository contains two roles:

base

This role provides a standardized and configured base system for PVC. This role expects that the system was installed via the PVC installer ISO, which results in a Debian Buster system.

pvc

This role configures the various subsystems required by PVC, including Ceph, Libvirt, Zookeeper, FRR, and Patroni, as well as the main PVC components themselves.

Variables

A default example set of configuration variables can be found in group_vars/default/.

A full explanation of all variables can be found in the manual.

Using

NOTE: These roles expect a Debian 10.X (Buster) system specifically. This is currently the only operating environment supported for PVC.

NOTE: All non-default directories under group_vars/ and files/, and the hosts file, are ignored by this Git repository. It is advisable to manage these files securely in a separate repository and use symlinks to place them in the expected locations in this repository. Note that the files/ data is created during cluster bootstrap.

For full details, please see the general PVC install documentation.

  1. Deploy a set of 3 or 5 initial PVC nodes using the PVC install ISO.
  2. Create a new cluster group in the hosts file, using hosts.default as an example. For the initial bootstrap run, it is recommended to only include the initial coordinators to ensure a smooth bootstrapping.
  3. Create a set of vars in group_vars, using group_vars/default as an example. Ensure that all desired coordinators are configured with the is_coordinator: yes flag.
  4. Run the pvc.yml playbook against the servers. If this is the very first run for a given cluster, use the -e bootstrap=yes variable to ensure the Ceph, Patroni, and PVC clusters are initialized.

License

Copyright (C) 2018-2019 Joshua M. Boniface joshua@boniface.me

This repository, and all contained files, is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.