Skip to content
Greg Harvey edited this page Dec 2, 2024 · 2 revisions

Welcome to the ce-provision wiki! To find out more about Code Enigma and our other tools, see our main GitHub page.

What is ce-provision?

Standing on the shoulders of the open source automation tool, Ansible, ce-provision makes it easy and fast to roll out infrastructure and centrally manage software on Linux servers. Give me the technical details.

What do I need?

To get started with ce-provision you need a computer capable of running bash and Ansible. It's easier if you use Debian Linux, because we have automated installation scripts for you, but it's not obligatory for the controller to run Debian. Help me to get started.

Why does this exist?

The main reason we created these tools with Ansible is because it is such a versatile tool that we can use it across the board, from infrastructure provisioning, to configuration management, to code deployments and beyond. This has the huge advantage of being able to learn one product and language to do all your DevOps and SysOps. Our aim here is to provide a huge set of open source building bricks and some suggestions as to how to use them.

It goes further than that though. We are a web development and support agency, with a large part of our business coming from help organisations manage their web hosting. We prefer a "shared responsibility model", which means we like to co-manage infrastructure with the people we work with. Because of this, Ansible's nature holds certain advantages over other models, which might be preferred by people operating more rigidly controlled environments.

Using Ansible as we do to capture server configuration in code allows us to let other people play with server configuration in real time, we can then capture their changes later. This is in stark contrast to more traditional configuration management tools (such as Puppet), where any change is almost immediately undone unless the server agent is stopped.

Ansible is also "stateless", which is preferable under our model for managing cloud infrastructure. Products like Terraform, which we used to use extensively, are designed to remember the state of an account and rigidly control the hardware. But if people make changes without using Terraform it can become hard to unpick. As with the server configuration part of ce-provision, taking the Ansible approach - no state and no agents - allows our partners to make changes to their cloud accounts without fear of breaking their setup, and we can fold those changes in later.

It just makes working together so much easier.

Clone this wiki locally