Skip to content

Instantly share code, notes, and snippets.

@billmetangmo
Last active May 30, 2018 13:57
Show Gist options
  • Save billmetangmo/96607381a7e80901d7bf1998d31e8461 to your computer and use it in GitHub Desktop.
Save billmetangmo/96607381a7e80901d7bf1998d31e8461 to your computer and use it in GitHub Desktop.
ansible playbook to set up a docker registry with xfs + proxies + limesurvey
---
- hosts: registry
become: true
vars:
public_ip: 10.197.138.130
tasks:
- name: set selinux to permissive
selinux:
policy: targeted
state: permissive
tags: selinux
- name: format /dev/vdb as a ext4 filesystem
filesystem:
fstype: xfs
dev: /dev/vdb
- name: mount /dev/vdb to /var/lib/data/
mount:
path: /var/lib/data
src: /dev/vdb
fstype: xfs
state: mounted
- name: Allo tag/push directly from registry
lineinfile:
dest: /etc/hosts
line: "{{public_ip}} registry"
state: present
### TODO: ensure folder exist role
- name: Ensure /var/lib/data/docker exists
file: "path=/var/lib/data/${{item}} state=directory "
with_items:
- registry
- docker
### TODO: docker-proxy-{version} role [BEGIN]
- name: install python-docker
yum: "name={{item}} state=latest"
with_items:
- python-docker-py
- name: Setting docker repo
yum_repository:
name: docker-repo
description: Docker Repository
baseurl: https://yum.dockerproject.org/repo/main/centos/7/
enabled: no
gpgcheck: no
- name: install docker & htppd
yum: name={{item}} state=latest enablerepo=docker-repo
with_items:
- docker-engine
- httpd
- name: enable docker & httpd
systemd: name={{item}} enabled=True state=started
with_items:
- docker
- httpd
- name: Create dir /etc/systemd/system/docker.service.d
file: "path={{item}} state=directory"
with_items:
- /etc/systemd/system/docker.service.d
- name: Create file /etc/systemd/system/docker.service.d/proxy.conf
file: "path=/etc/systemd/system/docker.service.d/proxy.conf state=touch"
tags: proxy
### issue open: https://github.com/docker/for-linux/issues/180
- name: set docker proxies
lineinfile:
dest: /etc/systemd/system/docker.service.d/proxy.conf
line: "{{ item }}"
state: present
with_items:
- "[Service]"
- 'Environment="HTTP_PROXY={{ansible_env.http_proxy}}" "HTTPS_PROXY={{ansible_env.https_proxy}}" "NO_PROXY=registry,{{ansible_env.no_proxy}}"'
tags: proxy
- name: persist docker data in /var/lib/data/docker instead of /var/lib/docker
lineinfile:
dest: /usr/lib/systemd/system/docker.service
line: "ExecStart=/usr/bin/dockerd --data-root=/var/lib/data/docker --insecure-registry registry:5000"
regexp: ExecStart=/usr/bin/dockerd
state: present
- name: start docker
systemd: name=docker daemon_reload=yes state=restarted
### TODO: docker-proxy-{version} role [END]
- name: start registry container
docker_container:
name: registry
image: registry:2
network_mode: host
restart_policy: always
volumes:
- "/var/lib/data/registry:/var/lib/registry"
env:
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: "/var/lib/registry"
REGISTRY_STORAGE_DELETE_ENABLED: true
- name: start limesurvey container
docker_container:
name: limesurvey
image: crramirez/limesurvey
network_mode: host
restart_policy: always
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment