summaryrefslogtreecommitdiffstats
path: root/docker/ansible/roles/install_docker
diff options
context:
space:
mode:
authorKamil Wiatrowski <kamilx.wiatrowski@intel.com>2018-06-07 05:13:01 +0100
committerKamil Wiatrowski <kamilx.wiatrowski@intel.com>2018-09-28 16:47:42 +0200
commit24c5124e304b8e2854d98284f6ee4715a75ee735 (patch)
tree420ff7e0158e3a8c68d3e2710469fbcb9c06c853 /docker/ansible/roles/install_docker
parentb52c942a4fbfc5023780d23954de953b817c6dc0 (diff)
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 <kamilx.wiatrowski@intel.com>
Diffstat (limited to 'docker/ansible/roles/install_docker')
-rw-r--r--docker/ansible/roles/install_docker/tasks/centos.yml45
-rw-r--r--docker/ansible/roles/install_docker/tasks/main.yml31
-rw-r--r--docker/ansible/roles/install_docker/tasks/proxy.yml55
-rw-r--r--docker/ansible/roles/install_docker/tasks/ubuntu.yml47
-rw-r--r--docker/ansible/roles/install_docker/vars/main.yml18
5 files changed, 196 insertions, 0 deletions
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"
+