Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
common-ansible
🖥️▶️ Shared Ansible files that propagate to downstream projects (including boilerplate code for new projects)
https://github.com/ProfessorManhattan/common-ansible
Last synced: about 7 hours ago
JSON representation
-
Table of Contents
-
Overview
- Megabyte Labs - system inherit many of their files (e.g. configuration files) from a cascade of [common file repositories](https://gitlab.com/megabyte-labs/common). Each repository includes a bundle of shared files as a submodule. The submodule is located in the `.common/` folder in the root of each project. The submodule links to the common file repository that corresponds to the type of project (e.g. Ansible projects link their `.common/` folder to the [Ansible common files repository](https://gitlab.com/megabyte-labs/common/ansible)). Each of the common file repositories houses all the data that is required for a downstream repository but many of the files in the common file repository are actually inherited from a repository even further upstream.
- Megabyte Labs - system inherit many of their files (e.g. configuration files) from a cascade of [common file repositories](https://gitlab.com/megabyte-labs/common). Each repository includes a bundle of shared files as a submodule. The submodule is located in the `.common/` folder in the root of each project. The submodule links to the common file repository that corresponds to the type of project (e.g. Ansible projects link their `.common/` folder to the [Ansible common files repository](https://gitlab.com/megabyte-labs/common/ansible)). Each of the common file repositories houses all the data that is required for a downstream repository but many of the files in the common file repository are actually inherited from a repository even further upstream.
-
Documentation Partials and Variable Inheritence
-
Common File Propagation Process
- all the other project-type-specific documentation repositories - seperated list of repository project IDs ([Link to GitLab CI configuration](https://gitlab.com/megabyte-labs/ci/gitlab-ci-templates/-/blob/master/propagate/propagate-projects.gitlab-ci.yml)).
- common file repositories - labs/ci/gitlab-ci-templates/-/blob/master/propagate/propagate-projects.gitlab-ci.yml)).
- shared common file repository - labs/ci/gitlab-ci-templates/-/blob/master/update/update-common.gitlab-ci.yml)).
- GitLab CI update configuration - to-date, ensures [Task](https://taskfile.dev/#/) is installed, and then uses Task to run the project configuration/generation/update process. Using Task allows us to run all parts of the project configuration/generation/update in parallel which makes the process quick. It also has some other nice features like dependency management and conditional script execution.
- all the other project-type-specific documentation repositories - seperated list of repository project IDs ([Link to GitLab CI configuration](https://gitlab.com/megabyte-labs/ci/gitlab-ci-templates/-/blob/master/propagate/propagate-projects.gitlab-ci.yml)).
- Link to GitLab CI update script
- common file repositories - labs/ci/gitlab-ci-templates/-/blob/master/propagate/propagate-projects.gitlab-ci.yml)).
- Link to propagation GitLab CI configuration
- shared common file repository - labs/ci/gitlab-ci-templates/-/blob/master/update/update-common.gitlab-ci.yml)).
-
Common File Sub-Types
- Ansible common file repository - role`, and `files-playbook`. In this case, during the project update process, the `files` are copied into both the `files-role` and `files-playbook` folders. The `files-role` and `files-playbook` folders contain files meant for all Ansible projects but files intended for their sub-types. In this case, the sub-types are `role` and `playbook` - two different types of Ansible projects that require slightly different sets of files.
- Megabyte Labs GitLab group - groups will be:
- ansible-molecule
- app
- ci-pipeline
- software
- Megabyte Labs GitLab group - groups will be:
- ansible-molecule
- app
- ci-pipeline
- software
- Ansible common file repository - role`, and `files-playbook`. In this case, during the project update process, the `files` are copied into both the `files-role` and `files-playbook` folders. The `files-role` and `files-playbook` folders contain files meant for all Ansible projects but files intended for their sub-types. In this case, the sub-types are `role` and `playbook` - two different types of Ansible projects that require slightly different sets of files.
-
Templated Files
Categories
Sub Categories