From 24c5124e304b8e2854d98284f6ee4715a75ee735 Mon Sep 17 00:00:00 2001 From: Kamil Wiatrowski Date: Thu, 7 Jun 2018 05:13:01 +0100 Subject: WIP: Add role to auto install docker on hosts Auto install docker with dependencies on hosts: apt install python apt install python-pip pip install docker-py apt install docker.io Set docker proxy using host proxy settings. Updated documentation. Change-Id: Ibec7e0a7e484d5a9a8656cd3598c3acc7c2e2184 Signed-off-by: Kamil Wiatrowski --- .../ansible/roles/install_docker/tasks/centos.yml | 45 ++++++++++++++++++ docker/ansible/roles/install_docker/tasks/main.yml | 31 ++++++++++++ .../ansible/roles/install_docker/tasks/proxy.yml | 55 ++++++++++++++++++++++ .../ansible/roles/install_docker/tasks/ubuntu.yml | 47 ++++++++++++++++++ docker/ansible/roles/install_docker/vars/main.yml | 18 +++++++ 5 files changed, 196 insertions(+) create mode 100644 docker/ansible/roles/install_docker/tasks/centos.yml create mode 100644 docker/ansible/roles/install_docker/tasks/main.yml create mode 100644 docker/ansible/roles/install_docker/tasks/proxy.yml create mode 100644 docker/ansible/roles/install_docker/tasks/ubuntu.yml create mode 100644 docker/ansible/roles/install_docker/vars/main.yml (limited to 'docker/ansible/roles/install_docker') diff --git a/docker/ansible/roles/install_docker/tasks/centos.yml b/docker/ansible/roles/install_docker/tasks/centos.yml new file mode 100644 index 00000000..b84d98f2 --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/centos.yml @@ -0,0 +1,45 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: install dependencies for docker + package: + name: "{{ packages }}" + state: present + vars: + packages: + - python + - yum-utils + - device-mapper-persistent-data + - lvm2 + +- name: set up docker repository + command: "yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo" + +- name: install docker-py + package: + name: python-docker-py + state: present + +- name: install docker + package: + name: docker-ce + state: present + +- name: start docker daemon + systemd: + name: docker + daemon_reload: true + state: started + enabled: true diff --git a/docker/ansible/roles/install_docker/tasks/main.yml b/docker/ansible/roles/install_docker/tasks/main.yml new file mode 100644 index 00000000..7e015bbc --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/main.yml @@ -0,0 +1,31 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: proxy configuration for docker + tags: + - install_docker + import_tasks: proxy.yml + +- name: install docker for ubuntu + tags: + - install_docker + import_tasks: ubuntu.yml + when: ansible_distribution == "Ubuntu" + +- name: install docker for centos + tags: + - install_docker + import_tasks: centos.yml + when: ansible_distribution == "CentOS" diff --git a/docker/ansible/roles/install_docker/tasks/proxy.yml b/docker/ansible/roles/install_docker/tasks/proxy.yml new file mode 100644 index 00000000..397bed4c --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/proxy.yml @@ -0,0 +1,55 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: create docker proxy configuration file + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "[Service]" + create: yes + +- name: add docker http_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"HTTP_PROXY={{ ansible_env.http_proxy }}\"" + when: ansible_env.http_proxy is defined + +- name: add docker https_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"HTTPS_PROXY={{ ansible_env.https_proxy }}\"" + when: ansible_env.https_proxy is defined + +- name: add docker ftp_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"FTP_PROXY={{ ansible_env.ftp_proxy }}\"" + when: ansible_env.ftp_proxy is defined + +- name: add docker no_proxy + tags: + - add_docker_proxy + lineinfile: + path: "{{ docker_proxy_conf }}" + line: "Environment=\"NO_PROXY={{ ansible_env.no_proxy }}\"" + when: ansible_env.no_proxy is defined + diff --git a/docker/ansible/roles/install_docker/tasks/ubuntu.yml b/docker/ansible/roles/install_docker/tasks/ubuntu.yml new file mode 100644 index 00000000..44156873 --- /dev/null +++ b/docker/ansible/roles/install_docker/tasks/ubuntu.yml @@ -0,0 +1,47 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +- name: update package manager cache + tags: + - cache_update + package: + update_cache: yes + +- name: install python + package: + name: python + state: present + +- name: install python-pip + package: + name: python-pip + state: present + +- name: install docker-py + pip: + name: docker-py + state: present + +- name: install docker + package: + name: docker.io + state: present + +- name: start docker daemon + systemd: + name: docker + daemon_reload: true + state: started + enabled: true diff --git a/docker/ansible/roles/install_docker/vars/main.yml b/docker/ansible/roles/install_docker/vars/main.yml new file mode 100644 index 00000000..0673a63a --- /dev/null +++ b/docker/ansible/roles/install_docker/vars/main.yml @@ -0,0 +1,18 @@ +#Copyright 2018 OPNFV and Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +--- + +#docker proxy configuration file +docker_proxy_conf: "/etc/systemd/system/docker.service.d/proxy.conf" + -- cgit 1.2.3-korg