/ansible-role-digital-ocean

An Ansible role that provisions a Digital Ocean droplet.

mebooks.ansible-role-digital-ocean

An Ansible role, available via Ansible Galaxy, that provisions a Digital Ocean droplet.

This role works with our repo to create a vagrant virtualbox vm, but is easily modifed to work with actual ubuntu boxes.

You'll probably want to amend / override:

  • defaults/main.yml

Installation

Preusming a requirements.yml as follows:

# Install a role from GitHub
- name: ansible-role-common
src: https://github.com/jcdarwin/ansible-role-common

We can install the role locally, using a requirements.yml file:

# Install a role from GitHub
- name: ansible-role-common
src: https://github.com/jcdarwin/ansible-role-common
path: roles/

Install the role:

ansible-galaxy install -r requirements.yml -p ./roles

Requirements

You may already have:

Role Variables

Available variables are listed below, along with default values as found in defaults/main.yml:

ansible_role_common:
  locale: "en_NZ"

  packages:
  - build-essential
  - curl
  - cron-apt
  - fail2ban
  - git
  - imagemagick
  - mutt
  - ncdu
  - psmisc
  - rsync
  - tree
  - ufw
  - unattended-upgrades
  - unzip
  - vim
  - wget
  - zip

  authorized_ports:
  - 22
  - 80
  - 443
  - 587
  - 2222
  - 9999

Dependencies

None.

Example Playbook

Our hosts file, as generated by our repo to create a vagrant virtualbox vm:

[vagrant]
host1 ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_user=vagrant ansible_ssh_private_key_file=../.vagrant/machines/default/virtualbox/private_key

We include a playbook at main.yml.

Running the playbook:

# Note that we're presuming our hosts file has been generated by our vagrant repo
ansible all -m ping -i ../vagrant/ansible/hosts -l all

ansible-playbook -l all main.yml -i ../vagrant/ansible/hosts

# Check that our packages have been installed
ansible -m shell -a 'zip -h' all -i ../vagrant/ansible/hosts

License

MIT

Author Information

http://github.com/jcdarwin