Repository overview
Once set-up, it is extremely easy to work on full a development environment, using a virtual machine, a cloud server or a physical system.
Folders list
| Folder | Description | included in git |
|---|---|---|
| backup | Folder containing dynamic data that can be reused on a re-deployment | π« |
| common | Common files not related to any role | β |
| config | Common configuration files | Sample files only |
| devel | Resources for developers | β |
| docs | This repository main documentation | β |
| git-hooks | Git hooks to install prior any deployment | β |
| LICENSE | Lincence file (GPLv3) | β |
| logs | log files generated by ansible-lint | π« |
| mkdocs.yml | mkdocs index | β |
| playbooks | List of the main playbooks | β |
| README.md | Main readme displayed on GitHub | β |
| roles | List of the ansible roles | β |
| sandbox | Folder excluded from the repository for playing | π« |
| scripts | Convenience scripts | β |
Playbooks list
| Playbook | Description |
|---|---|
| install-version.yml | Main playbook to install a full version using the roles defined in config/defaults. |
| check-version.yml | Run all the tests using the roles defined for the specific version installed. |
| make-live.yml | Publish the DNS glue records (Using Gandi API), making the system reachable on internet. |
| install.yml | Playbook to install one or more roles individually. |
| backup.yml | Playbook to backup / retrieve the data generated one or more roles on the local system. |
| check.yml | Playbook to check the installation status for one or more roles individually. |
| restore.yml | Playbook to restore previously backup data from one or more roles individually. |
| uninstall.yml | Playbook to uninstall one or more roles individually. |
Roles hierarchy
The standard roles are using, partially or fully, the following folders hierarchy:
| Folder | Description |
|---|---|
| files | non-templated files to be copied on the server |
| templates | templated files to be copied on the server |
| defaults | default variables that can be overridden |
| doc | developer specific advanced documentation, if required |
| handlers | Ansible handlers |
| tasks | Parent task folder |
| tasks/base | Tasks that can be included by other tasks, e.g. facts |
| tasks/backup | Tasks to be executed when backing-up role specific data |
| tasks/check | Tasks to be run when checking the role has been installed |
| tasks/install | Tasks to run on the installation |
| tasks/restore | Tasks to be executed when restoring role specific data |
| tasks/uninstall | Tasks to run when removing a role from the server |
| vars | Constant variables specific to the role |
You will see later how to create a simple role, and how to use the playbooks to install, check, backup, restore and uninstall, a selection of roles.