Skip to content

Commit

Permalink
Updated ansible playbook
Browse files Browse the repository at this point in the history
  • Loading branch information
Peter Schiffer committed Aug 21, 2017
1 parent 9f888d5 commit dda9e57
Showing 1 changed file with 173 additions and 116 deletions.
289 changes: 173 additions & 116 deletions ansible-playbook.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,127 +3,184 @@
vars:
pdns_master_ip: 172.5.0.20
pdns_slave_ip: 172.5.0.21
wipe: false
c_state: '{{ "absent" if wipe | bool else "started" }}'
i_state: present
tasks:
- name: create docker network
docker_network:
name: pdns-net
state: present
ipam_options:
subnet: '172.5.0.0/16'
gateway: '172.5.0.1'

# for now, you need to manually create the docker network:
# docker network create --subnet 172.5.0.0/16 --gateway 172.5.0.1 pdns-net
- name: db
docker_container:
name: pdns-mariadb
image: mariadb:10.2
pull: true
state: '{{ c_state }}'
purge_networks: true
networks:
- name: pdns-net
aliases:
- db
- mysql
volumes:
- /etc/localtime:/etc/localtime:ro
- pdns-mariadb-volume:/var/lib/mysql:z
env:
MYSQL_ROOT_PASSWORD: my-secret-pw
tags:
- db

tasks:
- name: db
docker_container:
name: pdns-mariadb
image: mariadb:10.1
pull: true
state: "{{ c_state | default('started') }}"
volumes:
- pdns-mariadb-volume:/var/lib/mysql:z
env:
MYSQL_ROOT_PASSWORD: my-secret-pw
networks:
- name: pdns-net
tags:
- db
- name: phpmyadmin
docker_container:
name: pdns-phpmyadmin
image: phpmyadmin/phpmyadmin:4.7
pull: true
state: '{{ c_state }}'
purge_networks: true
networks:
- name: pdns-net
published_ports:
- '8888:80'
volumes:
- /etc/localtime:/etc/localtime:ro
tags:
- db

- name: phpmyadmin
docker_container:
name: pdns-phpmyadmin
image: phpmyadmin/phpmyadmin
pull: true
state: "{{ c_state | default('started') }}"
published_ports:
- '8888:80'
networks:
- name: pdns-net
tags:
- db
- name: build pdns
docker_image:
name: my-pdns
state: '{{ i_state }}'
force: true
path: ./pdns
tags:
- pdns

- name: build pdns
docker_image:
name: my-pdns
state: "{{ i_state | default('present') }}"
force: true
path: ./pdns
tags:
- pdns
- name: pdns master
docker_container:
name: pdns
image: my-pdns
state: '{{ c_state }}'
hostname: ns1.example.com
purge_networks: true
networks:
- name: pdns-net
ipv4_address: '{{ pdns_master_ip }}'
etc_hosts:
ns1.example.com: '{{ pdns_master_ip }}'
ns2.example.com: '{{ pdns_slave_ip }}'
volumes:
- /etc/localtime:/etc/localtime:ro
env:
PDNS_gmysql_password: my-secret-pw
PDNS_master: yes
PDNS_api: yes
PDNS_api_key: secret
PDNS_webserver: yes
PDNS_webserver_address: 0.0.0.0
PDNS_version_string: anonymous
PDNS_default_ttl: 1500
PDNS_soa_minimum_ttl: 1200
PDNS_default_soa_name: ns1.example.com
PDNS_default_soa_mail: hostmaster.example.com
PDNS_allow_axfr_ips: '{{ pdns_slave_ip }}'
PDNS_only_notify: '{{ pdns_slave_ip }}'
tags:
- pdns

