summaryrefslogtreecommitdiff
path: root/roles/common
diff options
context:
space:
mode:
authorThedro Neely <thedroneely@gmail.com>2020-03-23 16:42:44 -0400
committerThedro Neely <thedroneely@gmail.com>2020-03-23 16:42:44 -0400
commit1db40cdf9cb25b446ffd15dfd1e3e6f178ae2257 (patch)
treead9c096f756250feddc9d65e9a8b95234f13195c /roles/common
parent93c8aa558ed74a6e2f274114386268c35b100824 (diff)
downloadplaybooks-1db40cdf9cb25b446ffd15dfd1e3e6f178ae2257.tar.gz
playbooks-1db40cdf9cb25b446ffd15dfd1e3e6f178ae2257.tar.bz2
playbooks-1db40cdf9cb25b446ffd15dfd1e3e6f178ae2257.zip
tasks/docker: Move alpine bootstrap to common tasks
Diffstat (limited to 'roles/common')
-rw-r--r--roles/common/files/1-cgroup-docker.start20
-rw-r--r--roles/common/tasks/docker/alpine.yml31
2 files changed, 51 insertions, 0 deletions
diff --git a/roles/common/files/1-cgroup-docker.start b/roles/common/files/1-cgroup-docker.start
new file mode 100644
index 0000000..15c2172
--- /dev/null
+++ b/roles/common/files/1-cgroup-docker.start
@@ -0,0 +1,20 @@
+# https://forum.proxmox.com/threads/docker-daemon-running-in-alpine-container-solved.58999/
+
+# remove dirs for failed mounts
+rmdir /sys/fs/cgroup/cpu && rmdir /sys/fs/cgroup/cpuacct && rmdir /sys/fs/cgroup/net_cls && rmdir /sys/fs/cgroup/net_prio
+
+# mount missing cgroups (Ubuntu style)
+mkdir "/sys/fs/cgroup/cpu,cpuacct"
+mount -n -t cgroup -o "nodev,noexec,nosuid,cpu,cpuacct" "cpu,cpuacct" "/sys/fs/cgroup/cpu,cpuacct"
+ln -s "cpu,cpuacct" /sys/fs/cgroup/cpu
+ln -s "cpu,cpuacct" /sys/fs/cgroup/cpuacct
+
+mkdir "/sys/fs/cgroup/net_cls,net_prio"
+mount -n -t cgroup -o "nodev,noexec,nosuid,net_cls,net_prio" "net_cls,net_prio" "/sys/fs/cgroup/net_cls,net_prio"
+ln -s "net_cls,net_prio" /sys/fs/cgroup/net_cls
+ln -s "net_cls,net_prio" /sys/fs/cgroup/net_prio
+
+# mount systemd cgroup (Alpine mounts openrc, but Docker requires systemd...)
+# (based on hint at https://k9s.hatenablog.jp/entry/2019/06/16/075741)
+mkdir /sys/fs/cgroup/systemd
+mount -n -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
diff --git a/roles/common/tasks/docker/alpine.yml b/roles/common/tasks/docker/alpine.yml
new file mode 100644
index 0000000..ce759a4
--- /dev/null
+++ b/roles/common/tasks/docker/alpine.yml
@@ -0,0 +1,31 @@
+---
+- name: Installing Docker
+ apk:
+ state: present
+ update_cache: yes
+ name:
+ - docker
+ - docker-py
+
+- name: Ensuring Docker has been started
+ service:
+ name: docker
+ state: started
+ enabled: yes
+
+- name: Copying cgroups mount script to local.d
+ copy:
+ src: ../../../common/files/1-cgroup-docker.start
+ dest: /etc/local.d/1-cgroup-docker.start
+ mode: '0700'
+
+- name: Ensuring local service has been started
+ service:
+ name: local
+ state: started
+ enabled: yes
+
+- name: Running hello-world test
+ docker_container:
+ name: hello-world
+ image: hello-world