Ansible playbooks for infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Charles Reid 937a266fe7 remove unused port numbers 3 weeks ago
docs update ansible vault command 7 months ago
group_vars/all update vault 7 months ago
mkdocs-material @ b0c6890853 add mkdocs-material submodule 1 year ago
roles remove unused port numbers 3 weeks ago
secrets add encrypted secrets 8 months ago
.gitignore add non-encrypted contents of secrets folder to gitignore 8 months ago
.gitmodules add postfix role 8 months ago
LICENSE add mit license 2 years ago mention bot playbook in readme 7 months ago add notes on secrets 8 months ago
TODO udpate todo list 9 months ago
Vagrantfile add support files for vagrant boxes 1 year ago
barebones.yml add dotfiles to barebones 7 months ago
base.yml use machine_name to run base.yml on select hosts 8 months ago add bots playbook and notes 8 months ago
bots.yml typo fix 8 months ago
do.cfg re-add do hosts 9 months ago
dohosts re-add do hosts 9 months ago
linode.cfg add linode hosts file and config file 1 year ago
linodehosts add safe linodehosts 8 months ago
memo add memo with notes on what to update in docs 8 months ago
mkdocs.yml add linode docs page to mkdocs.yml 9 months ago
podcharlesreid1.yml update server names that podcharlesreid1.yml playbook applies to 8 months ago
postfix.yml fix domain in postfix 7 months ago
provision.yml add an apt-get update to the provision step 8 months ago
uptime.yml split uptime into separate playbook 8 months ago
vagrant.cfg letsencrypt still broken... snakeoil certs problem... 1 year ago
vagranthosts [WORKING ON VAGRANT] Update and fix all roles 1 year ago


Ansible playbooks for infrastructure.

Table of Contents

Docker Pods

These docker pods are collections of related
services. The Ansible playbooks prepare remote nodes so they
are ready to run these docker pods.

Pod Link


There is one playbook per docker pod, plus a base playbook
and a provision playbook.

Playbook Description
podcharlesreid1.yml Playbook to install and run the docker pod (
bots.yml Playbook to install and run the apollo, ginsberg, and milton bot flocks. See
base.yml Base playbook run by all of the pod playbooks above.
provision.yml Playbook to provision new Ubuntu machines with /usr/bin/python.


Playbook Roles

The following roles carry out groups of tasks for setting up the base machine
to run infrastructure.

Base roles:

Role Name Description
init-root Prepare root user account
init-nonroot Prepare nonroot user account(s)
dotfiles Install and configure dotfiles for nonroot user
install-stuff Install stuff with aptitude
letsencrypt Install letsencrypt
postfix Install postfix mail server
pyenv Install pyenv for nonroot user
goenv Install goenv for nonroot user
sshkeys Set up ssh keys for all users
vim Set up vim for nonroot user

Machine-specific roles:

Role Name Description
bots Install and run the apollo, ginsberg, and milton bot flocks. See
pod-charlesreid1 Install the pod
uptime Install the uptime bot (

Getting Started with Playbooks

Documentation Page Description
docs/ Documentation index
docs/ Quick start for the impatient (uses Vagrant)
docs/ Guide for running playbooks on Digital Ocean
docs/ Guide for running playbooks on Vagrant

See docs/ for a list of all
playbooks in this directory and how to run them, as well as a list
of all tags.