- name: pdns master
docker_container:
name: pdns
image: my-pdns
state: "{{ c_state | default('started') }}"
hostname: ns1.example.com
networks:
- name: pdns-net
ipv4_address: '{{ pdns_master_ip }}'
etc_hosts:
ns1.example.com: '{{ pdns_master_ip }}'
ns2.example.com: '{{ pdns_slave_ip }}'
links:
- pdns-mariadb:mysql
env:
PDNS_master: yes
PDNS_api: yes
PDNS_api_key: secret
PDNS_webserver: yes
PDNS_webserver_address: 0.0.0.0
PDNS_version_string: anonymous
PDNS_default_ttl: 1500
PDNS_soa_minimum_ttl: 1200
PDNS_default_soa_name: ns1.example.com
PDNS_default_soa_mail: hostmaster.example.com
PDNS_allow_axfr_ips: '{{ pdns_slave_ip }}'
PDNS_only_notify: '{{ pdns_slave_ip }}'
tags:
- pdns
- name: pdns slave
docker_container:
name: pdns-slave
image: my-pdns
state: '{{ c_state }}'
hostname: ns2.example.com
purge_networks: true
networks:
- name: pdns-net
ipv4_address: '{{ pdns_slave_ip }}'
etc_hosts:
ns1.example.com: '{{ pdns_master_ip }}'
ns2.example.com: '{{ pdns_slave_ip }}'
volumes:
- /etc/localtime:/etc/localtime:ro
env:
PDNS_gmysql_dbname: powerdnsslave
PDNS_gmysql_password: my-secret-pw
PDNS_slave: yes
PDNS_webserver: yes
PDNS_webserver_address: 0.0.0.0
PDNS_version_string: anonymous
PDNS_disable_axfr: yes
PDNS_allow_notify_from: '{{ pdns_master_ip }}'
SUPERMASTER_IPS: '{{ pdns_master_ip }}'
tags:
- pdns

- name: pdns slave
docker_container:
name: pdns-slave
image: my-pdns
state: "{{ c_state | default('started') }}"
hostname: ns2.example.com
networks:
- name: pdns-net
ipv4_address: '{{ pdns_slave_ip }}'
etc_hosts:
ns1.example.com: '{{ pdns_master_ip }}'
ns2.example.com: '{{ pdns_slave_ip }}'
links:
- pdns-mariadb:mysql
env:
PDNS_gmysql_dbname: powerdnsslave
PDNS_slave: yes
PDNS_webserver: yes
PDNS_webserver_address: 0.0.0.0
PDNS_version_string: anonymous
PDNS_disable_axfr: yes
PDNS_allow_notify_from: '{{ pdns_master_ip }}'
SUPERMASTER_IPS: '{{ pdns_master_ip }}'
tags:
- pdns
- name: build pdns-admin backend
docker_image:
name: my-pdns-admin-uwsgi
state: '{{ i_state }}'
force: true
path: ./pdns-admin-uwsgi
tags:
- pdns-admin

- name: build pdns-admin
docker_image:
name: my-pdns-admin
state: "{{ i_state | default('present') }}"
force: true
path: ./pdns-admin
tags:
- pdns-admin
- name: build pdns-admin frontent
docker_image:
name: my-pdns-admin-static
state: '{{ i_state }}'
force: true
path: ./pdns-admin-static
tags:
- pdns-admin

- name: pdns-admin
docker_container:
name: pdns-admin
image: my-pdns-admin
state: "{{ c_state | default('started') }}"
tty: true
published_ports:
- '8889:80'
networks:
- name: pdns-net
links:
- pdns-mariadb:mysql
- pdns
volumes:
- pdns-admin-upload:/opt/powerdns-admin/upload
tags:
- pdns-admin
- name: pdns-admin backend
docker_container:
name: pdns-admin-uwsgi
image: my-pdns-admin-uwsgi
state: '{{ c_state }}'
purge_networks: true
networks:
- name: pdns-net
aliases:
- pdns-admin-uwsgi
volumes:
- /etc/localtime:/etc/localtime:ro
- pdns-admin-upload:/opt/powerdns-admin/upload
env:
PDNS_ADMIN_SQLA_DB_PASSWORD: "'my-secret-pw'"
PDNS_ADMIN_PDNS_VERSION: "'4.0.4'"
PDNS_ADMIN_PDNS_API_KEY: "'secret'"
tags:
- pdns-admin

- name: pdns-admin frontend
docker_container:
name: pdns-admin-static
image: my-pdns-admin-static
state: '{{ c_state }}'
purge_networks: true
networks:
- name: pdns-net
published_ports:
- '8889:80'
volumes:
- /etc/localtime:/etc/localtime:ro
tags:
- pdns-admin

- name: remove docker volumes
command: docker volume rm pdns-mariadb-volume pdns-admin-upload
ignore_errors: true
when: wipe | bool

- name: remove network
docker_network:
name: pdns-net
state: absent
ignore_errors: true
when: wipe | bool

0 comments on commit dda9e57

Please sign in to comment.