pvc-ansible/README.md

2.6 KiB

PVC Ansible

A set of Ansible roles to set up a PVC node host.

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.

Variables

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

Using

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.

  1. Deploy a set of 3 or 5 initial PVC nodes using the PVC install ISO.
  2. Configure the networking on the hosts via ssh deploy@<host> and editing the /etc/network/interfaces file to match your network layout, including and bonding and vlans. Remember to remove the static or DHCP configuration from the primary (upstream, usually) network interface that was set by the installer to allow bootstrapping. Use the manual mode for all interfaces that PVC will manage. Bring up all configured interfaces via ifup.
  3. 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.
  4. 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.
  5. 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/.