ansible-pcd ; now fit for public consumption

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

Competition, eh? :slight_smile: Great! I’ve added you to my list. Which I promptly created and included in my project’s README (https://github.com/ginas/ginas/).

Cheers!
Maciej

Maciej,

Wow! What an impressive project you have there. Some very useful roles.

Thanks for sharing my project. I’ll be sure to do the same with ginas on the next readme revision.

Of note; ansible-pcd isn’t really inspired by edX - I did like the uppercase/lowercase variable naming conventions and found the slides motivating enough to polish up my project. The pcd concept and app/service/system organization is actually something I dreamed up and implemented at cicayda (albeit with a hodge podge of bash scripts and ansible 0.7 playbooks). This is a rewrite of the concept using roles and ansible 1.6.

Great work and I hope we can work together to create better distribution agnostic roles.

~ Brice