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 9 months ago
docs update ansible vault command 1 year ago
group_vars/all update vault 1 year ago
mkdocs-material@b0c6890853 add mkdocs-material submodule 3 years ago
roles remove unused port numbers 9 months ago
secrets add encrypted secrets 1 year ago
.gitignore add non-encrypted contents of secrets folder to gitignore 1 year ago
.gitmodules add postfix role 1 year ago
LICENSE add mit license 3 years ago mention bot playbook in readme 1 year ago add notes on secrets 1 year ago
TODO udpate todo list 1 year ago
Vagrantfile add support files for vagrant boxes 3 years ago
barebones.yml add dotfiles to barebones 1 year ago
base.yml use machine_name to run base.yml on select hosts 1 year ago add bots playbook and notes 1 year ago
bots.yml typo fix 1 year ago
do.cfg re-add do hosts 1 year ago
dohosts re-add do hosts 1 year ago
linode.cfg add linode hosts file and config file 2 years ago
linodehosts add safe linodehosts 1 year ago
memo add memo with notes on what to update in docs 1 year ago
mkdocs.yml add linode docs page to mkdocs.yml 1 year ago
podcharlesreid1.yml update server names that podcharlesreid1.yml playbook applies to 1 year ago
postfix.yml fix domain in postfix 1 year ago
provision.yml add an apt-get update to the provision step 1 year ago
uptime.yml split uptime into separate playbook 1 year ago
vagrant.cfg letsencrypt still broken... snakeoil certs problem... 3 years ago
vagranthosts [WORKING ON VAGRANT] Update and fix all roles 3 years 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.