/
role_docker.go
52 lines (47 loc) · 1.46 KB
/
role_docker.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package models
import (
"github.com/karhuteam/ansible"
)
func setupDockerRole(role *ansible.Role, d *Deployment) *ansible.Role {
docker := d.Build.RuntimeCfg.Docker
// Add tasks
role.AddTask(ansible.Task{
`name`: `Check Docker Install`,
`command`: `dpkg-query -l docker-engine`,
`failed_when`: `False`,
`register`: `deb_check`,
}).AddTask(ansible.Task{
`name`: `Download Docker Setup`,
`get_url`: ansible.Task{
`url`: `https://get.docker.com`,
`dest`: `/tmp/docker.sh`,
`mode`: `0755`,
},
`when`: `deb_check.stderr.find('no packages found') != -1`,
}).AddTask(ansible.Task{
`name`: `Setup Deps`,
`apt`: `name={{ item }} state=present force=yes update_cache=yes cache_valid_time=86400`,
`with_items`: []string{"python-pip", "apt-transport-https"},
}).AddTask(ansible.Task{
`name`: `Setup Docker`,
`command`: `sh /tmp/docker.sh`,
`when`: `deb_check.stderr.find('no packages found') != -1`,
}).AddTask(ansible.Task{
`name`: `Setup docker-py`,
`pip`: `name=docker-py state=present`,
}).AddTask(ansible.Task{
`name`: `Launch Container`,
`docker`: ansible.Task{
`name`: docker.Name,
`image`: docker.Image,
`pull`: docker.Pull,
`restart_policy`: docker.Restart,
`state`: `reloaded`,
`links`: docker.Links,
`ports`: docker.Ports,
`volumes`: docker.Volumes,
// `env`: docker.Env,
},
})
return role
}