Skip to content

Instantly share code, notes, and snippets.

@natemccurdy
Created April 28, 2017 20:58
Show Gist options
  • Save natemccurdy/1dbc1136b167550c11722bb93ec108b6 to your computer and use it in GitHub Desktop.
Save natemccurdy/1dbc1136b167550c11722bb93ec108b6 to your computer and use it in GitHub Desktop.
PiHole Puppet profile w/ docker-compose
pihole:
image: diginc/pi-hole
ports:
- "53:53/tcp"
- "53:53/udp"
- "80:80/tcp"
cap_add:
- NET_ADMIN
environment:
ServerIP: 10.72.0.5
WEBPASSWORD: super secret password
volumes:
- '/etc/pihole/:/etc/pihole/'
- '/var/log/pihole.log:/var/log/pihole.log'
restart: always
class profile::pihole {
$docker_image_name = 'pihole_pihole_1'
$docker_compose_yaml = '/opt/pihole/docker-compose.yaml'
# Setup Docker Compose
class { 'docker::compose':
ensure => present,
version => '1.11.2',
}
file { '/opt/pihole':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
}
file { $docker_compose_yaml:
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
source => 'puppet:///modules/profile/pihole-docker-compose.yaml',
}
docker_compose { $docker_compose_yaml:
ensure => present,
require => [
File[$docker_compose_yaml],
Class['docker::compose'],
]
}
# Manage logs
# https://raw.githubusercontent.com/diginc/docker-pi-hole/master/docker-pi-hole.cron
cron { 'pihole - update sources':
ensure => present,
command => "docker exec ${docker_image_name} pihole updateGravity > /dev/null",
user => 'root',
hour => '2',
weekday => 'sunday',
}
include logrotate
logrotate::rule { 'pihole':
ensure => present,
path => '/var/log/pihole.log',
rotate => '8',
rotate_every => 'week',
compress => true,
dateext => true,
copytruncate => true,
su => true,
su_owner => 'root',
su_group => 'root',
}
# Create the pre-reqs for docker-compose image
file { '/etc/pihole':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
before => Docker_compose[$docker_compose_yaml],
}
file { '/var/log/pihole.log':
ensure => file,
owner => 'root',
group => 'root',
mode => '0644',
before => Docker_compose[$docker_compose_yaml],
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment