Commit 8289976
Changed files (11)
group_vars
roles
hosting
handlers
group_vars/hosting.yml
@@ -1,8 +0,0 @@
----
-# docker hosting specific variables
-docker_deps:
- - python-software-properties
-
-linux_kernel: 3.8.0-19-generic
-vbox_additions_iso: http://dlc.sun.com.edgesuite.net/virtualbox/4.2.12/VBoxGuestAdditions_4.2.12.iso
-
group_vars/hosting_dev.yml
@@ -1,11 +0,0 @@
-# vars specifically for building a development enviroment for docker
-docker_git_url: git://github.com/dotcloud/docker.git
-docker_dev_deps:
- - lxc
- - bsdtar
- - golang
- - curl
- - git
- - wget
- - build-essential
- - linux-headers-{{ linux_kernel }}
roles/hosting/handlers/docker-daemon.yml
@@ -1,4 +0,0 @@
----
-# use status code of docker version to check if docker daemon is up, if not start it
-- name: check if docker daemon is up
- shell: docker version
roles/hosting/handlers/main.yml
@@ -1,2 +0,0 @@
----
-- include: docker-daemon.yml
roles/hosting/tasks/build-tasks.yml
@@ -1,43 +0,0 @@
----
-# install dependencies needed to build/run the docker lxc engine (http://www.docker.io/)
-# Basically a reworking of docker's Vagrentfile[1] into an ansible-playbook
-# [1] https://github.com/dotcloud/docker/blob/master/Vagrantfile
-
-### PPA install ###
-- name: Enable ppa adding via apt-add-repository is available
- tags: ppa,dev
- apt: pkg={{ item }} state=latest
- with_items: docker_deps # defined in groupvars/hosting.yml
-
-- name: Add docker ppa
- tags: ppa
- apt_repository: repo=ppa:dotcloud/lxc-docker
-
-- name: Install docker via ppa
- tags: ppa
- apt: pkg=lxc-docker state=latest update_cache=yes
-
-
-### Dev Install ###
-- name: Install docker development dependencies
- tags: dev
- apt: pkg={{ item }} state=latest update_cache=yes
- with_items: docker_dev_deps # defined in groupvars/hosting_dev.yml
-
-# TODO: improve granularity of this checking, i.e. version number, cloning only if absent
-- name: Clone docker via git
- tags: dev
- git: repo={{docker_git_url}} dest=/tmp/docker/
-
-- name: Docker dev make, make install
- tags: dev
- shell: cd /tmp/docker && make && cp ./bin/docker /usr/local/bin/docker
-
-- name: Determine if docker is installed already
- tags: dev
- debug: msg="docker installed at:{{item}}"
- with_lines:
- - which docker
-
-
-
roles/hosting/tasks/kernel-tasks.yml
@@ -1,16 +0,0 @@
----
-# Install the required kernel for docker
-
-- name: Install linux-image-{{ linux_kernel }} # defined in group_vars/hosting.yml
- tags: dep,ppa,bin
- apt: package=linux-image{{ linux_kernel }} update_cache=yes
-
-- name: Install wget
- tags: vbox
- apt: package=wget state=latest
-
-- name: wget iso
- tags: vbox
- action: wget -q {{ vbox_additions_iso }}
-
-
roles/hosting/tasks/main.yml
@@ -1,3 +0,0 @@
----
-- include: kernel-tasks.yml
-- include: build-tasks.yml
docker.yml
@@ -0,0 +1,44 @@
+---
+- hosts: hosting
+ vars:
+ docker_deps:
+ - python-software-properties
+ - python-apt
+ - python-pycurl
+ - wget
+ linux_kernel: 3.8.0-29-generic
+ vbox_additions_iso: http://dlc.sun.com.edgesuite.net/virtualbox/4.2.12/VBoxGuestAdditions_4.2.12.iso
+ tasks:
+ # install dependencies needed to run the docker lxc engine (http://www.docker.io/)
+ # Basically a reworking of docker's Vagrentfile[1] into an ansible-playbook
+ # [1] https://github.com/dotcloud/docker/blob/master/Vagrantfile
+
+ - name: Install linux-image-{{ linux_kernel }} # defined in group_vars/hosting.yml
+ apt: package=linux-image-{{ linux_kernel }} update_cache=yes
+ sudo: yes
+ tags: repo
+
+ - name: Pre-repo add dependencies
+ apt: pkg={{ item }} state=latest
+ with_items: docker_deps # defined in groupvars/hosting.yml
+ sudo: yes
+ tags: repo
+
+ - name: wget VBox Additions iso for fixing after kernel update
+ action: wget -q {{ vbox_additions_iso }}
+ tags: vbox
+
+ - name: Add docker repository key
+ apt_key: url=https://get.docker.io/gpg state=present
+ sudo: yes
+ tags: repo
+
+ - name: Add docker repository
+ apt_repository: repo='deb http://get.docker.io/ubuntu docker main' state=present
+ sudo: yes
+ tags: repo
+
+ - name: Install docker
+ apt: pkg=lxc-docker state=latest update_cache=yes
+ sudo: yes
+ tags: repo
hosting.yml
@@ -1,9 +0,0 @@
----
-# file: hosting.yml
-- hosts: hosting
- vars_files:
- - group_vars/hosting.yml
- - group_vars/hosting_dev.yml
- roles:
- - hosting
-
inventory
@@ -1,29 +1,5 @@
[local-hosting]
127.0.0.1
-[local-dockers]
-
-[aws-hosting]
-
-[aws-dockers]
-
-# all hosting
[hosting:children]
local-hosting
-aws-hosting
-
-# all dockers
-[dockers:children]
-local-dockers
-aws-dockers
-
-# all local
-[local:children]
-local-hosting
-local-dockers
-
-# all aws
-[aws:children]
-aws-hosting
-aws-dockers
-
README.md
@@ -1,12 +1,14 @@
#ansible-docker
-ansible playbook for provisioning docker lxc containers
+ansible playbook for setting up docker
-##hosting.yml
+##docker.yml
setup a lxc host with the required dependencies
+example run:```ansible-playbook -i inventory docker.yml --tags repo```
+
**tags**
-* **dev** - setup for development environment, compile docker, etc.
-* **ppa** - install docker from the ubuntu ppa
+* **repo** - setup for development environment, compile docker, etc.
* **bin** - install docker from the docker-latest binary [not yet implemented]
+* **vbox** - if inside vbox, re-install VBox Guest Additions [not yet implemented]