blob: dc0452553d07582680c6f23b4eccea88729430e1 (
plain)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
---
# If docker_options are provided we should fail. We should not install docker and ignore
# the users configuration. NOTE: docker_options == inventory:openshift_docker_options
- name: Fail quickly if openshift_docker_options are set
assert:
that:
- "{% if not openshift_docker_options %}1{% else %}0{% endif %}"
msg: |
Docker via System Container does not allow for the use of the openshift_docker_options
variable. If you want to use openshift_docker_options you will need to use the
traditional docker package install. Otherwise, comment out openshift_docker_options
in your inventory file.
- include_tasks: common/pre.yml
- include_tasks: common/syscontainer_packages.yml
# Make sure Docker is installed so we are able to use the client
- name: Install Docker so we can use the client
package: name=docker{{ '-' + docker_version if docker_version is defined else '' }} state=present
when: not openshift_is_atomic | bool
register: result
until: result is succeeded
# Make sure docker is disabled. Errors are ignored.
- name: Disable Docker
systemd:
name: docker
enabled: no
state: stopped
daemon_reload: yes
ignore_errors: True
register: r_docker_systemcontainer_docker_stop_result
until: not (r_docker_systemcontainer_docker_stop_result is failed)
retries: 3
delay: 30
- name: Ensure proxies are in the atomic.conf
include_tasks: common/atomic_proxy.yml
# Be nice and let the user see the variable result
- debug:
var: l_docker_image
# NOTE: no_proxy added as a workaround until https://github.com/projectatomic/atomic/pull/999 is released
- name: Pre-pull Container Engine System Container image
command: "atomic pull --storage ostree {{ l_docker_image }}"
changed_when: false
environment:
NO_PROXY: "{{ docker_no_proxy }}"
- name: Ensure container-engine.service.d directory exists
file:
path: "{{ container_engine_systemd_dir }}"
state: directory
- name: Ensure /etc/docker directory exists
file:
path: "{{ docker_conf_dir }}"
state: directory
- name: Install Container Engine System Container
oc_atomic_container:
name: "{{ openshift_docker_service_name }}"
image: "{{ l_docker_image }}"
state: latest
- name: Configure Container Engine Service File
template:
dest: "{{ container_engine_systemd_dir }}/custom.conf"
src: systemcontainercustom.conf.j2
# Configure container-engine using the container-daemon.json file
# NOTE: daemon.json and container-daemon.json have been seperated to avoid
# collision.
- name: Configure Container Engine
template:
dest: "{{ docker_conf_dir }}/container-daemon.json"
src: daemon.json
# Enable and start the container-engine service
- name: Start the Container Engine service
systemd:
name: "{{ openshift_docker_service_name }}"
enabled: yes
state: started
daemon_reload: yes
register: r_docker_systemcontainer_docker_start_result
until: not (r_docker_systemcontainer_docker_start_result is failed)
retries: 3
delay: 30
- set_fact:
docker_service_status_changed: "{{ r_docker_systemcontainer_docker_start_result is changed }}"
# Since docker is running as a system container, docker login will fail to create
# credentials. Use alternate method if requiring authenticated registries.
- include_tasks: common/post.yml
vars:
openshift_docker_alternative_creds: True
|