aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ansible/inventory7
-rw-r--r--ansible/plays/files/zigbee2mqtt/garasjepi/configuration.yaml43
-rw-r--r--ansible/plays/host-garasjepi.yml28
-rw-r--r--ansible/plays/zigbee2mqtt-backup.yml13
-rw-r--r--ansible/zigbee2mqtt.yml7
-rw-r--r--terraform/garasjepi-zigbee2mqtt/.terraform.lock.hcl24
-rw-r--r--terraform/garasjepi-zigbee2mqtt/backend.tf16
-rw-r--r--terraform/garasjepi-zigbee2mqtt/main.tf30
-rw-r--r--terraform/garasjepi-zigbee2mqtt/terragrunt.hcl3
-rw-r--r--terraform/lhn2pi-zigbee2mqtt/README.md15
-rw-r--r--terraform/lhn2pi-zigbee2mqtt/main.tf15
-rw-r--r--terraform/modules/zigbee2mqtt/zigbee2mqtt.tf2
12 files changed, 174 insertions, 29 deletions
diff --git a/ansible/inventory b/ansible/inventory
index 91e463e..1684d93 100644
--- a/ansible/inventory
+++ b/ansible/inventory
@@ -48,6 +48,8 @@ all:
ansible_host: danneri.dn42.trygvis.io
unifi:
ansible_host: unifi.dn42.trygvis.io
+ garasjepi:
+ ansible_host: garasjepi.dn42.trygvis.io
node1:
ansible_host: 9859f51e-1e3e-4c05-a826-b7fbe18d91be.pub.instances.scw.cloud
@@ -199,4 +201,9 @@ all:
node1:
node2:
+ zigbee2mqtt:
+ hosts:
+ garasjepi:
+ lhn2pi:
+
# vim: set filetype=yaml:
diff --git a/ansible/plays/files/zigbee2mqtt/garasjepi/configuration.yaml b/ansible/plays/files/zigbee2mqtt/garasjepi/configuration.yaml
new file mode 100644
index 0000000..b0b8f5a
--- /dev/null
+++ b/ansible/plays/files/zigbee2mqtt/garasjepi/configuration.yaml
@@ -0,0 +1,43 @@
+homeassistant:
+ enabled: false
+frontend:
+ enabled: true
+mqtt:
+ base_topic: zigbee2mqtt
+ #server: mqtt://ha-kv24.dn42.trygvis.io
+ server: mqtt://192.168.10.159
+ user: z2m
+ password: zigbee2mqtt
+ version: 5
+serial:
+ port: /dev/ttyACM0
+ adapter: deconz
+advanced:
+ network_key:
+ - 107
+ - 142
+ - 62
+ - 67
+ - 150
+ - 226
+ - 182
+ - 69
+ - 47
+ - 194
+ - 244
+ - 95
+ - 73
+ - 125
+ - 135
+ - 61
+ pan_id: 43701
+ ext_pan_id:
+ - 181
+ - 224
+ - 197
+ - 29
+ - 98
+ - 176
+ - 205
+ - 241
+version: 4 \ No newline at end of file
diff --git a/ansible/plays/host-garasjepi.yml b/ansible/plays/host-garasjepi.yml
new file mode 100644
index 0000000..62b0b3d
--- /dev/null
+++ b/ansible/plays/host-garasjepi.yml
@@ -0,0 +1,28 @@
+- hosts:
+ - garasjepi
+ tasks:
+ # These first
+ - become: yes
+ apt:
+ name:
+ - etckeeper
+ - git
+
+ - become: yes
+ apt:
+ name:
+ - tmux
+ - aptitude
+
+# - import_role:
+# name: timezone
+#
+# - import_role:
+# name: systemd-networkd
+
+ - become: yes
+ apt:
+ name:
+ - docker.io
+ - tmux
+ - aptitude
diff --git a/ansible/plays/zigbee2mqtt-backup.yml b/ansible/plays/zigbee2mqtt-backup.yml
new file mode 100644
index 0000000..331045b
--- /dev/null
+++ b/ansible/plays/zigbee2mqtt-backup.yml
@@ -0,0 +1,13 @@
+- hosts:
+ - zigbee2mqtt
+ tasks:
+ - become: yes
+ register: config
+ shell:
+ cmd: |
+ mp=$(docker volume inspect zigbee2mqtt --format '{{"{{.Mountpoint}}"}}')
+ cat $mp/configuration.yaml
+ - copy:
+ content: "{{ config.stdout }}"
+ dest: files/zigbee2mqtt/{{ ansible_hostname }}/configuration.yaml
+ delegate_to: localhost
diff --git a/ansible/zigbee2mqtt.yml b/ansible/zigbee2mqtt.yml
new file mode 100644
index 0000000..3e8e55c
--- /dev/null
+++ b/ansible/zigbee2mqtt.yml
@@ -0,0 +1,7 @@
+- hosts:
+ - zigbee2mqtt
+ roles:
+ - role: docker
+ tags: docker
+ become: yes
+
diff --git a/terraform/garasjepi-zigbee2mqtt/.terraform.lock.hcl b/terraform/garasjepi-zigbee2mqtt/.terraform.lock.hcl
new file mode 100644
index 0000000..57bc928
--- /dev/null
+++ b/terraform/garasjepi-zigbee2mqtt/.terraform.lock.hcl
@@ -0,0 +1,24 @@
+# This file is maintained automatically by "terraform init".
+# Manual edits may be lost in future updates.
+
+provider "registry.terraform.io/kreuzwerker/docker" {
+ version = "3.0.2"
+ constraints = "3.0.2"
+ hashes = [
+ "h1:cT2ccWOtlfKYBUE60/v2/4Q6Stk1KYTNnhxSck+VPlU=",
+ "zh:15b0a2b2b563d8d40f62f83057d91acb02cd0096f207488d8b4298a59203d64f",
+ "zh:23d919de139f7cd5ebfd2ff1b94e6d9913f0977fcfc2ca02e1573be53e269f95",
+ "zh:38081b3fe317c7e9555b2aaad325ad3fa516a886d2dfa8605ae6a809c1072138",
+ "zh:4a9c5065b178082f79ad8160243369c185214d874ff5048556d48d3edd03c4da",
+ "zh:5438ef6afe057945f28bce43d76c4401254073de01a774760169ac1058830ac2",
+ "zh:60b7fadc287166e5c9873dfe53a7976d98244979e0ab66428ea0dea1ebf33e06",
+ "zh:61c5ec1cb94e4c4a4fb1e4a24576d5f39a955f09afb17dab982de62b70a9bdd1",
+ "zh:a38fe9016ace5f911ab00c88e64b156ebbbbfb72a51a44da3c13d442cd214710",
+ "zh:c2c4d2b1fd9ebb291c57f524b3bf9d0994ff3e815c0cd9c9bcb87166dc687005",
+ "zh:d567bb8ce483ab2cf0602e07eae57027a1a53994aba470fa76095912a505533d",
+ "zh:e83bf05ab6a19dd8c43547ce9a8a511f8c331a124d11ac64687c764ab9d5a792",
+ "zh:e90c934b5cd65516fbcc454c89a150bfa726e7cf1fe749790c7480bbeb19d387",
+ "zh:f05f167d2eaf913045d8e7b88c13757e3cf595dd5cd333057fdafc7c4b7fed62",
+ "zh:fcc9c1cea5ce85e8bcb593862e699a881bd36dffd29e2e367f82d15368659c3d",
+ ]
+}
diff --git a/terraform/garasjepi-zigbee2mqtt/backend.tf b/terraform/garasjepi-zigbee2mqtt/backend.tf
new file mode 100644
index 0000000..33340ba
--- /dev/null
+++ b/terraform/garasjepi-zigbee2mqtt/backend.tf
@@ -0,0 +1,16 @@
+# Generated by Terragrunt. Sig: nIlQXj57tbuaRZEa
+terraform {
+ required_version = "~> 1.9.5"
+
+ backend "s3" {
+ bucket = "terraform-a6726272-73ff-11ed-8bdd-c79eb8376e05"
+ key = "garasjepi-zigbee2mqtt/terraform.tfstate"
+ skip_region_validation = true
+ skip_credentials_validation = true
+ skip_metadata_api_check = true
+ skip_requesting_account_id = true
+ skip_s3_checksum = true
+ region = "eu-central-1"
+ endpoints = { s3 : "https://eu-central-1.linodeobjects.com" }
+ }
+}
diff --git a/terraform/garasjepi-zigbee2mqtt/main.tf b/terraform/garasjepi-zigbee2mqtt/main.tf
new file mode 100644
index 0000000..4d5bb25
--- /dev/null
+++ b/terraform/garasjepi-zigbee2mqtt/main.tf
@@ -0,0 +1,30 @@
+terraform {
+ required_providers {
+ docker = {
+ source = "kreuzwerker/docker"
+ version = "3.0.2"
+ }
+ }
+}
+
+provider "docker" {
+ host = "ssh://${local.host}"
+}
+
+locals {
+ host = "garasjepi.dn42.trygvis.io"
+ docker_image = "koenkk/zigbee2mqtt:1.42.0"
+ public_ip = module.ipam.hosts.garasjepi.address
+}
+
+module "ipam" {
+ source = "../ipam6"
+}
+
+module "zigbee2mqtt" {
+ source = "../modules/zigbee2mqtt"
+
+ docker_version = "2.1"
+ public_ip = local.public_ip
+ serial_port = "/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2698168-if00"
+}
diff --git a/terraform/garasjepi-zigbee2mqtt/terragrunt.hcl b/terraform/garasjepi-zigbee2mqtt/terragrunt.hcl
new file mode 100644
index 0000000..e147285
--- /dev/null
+++ b/terraform/garasjepi-zigbee2mqtt/terragrunt.hcl
@@ -0,0 +1,3 @@
+include "root" {
+ path = find_in_parent_folders()
+}
diff --git a/terraform/lhn2pi-zigbee2mqtt/README.md b/terraform/lhn2pi-zigbee2mqtt/README.md
deleted file mode 100644
index 2e6209c..0000000
--- a/terraform/lhn2pi-zigbee2mqtt/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-This is not a docker container as the rest, but using podman as lhn2pi runs
-
-https://www.zigbee2mqtt.io/guide/installation/02_docker.html#rootless-container
-
-podman run \
- --name=zigbee2mqtt \
- --restart=unless-stopped \
- -p 8080:8080 \
- -v $(pwd)/data:/app/data \
- -v /run/udev:/run/udev:ro \
- --device=/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018ED3DDF-if00:/dev/ttyACM0 \
- --group-add keep-groups \
- -e TZ=Europe/Amsterdam \
- koenkk/zigbee2mqtt
-
diff --git a/terraform/lhn2pi-zigbee2mqtt/main.tf b/terraform/lhn2pi-zigbee2mqtt/main.tf
index 90527ee..2857b99 100644
--- a/terraform/lhn2pi-zigbee2mqtt/main.tf
+++ b/terraform/lhn2pi-zigbee2mqtt/main.tf
@@ -4,26 +4,15 @@ terraform {
source = "kreuzwerker/docker"
version = "3.0.2"
}
- linode = {
- source = "linode/linode"
- version = "1.30.0"
- }
- postgresql = {
- source = "cyrilgdn/postgresql"
- version = "1.18.0"
- }
- sops = {
- source = "lokkersp/sops"
- version = "0.6.10"
- }
}
}
provider "docker" {
- host = "ssh://lhn2pi.dn42.trygvis.io"
+ host = "ssh://${local.host}"
}
locals {
+ host = "lhn2pi.dn42.trygvis.io"
docker_image = "koenkk/zigbee2mqtt:1.42.0"
public_ip = module.ipam.hosts.lhn2pi.address
}
diff --git a/terraform/modules/zigbee2mqtt/zigbee2mqtt.tf b/terraform/modules/zigbee2mqtt/zigbee2mqtt.tf
index 967727d..467c5e1 100644
--- a/terraform/modules/zigbee2mqtt/zigbee2mqtt.tf
+++ b/terraform/modules/zigbee2mqtt/zigbee2mqtt.tf
@@ -40,6 +40,6 @@ resource "docker_container" "zigbee2mqtt" {
devices {
host_path = var.serial_port
container_path = "/dev/ttyACM0"
- permissions = "rwm"
+# permissions = "rwm"
}
}