I spent some time over the weekend to bring the ansible-pcd project up to date and am excited to share it with the community!
https://github.com/iceburg-net/ansible-pcd
ansible-pcd provides a set of roles and standard conveniences with the following goals;
- encourage flexible, convenient, and reusable automation components
- drastically reduce execution time by visiting only necessary tasks
- support multiple distributions (Debian, RedHat, &c)
- remain simple, intuitive, and community friendly
- avoid redundancy, be maintainable
roles following the pcd standard tag tasks as either prepare, configure, or deploy.
- prepare: typically run one time per host (e.g. create user)
- configure: run whenever configuration changes (e.g. update httpd port)
- deploy: run on site/application releases
the organization within the ansible-pcd framework makes it suitable for extremely large installments.
- roles are categorized into systems, services, and applications.
ansible-pcd currently provides an ansible-managed “webhost in a box”
current functionality
- YAML website definitions - see https://github.com/iceburg-net/ansible-pcd/tree/master/sites
- git based sites (shallow clone during deployment), multiple branch support.
- conveniences for;
- mysql user + database creation
- awstats integration
- wordpress/silverstripe/&c rewrites
- backups (e.g. asset/upload folder(s) > cloud storage)
- nullmailer MTA replacement
- remote/cloud backups via s3ql
- provisioning hosts with a consistent environment
I currently only support Debian-7 but will hopefully add more roles and distribution support as time goes by && if there’s interest will add to galaxy.
John’s slides on using ansible at edX served as a powerful inspiration to get started again… and my thanks go to him.
Happy memorial day weekend to those in the US.
~ Brice