LinConf is a blanket organization on GitHub where I intend to publish Ansible roles, tests and modules which adhere to the following important design principles:
- Dependency free
- Structural consistency
- High extensibility
- High modularity
Roles stored in the LinConf organization should be as free as possible from inter-role dependencies. The Ansible version is all that should be required.
Roles will deliberately not coordinate tasks between themselves. As such, variables and plays will tell the environments entire story without knowledge of each roles inner-workings.
This is a design choice and not intended to suggest dependencies are inherently bad. DebOps, for example, achieves amazing results while maintaining only a few role dependencies.
There are numerous methods and conventions for writing Ansible roles. In another post I will detail target conventions for use with LinConf roles.
While striving for simplicity, extensibility will remain a top priority. Exposing the power of Ansible through role variables has proven useful in the past and will be a design priority for published roles.
Role modularity extends from the dependency free design philosophy.
The domain linconf.com will point to documentation hosted on GitHub pages, generated by MkDocs and stored inside the linconf-docs repository.