Browse Source

backport the docker role from github.com/nmasse-itix/OpenShift-Lab

master
Nicolas Massé 8 years ago
parent
commit
60664ccc3b
  1. 2
      roles/docker/defaults/main.yml
  2. 28
      roles/docker/tasks/main.yml
  3. 29
      roles/docker/templates/docker-storage-setup

2
roles/docker/defaults/main.yml

@ -0,0 +1,2 @@
---
docker_storage_driver: overlay2

28
roles/docker/tasks/main.yml

@ -1,12 +1,13 @@
--- ---
- name: Check for mandatory variables required by this playbook - name: Make sure the extra repos is enabled
fail: command: subscription-manager repos --enable rhel-7-server-extras-rpms
msg: "This playbook requires {{item}} to be set." when: "ansible_os_family == 'RedHat' and not is_offline|default(False)|bool"
when: "item is not defined or item == ''" tags: rpm
with_items:
- docker_storage_vg - name: Install a missing dependency of Docker
tags: docker-storage yum: name=python-setuptools state=installed
tags: rpm
- name: Install Docker - name: Install Docker
yum: name=docker state=installed yum: name=docker state=installed
@ -15,24 +16,17 @@
- name: Start docker - name: Start docker
service: name=docker state=started service: name=docker state=started
tags: docker-storage tags: docker-storage
when: 'docker_storage_setup_needs_to_run is not defined'
- name: Determine if docker storage driver == devicemapper - name: Determine if the docker storage driver is the correct one
shell: docker info shell: docker info
register: docker_info register: docker_info
changed_when: false changed_when: false
when: 'docker_storage_setup_needs_to_run is not defined'
- name: set docker_storage_setup_needs_to_run - name: set docker_storage_setup_needs_to_run
set_fact: set_fact:
docker_storage_setup_needs_to_run: '{{ docker_info.stdout.find(''Storage Driver: devicemapper'') == -1 or docker_info.stdout.find(''Data file: /dev/loop'') != -1 }}' docker_storage_setup_needs_to_run: '{{ docker_info.stdout.find(''Storage Driver: '' ~ docker_storage_driver) == -1 or docker_info.stdout.find(''Data file: /dev/loop'') != -1 }}'
when: 'docker_storage_setup_needs_to_run is not defined'
tags: docker-storage tags: docker-storage
- name: Cleanup the existing docker-storage state
file: state=absent path=/etc/sysconfig/docker-storage
when: docker_storage_setup_needs_to_run
- name: stop docker - name: stop docker
service: service:
name: docker name: docker
@ -45,7 +39,7 @@
when: docker_storage_setup_needs_to_run when: docker_storage_setup_needs_to_run
tags: docker-storage tags: docker-storage
- name: Configure docker-storage-setup to use LVM - name: Configure docker-storage-setup to use the correct storage driver
template: dest=/etc/sysconfig/docker-storage-setup src=docker-storage-setup template: dest=/etc/sysconfig/docker-storage-setup src=docker-storage-setup
register: docker-storage-setup register: docker-storage-setup
when: docker_storage_setup_needs_to_run when: docker_storage_setup_needs_to_run

29
roles/docker/templates/docker-storage-setup

@ -1,27 +1,10 @@
STORAGE_DRIVER=devicemapper STORAGE_DRIVER={{ docker_storage_driver }}
{% if docker_storage_driver == 'devicemapper' %}
DOCKER_ROOT_VOLUME=yes DOCKER_ROOT_VOLUME=yes
{% if docker_storage_disk is defined %}
DEVS={{ docker_storage_disk }}
{% endif %}
{% if docker_storage_vg is defined %} {% if docker_storage_vg is defined %}
VG={{ docker_storage_vg }} VG={{ docker_storage_vg }}
{% endif %} {% endif %}
{% endif %}
# Enable automatic extension of pool by lvm. lvm can monitor
# the pool and automatically extend it when pool is getting full.
AUTO_EXTEND_POOL=true
# Determines the pool extension threshold in terms of percentage
# of pool size. For example, if threshold is 60, that means when
# pool is 60% full, threshold has been hit.
POOL_AUTOEXTEND_THRESHOLD=80
# Determines the amount by which pool needs to be grown. This is
# specified in terms of % of pool size. So a value of 20 means
# that when threshold is hit, pool will be grown by 20% of existing
# pool size.
POOL_AUTOEXTEND_PERCENT=20
# Create a Logical Volume of 20G for /var/lib/docker
DOCKER_ROOT_VOLUME_SIZE=20G
# Create a Thinpool Logical Volume of 50G for Container Storage
DATA_SIZE=50G

Loading…
Cancel
Save