Created
December 8, 2017 02:28
-
-
Save jpic/7bfbe20cf759986b7c7c7851c2d63762 to your computer and use it in GitHub Desktop.
Install docker-dns-gen on Ubuntu artful
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: all | |
become: true | |
become_method: sudo | |
become_user: root | |
handlers: | |
- name: Restart | |
notify: Restart dnsmasq | |
shell: systemctl daemon-reload | |
- name: Restart dnsmasq | |
notify: Restart docker | |
service: name=dnsmasq state=restarted | |
- name: Restart docker | |
service: name=docker state=restarted | |
tasks: | |
- name: Remove bind9 if present | |
failed_when: false | |
apt: | |
name: bind9 | |
state: absent | |
- name: Install dnsmasq | |
apt: | |
name: dnsmasq | |
state: present | |
- name: Run docker-dns | |
docker_container: | |
name: dns | |
image: jderusse/dns-gen | |
restart_policy: always | |
published_ports: ['54:53/udp'] | |
capabilities: [NET_BIND_SERVICE] | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock:ro | |
- name: /etc/systemd/system/docker.service.d/override.conf | |
copy: | |
dest: /etc/systemd/system/docker.service.d/override.conf | |
content: | | |
[Service] | |
ExecStart= | |
ExecStart=/usr/bin/dockerd -H fd:// --bip=172.17.0.1/16 --dns=172.17.0.1 | |
- name: /etc/systemd/system/dnsmasq.service.d/override.conf | |
notify: Restart | |
copy: | |
dest: /etc/systemd/system/dnsmasq.service.d/override.conf | |
content: | | |
[Unit] | |
After=docker.service | |
- name: /etc/dnsmasq.d/upstream.conf | |
notify: Restart | |
copy: | |
dest: /etc/dnsmasq.d/upstream.conf | |
content: server=8.8.8.8 | |
- name: /etc/dnsmasq.d/docker.conf | |
notify: Restart | |
copy: | |
dest: /etc/dnsmasq.d/docker.conf | |
content: | | |
bind-interfaces | |
interface=lo | |
interface=docker0 | |
server=/docker/127.0.0.1#54 | |
- name: /etc/dnsmasq.d/local.conf | |
when: dns_local_resolve is defined | |
notify: Restart | |
copy: | |
dest: /etc/dnsmasq.d/local.conf | |
content: | | |
{% for dns in dns_local_resolve.split(',') %} | |
server=/{{ dns }}/127.0.0.1#54 | |
{% endfor %} | |
- name: Configure /etc/resolv.conf | |
copy: | |
dest: /etc/resolv.conf | |
content: | | |
search docker | |
nameserver 127.0.0.1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@jpic I'm trying to do this setup by hand (I don't have Ansible, and it doesn't match the advanced setup in the README for docker-dns-gen). But I don't quite grok the code in "/etc/dnsmasq.d/local.conf" - which subsystem is supposed to handle the for loop there? Is it Ansible syntax? I can't find any documentation on
dns_local_resolve.split()
.