Compare commits
4 Commits
802144ecb6
...
e7c3e1eed2
Author | SHA1 | Date | |
---|---|---|---|
e7c3e1eed2 | |||
6321f2a36e | |||
5b76f14734 | |||
fe000e168f |
@ -72,6 +72,10 @@ all:
|
|||||||
ansible_host: 192.168.50.186
|
ansible_host: 192.168.50.186
|
||||||
vars:
|
vars:
|
||||||
ip: 186
|
ip: 186
|
||||||
|
remote_server:
|
||||||
|
ansible_host:
|
||||||
|
ansible_become_password:
|
||||||
|
ansible_user: ubuntu
|
||||||
children:
|
children:
|
||||||
raspberry:
|
raspberry:
|
||||||
hosts:
|
hosts:
|
||||||
|
41
main.yml
41
main.yml
@ -1,30 +1,25 @@
|
|||||||
---
|
---
|
||||||
#- hosts: iron-man.lan
|
- hosts: prusa
|
||||||
# roles:
|
roles:
|
||||||
# - ssh
|
- ssh
|
||||||
# - ubuntu
|
- octoprint
|
||||||
#
|
- ubuntu
|
||||||
#- hosts: prusa
|
|
||||||
# roles:
|
|
||||||
# - ssh
|
|
||||||
# - octoprint
|
|
||||||
# - ubuntu
|
|
||||||
|
|
||||||
- hosts: docker_cluster
|
- hosts: docker_cluster
|
||||||
roles:
|
roles:
|
||||||
# - node_explorer
|
- node_explorer
|
||||||
# - ssh
|
- ssh
|
||||||
- docker-cluster
|
- docker-cluster
|
||||||
# - ubuntu
|
- ubuntu
|
||||||
#
|
|
||||||
#- hosts: raspberry
|
|
||||||
# roles:
|
|
||||||
# - i2c-clock
|
|
||||||
|
|
||||||
#- hosts: router.lan
|
- hosts: raspberry
|
||||||
# roles:
|
roles:
|
||||||
# - router
|
- i2c-clock
|
||||||
|
|
||||||
#- hosts: iron-man
|
- hosts: router.lan
|
||||||
# roles:
|
roles:
|
||||||
# - ssh
|
- router
|
||||||
|
|
||||||
|
- hosts: remote_server
|
||||||
|
roles:
|
||||||
|
- docker
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
node-02 IPaddr::192.168.50.100/24/eth0:0
|
node-02 IPaddr::192.168.50.100/24/eth0:0
|
||||||
node-02 ssh-external
|
node-02 ssh-external::start
|
||||||
|
17
roles/docker/tasks/docker-cron.yml
Normal file
17
roles/docker/tasks/docker-cron.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
- name: Clean docker system
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.cron:
|
||||||
|
user: root
|
||||||
|
name: "clean docker system"
|
||||||
|
minute: "0"
|
||||||
|
hour: "3"
|
||||||
|
job: "/usr/bin/docker system prune -f"
|
||||||
|
|
||||||
|
- name: Clean docker image cache
|
||||||
|
become: yes
|
||||||
|
ansible.builtin.cron:
|
||||||
|
user: root
|
||||||
|
name: "clean docker system"
|
||||||
|
minute: "0"
|
||||||
|
hour: "3"
|
||||||
|
job: "/usr/bin/docker image prune -a -f"
|
49
roles/docker/tasks/install-docker-ce.yml
Normal file
49
roles/docker/tasks/install-docker-ce.yml
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
---
|
||||||
|
- become: yes
|
||||||
|
block:
|
||||||
|
- name: install needed packages
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
pkg:
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg-agent
|
||||||
|
- software-properties-common
|
||||||
|
|
||||||
|
- name: add docker gpg key
|
||||||
|
apt_key:
|
||||||
|
url: https://download.docker.com/linux/ubuntu/gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: add docker repo
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
|
||||||
|
state: present
|
||||||
|
filename: docker
|
||||||
|
|
||||||
|
- name: install docker
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
pkg:
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- containerd.io
|
||||||
|
|
||||||
|
- name: add current user to docker group
|
||||||
|
user:
|
||||||
|
name: "{{ansible_user_id}}"
|
||||||
|
groups: docker
|
||||||
|
append: yes
|
||||||
|
|
||||||
|
- name: start and enable docker
|
||||||
|
systemd:
|
||||||
|
name: docker
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: add current user to docker group
|
||||||
|
user:
|
||||||
|
name: "{{ ansible_user_id }}"
|
||||||
|
append: yes
|
||||||
|
groups: docker
|
20
roles/docker/tasks/install-docker-io.yml
Normal file
20
roles/docker/tasks/install-docker-io.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
- become: yes
|
||||||
|
block:
|
||||||
|
- name: install needed packages
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
pkg:
|
||||||
|
- docker.io
|
||||||
|
|
||||||
|
- name: start and enable docker
|
||||||
|
systemd:
|
||||||
|
name: docker
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: add current user to docker group
|
||||||
|
user:
|
||||||
|
name: "{{ ansible_user_id }}"
|
||||||
|
append: yes
|
||||||
|
groups: docker
|
8
roles/docker/tasks/main.yml
Normal file
8
roles/docker/tasks/main.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
- import_tasks: install-docker-ce.yml
|
||||||
|
when: ansible_distribution == "Ubuntu" and ansible_distribution_version == "18.04"
|
||||||
|
|
||||||
|
- import_tasks: install-docker-io.yml
|
||||||
|
when: ansible_distribution == "Ubuntu" and ansible_distribution_version != "18.04"
|
||||||
|
|
||||||
|
- import_tasks: docker-cron.yml
|
@ -4,7 +4,7 @@
|
|||||||
path: build/dns
|
path: build/dns
|
||||||
state: directory
|
state: directory
|
||||||
|
|
||||||
- name: Create db.lan
|
- name: Create db lan
|
||||||
# become: yes
|
# become: yes
|
||||||
template:
|
template:
|
||||||
src: etc/bind/db.lan.j2
|
src: etc/bind/db.lan.j2
|
||||||
@ -13,7 +13,7 @@
|
|||||||
network: "{{ lan }}"
|
network: "{{ lan }}"
|
||||||
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
||||||
|
|
||||||
- name: Create db.lan
|
- name: Create reverse db lan
|
||||||
# become: yes
|
# become: yes
|
||||||
template:
|
template:
|
||||||
src: etc/bind/db.reverse.j2
|
src: etc/bind/db.reverse.j2
|
||||||
@ -21,3 +21,21 @@
|
|||||||
vars:
|
vars:
|
||||||
network: "{{ lan }}"
|
network: "{{ lan }}"
|
||||||
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
||||||
|
|
||||||
|
- name: Create db iot
|
||||||
|
# become: yes
|
||||||
|
template:
|
||||||
|
src: etc/bind/db.lan.j2
|
||||||
|
dest: build/dns/db.iot
|
||||||
|
vars:
|
||||||
|
network: "{{ iot }}"
|
||||||
|
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
||||||
|
|
||||||
|
- name: Create reverse db iot
|
||||||
|
# become: yes
|
||||||
|
template:
|
||||||
|
src: etc/bind/db.reverse.j2
|
||||||
|
dest: build/dns/db.{{ iot.network_reverse }}
|
||||||
|
vars:
|
||||||
|
network: "{{ iot }}"
|
||||||
|
serial: "{{ ansible_date_time.year }}{{ ansible_date_time.month }}{{ ansible_date_time.day }}02"
|
||||||
|
@ -10,7 +10,7 @@ $ORIGIN {{ network.network_name }}.
|
|||||||
|
|
||||||
@ IN NS dns.{{ network.network_name }}.
|
@ IN NS dns.{{ network.network_name }}.
|
||||||
|
|
||||||
DNS IN A {{ network.network_prefix }}.100
|
DNS IN A {{ network.dns }}
|
||||||
|
|
||||||
{% for host in network.hosts %}
|
{% for host in network.hosts %}
|
||||||
{{ host.name }} IN A {{ network.network_prefix }}.{{ host.ip }}
|
{{ host.name }} IN A {{ network.network_prefix }}.{{ host.ip }}
|
||||||
|
@ -4,6 +4,7 @@ authorative;
|
|||||||
subnet {{ network.address }} netmask {{ network.mask }} {
|
subnet {{ network.address }} netmask {{ network.mask }} {
|
||||||
option domain-name-servers {{ network.dns }};
|
option domain-name-servers {{ network.dns }};
|
||||||
option domain-name "{{ network.network_name }}";
|
option domain-name "{{ network.network_name }}";
|
||||||
|
option domain-search "lan", "iot";
|
||||||
option routers {{ network.gateway }};
|
option routers {{ network.gateway }};
|
||||||
default-lease-time 86400;
|
default-lease-time 86400;
|
||||||
max-lease-time 86400;
|
max-lease-time 86400;
|
||||||
|
@ -20,23 +20,17 @@ lan:
|
|||||||
- name: prusa
|
- name: prusa
|
||||||
ip: 6
|
ip: 6
|
||||||
mac: b8:27:eb:c3:a6:6a
|
mac: b8:27:eb:c3:a6:6a
|
||||||
# - name: rpi3
|
|
||||||
- name: iron-man
|
|
||||||
ip: 7
|
|
||||||
mac: dc:a6:32:03:6d:fa
|
|
||||||
- name: rpi3a
|
|
||||||
ip: 8
|
|
||||||
mac: b8:27:eb:ff:2a:86
|
|
||||||
|
|
||||||
- name: hulk
|
- name: hulk
|
||||||
ip: 21
|
ip: 21
|
||||||
mac: 24:4b:fe:05:e2:8b
|
mac: 24:4b:fe:05:e2:8b
|
||||||
- name: banner
|
- name: banner
|
||||||
ip: 22
|
ip: 22
|
||||||
mac: 52:54:00:49:04:51
|
mac: '52:54:00:49:04:51'
|
||||||
- name: laptop
|
- name: hawkeye
|
||||||
ip: 29
|
ip: 23
|
||||||
mac: 08:d4:0c:cc:ff:1f
|
mac: b4:8c:9d:5e:a1:8b
|
||||||
|
mac2: a0:ce:c8:77:c3:13
|
||||||
|
|
||||||
- name: android-sgs9
|
- name: android-sgs9
|
||||||
ip: 41
|
ip: 41
|
||||||
@ -46,10 +40,13 @@ lan:
|
|||||||
mac: b8:63:4d:b6:4c:bc
|
mac: b8:63:4d:b6:4c:bc
|
||||||
- name: iphone
|
- name: iphone
|
||||||
ip: 43
|
ip: 43
|
||||||
mac: b2:d9:6f:d9:31:e1
|
mac: 0c:19:f8:10:c2:b3
|
||||||
- name: apple-watch
|
- name: apple-watch
|
||||||
ip: 44
|
ip: 44
|
||||||
mac: b2:b0:04:86:fc:90
|
mac: 9c:28:b3:24:bc:9c
|
||||||
|
- name: ipad-pro
|
||||||
|
ip: 45
|
||||||
|
mac: 38:88:a4:6e:95:a3
|
||||||
|
|
||||||
- name: node-01
|
- name: node-01
|
||||||
ip: 101
|
ip: 101
|
||||||
@ -63,9 +60,15 @@ lan:
|
|||||||
- name: node-04
|
- name: node-04
|
||||||
ip: 104
|
ip: 104
|
||||||
mac: dc:a6:32:8b:7b:ab
|
mac: dc:a6:32:8b:7b:ab
|
||||||
|
- name: node-05
|
||||||
|
ip: 105
|
||||||
|
mac: 08:d4:0c:cc:ff:1f
|
||||||
|
|
||||||
iot:
|
iot:
|
||||||
network: 192.168.60
|
network_prefix: 192.168.60
|
||||||
|
network_reverse: 60.168.192
|
||||||
|
network_name: iot
|
||||||
|
dns: 192.168.50.100
|
||||||
hosts:
|
hosts:
|
||||||
- name: hue-light
|
- name: hue-light
|
||||||
ip: 3
|
ip: 3
|
||||||
@ -73,16 +76,16 @@ iot:
|
|||||||
- name: harmony-hub
|
- name: harmony-hub
|
||||||
ip: 4
|
ip: 4
|
||||||
mac: c8:db:26:06:7e:f9
|
mac: c8:db:26:06:7e:f9
|
||||||
- name: zhimi-airpurifier-m1_miio61353463
|
- name: airpurifier-bedroom
|
||||||
ip: 5
|
ip: 5
|
||||||
mac: 34:ce:00:a4:f6:75
|
mac: 34:ce:00:a4:f6:75
|
||||||
- name: zhimi-airpurifier-mb3_mibt952D
|
- name: airpurifier-livingroom
|
||||||
ip: 6
|
ip: 6
|
||||||
mac: 50:ec:50:85:95:2d
|
mac: 50:ec:50:85:95:2d
|
||||||
- name: roborock
|
- name: roborock
|
||||||
ip: 7
|
ip: 7
|
||||||
mac: 50:ec:50:0a:c3:94
|
mac: 50:ec:50:0a:c3:94
|
||||||
- name: zhimi-humidifier-ca4_mibt1D0C
|
- name: humidifier
|
||||||
ip: 8
|
ip: 8
|
||||||
mac: 54:48:e6:5d:1d:0c
|
mac: 54:48:e6:5d:1d:0c
|
||||||
- name: yeelight-lightbar
|
- name: yeelight-lightbar
|
||||||
@ -100,6 +103,9 @@ iot:
|
|||||||
- name: bedroom-tv
|
- name: bedroom-tv
|
||||||
ip: 16
|
ip: 16
|
||||||
mac: d8:a3:5c:7d:50:0a
|
mac: d8:a3:5c:7d:50:0a
|
||||||
|
- name: miibox
|
||||||
|
ip: 17
|
||||||
|
mac: 00:e0:4c:68:09:35
|
||||||
- name: nvidia-shield
|
- name: nvidia-shield
|
||||||
ip: 18
|
ip: 18
|
||||||
mac: 00:04:4b:cd:a6:5b
|
mac: 00:04:4b:cd:a6:5b
|
||||||
@ -107,9 +113,14 @@ iot:
|
|||||||
- name: nintendo-switch
|
- name: nintendo-switch
|
||||||
ip: 19
|
ip: 19
|
||||||
mac: 64:b5:c6:6f:ff:a8
|
mac: 64:b5:c6:6f:ff:a8
|
||||||
|
mac2: 00:0e:c6:c7:55:6f
|
||||||
- name: printer
|
- name: printer
|
||||||
ip: 20
|
ip: 20
|
||||||
mac: 38:9d:92:d0:6d:8e
|
mac: 38:9d:92:d0:6d:8e
|
||||||
|
- name: xbox-series-s
|
||||||
|
ip: 21
|
||||||
|
mac: a8:8c:3e:b0:aa:7a
|
||||||
|
|
||||||
- name: Sonos-LivingRoom
|
- name: Sonos-LivingRoom
|
||||||
ip: 30
|
ip: 30
|
||||||
mac: 34:7e:5c:83:6f:c6
|
mac: 34:7e:5c:83:6f:c6
|
||||||
@ -119,12 +130,19 @@ iot:
|
|||||||
- name: Sonos-Bathroom
|
- name: Sonos-Bathroom
|
||||||
ip: 32
|
ip: 32
|
||||||
mac: 5c:aa:fd:b9:4b:22
|
mac: 5c:aa:fd:b9:4b:22
|
||||||
|
- name: Sonos-Bedroom2
|
||||||
|
ip: 33
|
||||||
|
mac: 78:28:ca:85:51:dc
|
||||||
|
|
||||||
- name: home-assistant
|
- name: home-assistant
|
||||||
ip: 100
|
ip: 100
|
||||||
mac: dc:a6:32:f6:63:c1
|
mac: dc:a6:32:f6:63:c1
|
||||||
- name: home-assistant-power
|
- name: usb-switch-1
|
||||||
ip: 110
|
ip: 111
|
||||||
mac: c8:2b:96:64:6a:37
|
mac: c8:2b:96:64:6a:37
|
||||||
|
- name: usb-switch-2
|
||||||
|
ip: 112
|
||||||
|
mac: c8:2b:96:64:68:a3
|
||||||
guest:
|
guest:
|
||||||
network: 192.168.70
|
network: 192.168.70
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user