Bruce Becker 10 years ago
commit f3fc19356c

@ -13,10 +13,7 @@ None
Role Variables
--------------
```
- vars:
docker_rc: no # no by default. Set to yes to install the latest Docker version (release candidates and such)
```
None
Dependencies
------------
@ -25,18 +22,27 @@ None
Example Playbook
----------------
Install vanilla Docker
Install Docker
```
- hosts: servers
roles:
- mongrelion.docker
```
Install testing release of Docker
Testing
-------
For development, we use Vagrant.
Bring the VM up with
```
$ vagrant up
```
This will automatically run the playbooks against the virtual machine once it's up.
After making changes to any playbook, you can test the provisioning with
```
- hosts: servers
roles:
- { role: mongrelion.docker, docker_rc: yes }
$ vagrant provision
```
License

18
Vagrantfile vendored

@ -2,12 +2,24 @@
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "centos/7"
config.vm.provider "virtualbox" do |vb|
vb.memory = "512"
end
config.vm.provision "ansible" do |ansible|
ansible.playbook = "tests/vagrant.yml"
config.vm.define "centos" do |machine|
machine.vm.box = "minimal/centos7"
machine.vm.provision "shell", inline: "yum update -y"
machine.vm.provision "ansible" do |ansible|
ansible.playbook = "tests/vagrant.yml"
end
end
config.vm.define "debian" do |machine|
machine.vm.box = "minimal/jessie64"
machine.vm.provision "shell", inline: "apt-get update && apt-get install -y python"
machine.vm.provision "ansible" do |ansible|
ansible.playbook = "tests/vagrant.yml"
end
end
end

@ -1,4 +1,4 @@
---
docker_rc: no
docker_clusterstore: no
consul_ip: 127.0.0.1
docker_clusterstore: no
dockerpy: no

@ -1,6 +0,0 @@
[docker-testing-repo]
name=Docker testing Repository
baseurl=https://yum.dockerproject.org/repo/testing/centos/7
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg

@ -0,0 +1 @@
deb https://apt.dockerproject.org/repo debian-jessie main

@ -1,15 +1,14 @@
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network.target docker.socket
Requires=docker.socket
After=network.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/docker daemon -H fd://
ExecStart=/usr/bin/docker daemon -H unix:///var/run/docker.sock
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
LimitNPROC=1048576

@ -8,6 +8,9 @@ galaxy_info:
- name: EL
versions:
- 7
- name: Debian
versions:
- jessie
galaxy_tags:
- docker
- swarm

@ -1,25 +1,12 @@
---
- name: ensure repo is present
copy:
src: docker.repo
dest: /etc/yum.repos.d/docker.repo
when: not docker_rc
- name: ensure testing repo is present
copy:
src: docker-testing.repo
dest: /etc/yum.repos.d/docker-testing.repo
when: docker_rc
- name: ensure docker is installed
yum:
name: docker-engine
state: present
- include: "os/{{ ansible_os_family }}.yml"
- name: ensure config folder is present
file:
path: /etc/docker
state: directory
file: path=/etc/docker state=directory
- name: ensure docker-py module is installed
pip: name=docker-py version=1.9.0
when: dockerpy
- name: ensure daemon config file is present
template:
@ -39,17 +26,7 @@
- meta: flush_handlers
- name: ensure starts on system boot
service:
name: docker
enabled: yes
service: name=docker enabled=yes
# I don't want vagrant
# - name: ensure vagrant user can run docker commands
# user:
# name: vagrant
# groups: docker
# append: yes
- name: ensure that docker group is available
group:
name: docker
state: present
- name: ensure vagrant user can run docker commands
user: name=vagrant groups=docker append=yes

@ -0,0 +1,19 @@
---
- name: ensure docker dependencies are installed
apt: name={{ item }} state=present
with_items:
- apt-transport-https
- ca-certificates
- name: ensure Docker GPG key is present
apt_key: id=58118E89F3A912897C070ADBF76221572C52609D keyserver=hkp://p80.pool.sks-keyservers.net:80
- name: ensure repo is present
copy: src=files/docker.apt.repo dest=/etc/apt/sources.list.d/docker.list
register: repofile
- name: ensure apt cache is updated
apt: update_cache=yes
- name: ensure docker is installed
apt: name=docker-engine state=present

@ -0,0 +1,6 @@
---
- name: ensure repo is present
copy: src=files/docker.yum.repo dest=/etc/yum.repos.d/docker.repo
- name: ensure docker is installed
yum: name=docker-engine state=present
Loading…
Cancel
Save