Merge branch 'docker-lvm' into 'master'

Docker lvm

See merge request fablab/labsync!20
This commit is contained in:
Simon Bruder 2018-05-19 13:30:45 +00:00
commit 7d9d9a27fc
4 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,2 @@
[Service]
ExecStartPre=/usr/local/sbin/docker-setup.sh

View file

@ -0,0 +1,49 @@
#!/bin/sh
vg='vglab'
if ! lvs -o layout --noheadings $vg/docker-thinpool | grep -q 'thin,pool'; then
if ! lvs -o LV_NAME --noheadings | grep -q docker-thinpool; then
lvcreate --wipesignatures y -n docker-thinpool "$vg" -l 10%VG
fi
if ! lvs -o LV_NAME --noheadings | grep -q docker-thinpoolmeta; then
lvcreate --wipesignatures y -n docker-thinpoolmeta "$vg" -l 1%VG
fi
lvconvert -y \
--zero n \
-c 512K \
--thinpool "$vg/docker-thinpool" \
--poolmetadata "$vg/docker-thinpoolmeta"
fi
if ! [ -f /etc/lvm/profile/docker-thinpool.profile ]; then
[ -d /etc/lvm/profile ] || mkdir /etc/lvm/profile
cat > /etc/lvm/profile/docker-thinpool.profile << EOF
activation {
thin_pool_autoextend_threshold=80
thin_pool_autoextend_percent=20
}
EOF
lvchange --metadataprofile docker-thinpool "$vg/docker-thinpool"
lvs -o+seg_monitor
fi
lv_path="${vg}-docker--thinpool"
if ! [ -d /etc/docker ]; then
mkdir /etc/docker
fi
cat > /etc/docker/daemon.json << EOF
{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.thinpooldev=$lv_path",
"dm.use_deferred_removal=true",
"dm.use_deferred_deletion=true"
]
}
EOF

View file

@ -0,0 +1,29 @@
---
- name: install tools for lvm thin pools
package:
name: thin-provisioning-tools
- name: copy docker-setup script
copy:
src: docker-setup.sh
dest: /usr/local/sbin/docker-setup.sh
owner: root
group: root
mode: "0744"
- name: create override directory for docker service unit
file:
path: /etc/systemd/system/docker.service.d
state: directory
mode: "0755"
owner: root
group: root
- name: copy systemd unit override for docker service
copy:
src: docker-override.conf
dest: /etc/systemd/system/docker.service.d/override.conf
owner: root
group: root
mode: "0644"

View file

@ -2,3 +2,7 @@
- import_tasks: packages.yml
tags:
- docker:packages
- import_tasks: lvm-setup-service.yml
tags:
- docker:lvm-setup-service