From 3886918c1fac35fac976c2f0c10d365edb20d835 Mon Sep 17 00:00:00 2001 From: "Tone.Zhang" <tone.zhang@arm.com> Date: Fri, 24 Nov 2017 13:43:34 +0800 Subject: [PATCH] Change the docker daemon name in Debian 9 on Arm Enable docker-ce on AArch64 platform in Debian. Set the docker daemon name according to the existing of "dockerd" binary. Closes-Bug: #1734255 Co-authored-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> Change-Id: Ie0b3bac72b408dccf3fb99912b4fe2d4788705e5 Signed-off-by: Tone.Zhang <tone.zhang@arm.com> --- ansible/roles/baremetal/defaults/main.yml | 7 ++++--- ansible/roles/baremetal/tasks/post-install.yml | 10 ++++++++++ ansible/roles/baremetal/tasks/pre-install.yml | 8 +++----- ansible/roles/baremetal/templates/docker_apt_repo.j2 | 4 ++++ .../baremetal/templates/docker_systemd_service.j2 | 2 +- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/ansible/roles/baremetal/defaults/main.yml b/ansible/roles/baremetal/defaults/main.yml index 31302814ec..62584c8b20 100644 --- a/ansible/roles/baremetal/defaults/main.yml +++ b/ansible/roles/baremetal/defaults/main.yml @@ -1,6 +1,7 @@ --- -docker_apt_url: "https://apt.dockerproject.org" -docker_apt_key_id: F76221572C52609D +docker_apt_url: "{{ 'http://obs.linaro.org/ERP:/17.12/Debian_9' if ansible_architecture == 'aarch64' else 'https://apt.dockerproject.org' }}" +docker_apt_key_file: "{{ 'Release.key' if ansible_architecture == 'aarch64' else 'gpg' }}" +docker_apt_key_id: "{{ 'C32DA102AD89C2BE' if ansible_architecture == 'aarch64' else 'F76221572C52609D' }}" docker_yum_url: "https://yum.dockerproject.org" docker_gpg_fingerprint: "58118E89F3A912897C070ADBF76221572C52609D" @@ -16,7 +17,7 @@ disable_selinux: True docker_storage_driver: "" debian_pkg_install: - - docker-engine=1.12.* + - "{{ 'docker-ce' if ansible_architecture == 'aarch64' else 'docker-engine=1.12.*' }}" - git - python-setuptools - ntp diff --git a/ansible/roles/baremetal/tasks/post-install.yml b/ansible/roles/baremetal/tasks/post-install.yml index 9e11d782d7..63b8a3a8fa 100644 --- a/ansible/roles/baremetal/tasks/post-install.yml +++ b/ansible/roles/baremetal/tasks/post-install.yml @@ -6,6 +6,16 @@ recurse: yes become: True +- name: Check dockerd exists + stat: path=/usr/bin/dockerd + register: dockerd_exists + +- name: Setting docker daemon name + set_fact: + docker_binary_name: "dockerd" + when: + dockerd_exists.stat.exists == True + - name: Configure docker service become: True template: diff --git a/ansible/roles/baremetal/tasks/pre-install.yml b/ansible/roles/baremetal/tasks/pre-install.yml index 1465612ce9..87be47ed2d 100644 --- a/ansible/roles/baremetal/tasks/pre-install.yml +++ b/ansible/roles/baremetal/tasks/pre-install.yml @@ -77,7 +77,7 @@ become: True when: ansible_os_family == 'Debian' -- name: Install ubuntu ca certs +- name: Install ca certs package: name: "{{ item }}" state: latest @@ -105,13 +105,11 @@ - name: Install docker apt gpg key apt_key: - url: "{{ docker_apt_url }}/gpg" + url: "{{ docker_apt_url }}/{{ docker_apt_key_file }}" id: "{{ docker_apt_key_id }}" state: present become: True - when: - - ansible_os_family == 'Debian' - - ansible_distribution == 'Ubuntu' + when: ansible_os_family == 'Debian' - name: Ensure yum repos directory exists file: diff --git a/ansible/roles/baremetal/templates/docker_apt_repo.j2 b/ansible/roles/baremetal/templates/docker_apt_repo.j2 index 16ea8fc1d7..326f1824f8 100644 --- a/ansible/roles/baremetal/templates/docker_apt_repo.j2 +++ b/ansible/roles/baremetal/templates/docker_apt_repo.j2 @@ -1,2 +1,6 @@ +{% if ansible_architecture == 'aarch64' %} +deb {{ docker_apt_url }} ./ +{% else %} # main docker repo deb {{ docker_apt_url }}/repo {{ ansible_distribution | lower }}-{{ ansible_distribution_release | lower }} main +{% endif %} diff --git a/ansible/roles/baremetal/templates/docker_systemd_service.j2 b/ansible/roles/baremetal/templates/docker_systemd_service.j2 index 1f84a0091b..b3c7644817 100644 --- a/ansible/roles/baremetal/templates/docker_systemd_service.j2 +++ b/ansible/roles/baremetal/templates/docker_systemd_service.j2 @@ -1,4 +1,4 @@ [Service] MountFlags=shared ExecStart= -ExecStart=/usr/bin/docker daemon{% if docker_registry %} --insecure-registry {{ docker_registry }}{% endif %}{% if docker_storage_driver %} --storage-driver {{ docker_storage_driver }}{% endif %} +ExecStart=/usr/bin/{{ docker_binary_name|default("docker daemon", true) }}{% if docker_registry %} --insecure-registry {{ docker_registry }}{% endif %}{% if docker_storage_driver %} --storage-driver {{ docker_storage_driver }}{% endif %}