Skip to content

Commit 34fb2c8

Browse files
committed
baremetal: Don't start Docker after install on Debian/Ubuntu
docker-ce on Debian/Ubuntu gets started just after installation, before baremetal role configures daemon.json - which results in iptables rules being implemented - but not removed on docker engine restart. Closes-Bug: #1923203 Change-Id: Ib1faa092e0b8f0668d1752490a34d0c2165d58d2 (cherry picked from commit bc96179)
1 parent 999955d commit 34fb2c8

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

ansible/roles/baremetal/tasks/install.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,26 @@
4646
changed_when: false
4747
register: running_containers
4848

49+
# APT starts Docker engine right after installation, which creates
50+
# iptables rules before we disable iptables in Docker config
51+
52+
- name: Check if docker systemd unit exists
53+
stat:
54+
path: /etc/systemd/system/docker.service
55+
register: docker_unit_file
56+
57+
- name: Mask the docker systemd unit on Debian/Ubuntu
58+
file:
59+
src: /dev/null
60+
dest: /etc/systemd/system/docker.service
61+
owner: root
62+
group: root
63+
state: link
64+
become: true
65+
when:
66+
- ansible_os_family == 'Debian'
67+
- not docker_unit_file.stat.exists
68+
4969
- name: Install apt packages
5070
package:
5171
name: "{{ (debian_pkg_install | join(' ')).split() }}"
@@ -78,10 +98,11 @@
7898
# At some point (at least on CentOS 7) Docker CE stopped starting
7999
# automatically after an upgrade from legacy docker . Start it manually.
80100
- name: Start docker
81-
service:
101+
systemd:
82102
name: docker
83103
state: started
84104
enabled: yes
105+
masked: no
85106
become: True
86107

87108
- name: Wait for Docker to start

ansible/roles/baremetal/tasks/post-install.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,22 +194,25 @@
194194
when: create_kolla_user | bool
195195

196196
- name: Start docker
197-
service:
197+
systemd:
198198
name: docker
199199
state: started
200+
masked: no
200201
become: True
201202

202203
- name: Restart docker
203-
service:
204+
systemd:
204205
name: docker
205206
state: restarted
207+
masked: no
206208
become: True
207209
when: docker_configured.changed or docker_reloaded.changed
208210

209211
- name: Enable docker
210-
service:
212+
systemd:
211213
name: docker
212214
enabled: yes
215+
masked: no
213216
become: True
214217

215218
- name: Stop time service
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
fixes:
3+
- |
4+
Fixed an issue when Docker was configured after startup on Debian/Ubuntu,
5+
which resulted in iptables rules being created - before they were disabled.
6+
`LP#1923203 <https://launchpad.net/bugs/1923203>`__

0 commit comments

Comments
 (0)