Go to file
Joshua Boniface d35250b870 Add tasks to verify node has finished (un)flushing 2021-01-07 10:49:23 -05:00
files/default Add files dir in repo 2019-06-16 02:10:43 -04:00
group_vars/default Add default values 2020-12-21 00:20:45 -05:00
oneshot Add tasks to verify node has finished (un)flushing 2021-01-07 10:49:23 -05:00
roles Add default values 2020-12-21 00:20:45 -05: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 Fix a grammatical error 2020-03-15 17:44:17 -04:00
hosts.default Move hosts to hosts.default 2019-06-16 02:13:10 -04:00
purge.sh Add nice warning to purge script 2020-08-19 16:35:05 -04:00
pvc.yml Initial commit of PVC Ansible role 2019-06-09 00:52:18 -04:00

README.md

PVC Ansible

NOTICE FOR GITHUB: This repository is a read-only mirror of the PVC repositories from my personal GitLab instance. Pull requests submitted here will not be merged. Issues submitted here will however be treated as authoritative.

A set of Ansible roles to set up PVC nodes. Part of the Parallel Virtual Cluster system.

Tested on Ansible 2.2 through 2.8; 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.

This role is optional; the administrator may configure the base system however they please so long as the pvc role can be installed thereafter.

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-2020 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/.