Skip to content

Commit 8b24377

Browse files
committed
Merge pull request #171 from CodeNow/swarm-deamon
Swarm deamon
2 parents 835f161 + a3a29e4 commit 8b24377

12 files changed

Lines changed: 92 additions & 20 deletions

File tree

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,4 +95,8 @@ It is the custom at Runnable to play a song to the entire team when deploying. F
9595

9696
[shiva: FFXIV Shiva Theme](https://www.youtube.com/watch?v=noJiH8HLZw4)
9797

98+
[swarm-manager: Eric Prydz VS Pink Floyd - 'Proper Education'](https://www.youtube.com/watch?v=IttkDYE33aU)
99+
100+
[swarm-deamon: Pink Floyd - Another Brick In The Wall](https://www.youtube.com/watch?v=5IpYOF4Hi6Q)
101+
98102
**IMPORTANT:** Make sure the play the song loud and proud when deploying!

ansible/beta-hosts/variables

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ api_new_relic_app_name=beta-api-production
1414
api_rollbar_key=a90d9c262c7c48cfabbd32fd0a1bc61c
1515
api_s3_context_bucket=runnable.context.resources.production-beta
1616

17+
[docks:vars]
18+
docker_config=docks
19+
1720
[eru:vars]
1821
eru_github_id=8abb08f83f6d1c52bd1a
1922
eru_github_secret=74a23ee56486d57b14f292283cb04625f600917c

ansible/group_vars/alpha-hubot.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ container_run_opts: >
1313
-v /home/ubuntu/.ssh/config:/root/.ssh/config
1414
-v /home/ubuntu/.ssh/Test-runnable.pem:/root/.ssh/Test-runnable.pem
1515
-v /home/ubuntu/.ssh/oregon.pem:/root/.ssh/oregon.pem
16-
--restart=always
1716
-p 0.0.0.0:80:80
1817
1918
# container_kill_start

ansible/group_vars/alpha-palantiri.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,5 @@ container_envs: >
2525
2626
container_run_opts: >
2727
-d
28-
--restart=always
2928
-v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro
3029
{{ container_envs }}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: "swarm-deamon"
2+
3+
# container_kill_start settings
4+
container_image: swarm
5+
container_tag: 0.4.0
6+
7+
# container_kill_start vars
8+
log_driver: json-file
9+
10+
container_run_opts: >
11+
-d
12+
13+
container_run_args: >
14+
join
15+
--addr={{ ansible_default_ipv4.address }}:{{ docker_port }}
16+
token://{{ swarm_token }}

ansible/group_vars/alpha-swarm-manager.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ container_run_opts: >
1111
-d
1212
-p {{ swarm_master_port }}:2375
1313
-v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro
14-
--restart=always
1514
1615
container_run_args: >
1716
manage

ansible/group_vars/alpha-workers.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,4 @@ container_envs: >
5757
container_run_opts: >
5858
-d
5959
-v /opt/ssl/docker/{{ name }}:/etc/ssl/docker:ro
60-
--restart=always
6160
{{ container_envs }}

ansible/prod-hosts/variables

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ api_new_relic_app_name=alpha-api-production
1414
api_rollbar_key=a90d9c262c7c48cfabbd32fd0a1bc61c
1515
api_s3_context_bucket=runnable.context.resources.production
1616

17+
[docks:vars]
18+
docker_config=docks
19+
1720
[eru:vars]
1821
eru_github_id=46a23f5f99f0aa9460f8
1922
eru_github_secret=a0336d72e3d540fb9fbbed2c123a81e1cb329dab

ansible/roles/container_kill_start/tasks/main.yml

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,61 @@
11
---
2-
- name: look for stopped containers
3-
shell: sudo docker ps -a | grep Exited | awk '{print $1}'
2+
- name: "look for stopped {{ container_image }} containers"
3+
shell: >
4+
sudo docker ps -a |
5+
grep Exited |
6+
grep {{ container_image }} |
7+
awk '{print $1}'
48
register: stopped_containers
59
changed_when: stopped_containers.stdout != ''
610

7-
- name: removed stopped containers
11+
- name: "removed stopped {{ container_image }} containers"
812
when: stopped_containers.changed
9-
shell: sudo docker rm {{item}}
13+
shell: sudo docker rm {{ item }}
1014
with_items: stopped_containers.stdout_lines
1115

1216
# get current running container with this image
13-
- name: look for running containers running {{container_image}}
14-
shell: "sudo docker ps | grep {{container_image}}: | awk '{print $1}'"
17+
- name: "look for running containers running {{ container_image }}"
18+
shell: "sudo docker ps | grep {{ container_image }}: | awk '{print $1}'"
1519
register: old_containers_id
1620
changed_when: old_containers_id.stdout != ''
1721

1822
# get latest image
1923
# tag will default to latest
20-
- name: pull down docker image {{container_image}}:{{container_tag}}
21-
command: sudo docker pull {{container_image}}:{{container_tag}}
24+
- name: "pull down docker image {{ container_image }}:{{ container_tag }}"
25+
command: sudo docker pull {{ container_image }}:{{ container_tag }}
2226
when: not do_not_push
2327

2428
# get id of new image
2529
- name: get id of the docker image
26-
shell: sudo docker images --no-trunc | grep {{container_image}}.*{{container_tag}} | awk '{print $3}'
30+
shell: >
31+
sudo docker images
32+
--no-trunc |
33+
grep {{ container_image }}.*{{ container_tag }} |
34+
awk '{print $3}'
2735
register: new_image_id
2836

2937
# stop the old containers that were running this previously
3038
- name: stop old containers
3139
when: old_containers_id.changed
32-
command: sudo docker stop -t {{stop_time}} {{item}}
40+
command: sudo docker stop -t {{ stop_time }} {{ item }}
3341
with_items: old_containers_id.stdout_lines
3442

3543
# remove the old containers that were running previously
3644
- name: remove old containers
3745
when: old_containers_id.changed
38-
command: sudo docker rm {{item}}
46+
command: sudo docker rm {{ item }}
3947
with_items: old_containers_id.stdout_lines
4048

4149
# start our new container with options and args
4250
- name: start container
43-
command: sudo docker run --log-driver={{ log_driver | default("none")}} -v /var/log:/var/log:rw --restart=always {{container_run_opts}} {{container_image}}:{{container_tag}} {{container_run_args}}
51+
command: >
52+
sudo docker run
53+
--log-driver={{ log_driver | default("none")}}
54+
-v /var/log:/var/log:rw
55+
--restart={{ restart_policy | default('always') }}
56+
{{ container_run_opts}}
57+
{{ container_image }}:{{ container_tag }}
58+
{{ container_run_args }}
4459
register: new_container_id
4560
notify:
4661
- get new container ports
Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:4242"
2-
DOCKER_OPTS="$DOCKER_OPTS --tlsverify --tlscacert=/etc/ssl/docker/ca.pem"
3-
DOCKER_OPTS="$DOCKER_OPTS --tlscert=/etc/ssl/docker/cert.pem --tlskey=/etc/ssl/docker/key.pem"
1+
DOCKER_OPTS="-H=unix:///var/run/docker.sock -H=0.0.0.0:{{ docker_port }}"
2+
DOCKER_OPTS="$DOCKER_OPTS --tlsverify --tlscacert={{ docker_ca_path }}"
3+
DOCKER_OPTS="$DOCKER_OPTS --tlscert={{ docker_cert_path }} --tlskey={{ docker_key_path }}"
44
DOCKER_OPTS="$DOCKER_OPTS -g /docker --insecure-registry registry.runnable.com --icc=false"
5-
DOCKER_OPTS="$DOCKER_OPTS --dns={{ charon_host | default(hostvars[groups['charon'][0]]['ansible_default_ipv4']['address'])}} --dns=8.8.8.8"
5+
DOCKER_OPTS="$DOCKER_OPTS --bip 172.17.42.1/16"
6+
DOCKER_OPTS="$DOCKER_OPTS --dns=172.17.42.1 --dns=8.8.8.8"

0 commit comments

Comments
 (0)