File tree 11 files changed +90
-18
lines changed
11 files changed +90
-18
lines changed Original file line number Diff line number Diff line change
1
+ inventory.ini
2
+ config.yml
Original file line number Diff line number Diff line change @@ -7,11 +7,16 @@ TODO: Description here.
7
7
## Features
8
8
9
9
- ** Internet Monitoring** : TODO.
10
- - ** Pi Hole ** : TODO.
10
+ - ** Pi-hole ** : TODO.
11
11
12
12
## Setup
13
13
14
- TODO.
14
+ 1 . Install Ansible (either full version or ansible-base).
15
+ 2 . Install requirements: ` ansible-galaxy collection install -r requirements.yml `
16
+ 3 . Make copies of the following files and customize them to your liking:
17
+ - ` example.inventory.ini ` to ` inventory.ini ` (replace IP address with your Pi's IP).
18
+ - ` example.config.yml ` to ` config.yml `
19
+ 4 . Run the playbook: ` ansible-playbook main.yml `
15
20
16
21
## License
17
22
Original file line number Diff line number Diff line change 1
1
[defaults]
2
2
nocows = True
3
- inventory = ./inventory
3
+ inventory = ./inventory.ini
4
4
interpreter_python = auto_silent
Original file line number Diff line number Diff line change
1
+ ---
2
+ pihole_hostname : pihole
3
+ pihole_password : change-this-password
File renamed without changes.
Original file line number Diff line number Diff line change 2
2
- hosts : internet_pi
3
3
become : true
4
4
5
+ pre_tasks :
6
+ - name : Load configuration.
7
+ ansible.builtin.include_vars : config.yml
8
+
9
+ - name : Ensure apt cache is up to date.
10
+ ansible.builtin.apt :
11
+ update_cache : true
12
+ cache_valid_time : 3600
13
+
5
14
tasks :
6
- - include_tasks : tasks/docker.yml
7
- - include_tasks : tasks/internet-monitoring.yml
15
+ - ansible.builtin.include_tasks : tasks/docker.yml
16
+ - ansible.builtin.include_tasks : tasks/internet-monitoring.yml
17
+ - ansible.builtin.include_tasks : tasks/pi-hole.yml
Original file line number Diff line number Diff line change
1
+ ---
2
+ collections :
3
+ - community.docker
Original file line number Diff line number Diff line change 1
1
---
2
2
- name : Check if Docker is already present.
3
- command : which docker
3
+ ansible.builtin. command : which docker
4
4
failed_when : false
5
5
changed_when : false
6
6
register : docker_command_result
7
7
8
8
- name : Download Docker install convenience script.
9
- get_url :
9
+ ansible.builtin. get_url :
10
10
url : https://get.docker.com/
11
11
dest : /tmp/get-docker.sh
12
12
mode : 0775
13
13
when : docker_command_result.rc == 1
14
14
15
15
- name : Run Docker install convenience script.
16
- command : /tmp/get-docker.sh
16
+ ansible.builtin. command : /tmp/get-docker.sh
17
17
environment :
18
18
CHANNEL : stable
19
19
when : docker_command_result.rc == 1
20
20
21
21
- name : Ensure Docker is started.
22
- service :
22
+ ansible.builtin. service :
23
23
name : docker
24
24
state : started
25
25
enabled : true
26
26
27
27
- name : Ensure dependencies are installed.
28
- apt :
28
+ ansible.builtin. apt :
29
29
name :
30
30
- libffi-dev
31
31
- libssl-dev
35
35
state : present
36
36
37
37
- name : Install Docker Compose using Pip.
38
- pip :
38
+ ansible.builtin. pip :
39
39
name : docker-compose
40
40
state : present
41
41
executable : pip3
42
42
43
43
- name : Ensure pi user is added to the docker group.
44
- user :
44
+ ansible.builtin. user :
45
45
name : pi
46
46
groups : docker
47
47
append : true
Original file line number Diff line number Diff line change 1
1
---
2
2
- name : Clone internet-monitoring repo to Pi.
3
- git :
3
+ ansible.builtin. git :
4
4
repo : https://github.com/geerlingguy/internet-monitoring
5
5
dest : ~/internet-monitoring/
6
6
version : master
7
7
accept_hostkey : true
8
8
become : false
9
9
10
+ # TODO: The first time this playbook is run, the `pi` user may not be added
11
+ # to the `docker` group, so this task may fail.
10
12
- name : Ensure internet-monitoring environment is running.
11
- meta : noop
12
-
13
- # git clone https://github.com/geerlingguy/internet-monitoring
14
- # cd internet-monitoring
15
- # docker-compose up -d
13
+ community.docker.docker_compose :
14
+ project_src : ~/internet-monitoring/
15
+ build : false
16
+ become : false
Original file line number Diff line number Diff line change
1
+ ---
2
+ - name : Create Pi-hole folder on Pi.
3
+ ansible.builtin.file :
4
+ path : ~/pi-hole
5
+ state : directory
6
+ mode : 0755
7
+ become : false
8
+
9
+ - name : Copy Pi-hole docker-compose template to Pi.
10
+ ansible.builtin.template :
11
+ src : templates/pi-hole-docker-compose.yml.j2
12
+ dest : ~/pi-hole/docker-compose.yml
13
+ mode : ' 0640'
14
+ become : false
15
+
16
+ # TODO: The first time this playbook is run, the `pi` user may not be added
17
+ # to the `docker` group, so this task may fail.
18
+ - name : Ensure Pi-hole is running.
19
+ community.docker.docker_compose :
20
+ project_src : ~/pi-hole/
21
+ build : false
22
+ become : false
Original file line number Diff line number Diff line change
1
+ # {{ ansible_managed }}
2
+ ---
3
+ version: "3"
4
+
5
+ # More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
6
+ services:
7
+ pihole:
8
+ container_name: pihole
9
+ image: pihole/pihole:latest
10
+ hostname: '{{ pihole_hostname }}'
11
+ ports:
12
+ - "53:53/tcp"
13
+ - "53:53/udp"
14
+ - "67:67/udp"
15
+ - "80:80/tcp"
16
+ - "443:443/tcp"
17
+ environment:
18
+ TZ: 'America/Chicago'
19
+ WEBPASSWORD: '{{ pihole_password }}'
20
+ ServerIP: '{{ ansible_facts['default_ipv4'] ['address'] }}'
21
+ volumes:
22
+ - './etc-pihole/:/etc/pihole/'
23
+ - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
24
+ cap_add:
25
+ - NET_ADMIN
26
+ restart: unless-stopped
You can’t perform that action at this time.
0 commit comments