diff options
-rw-r--r-- | ansible/inventory | 7 | ||||
-rw-r--r-- | ansible/plays/files/zigbee2mqtt/garasjepi/configuration.yaml | 43 | ||||
-rw-r--r-- | ansible/plays/host-garasjepi.yml | 28 | ||||
-rw-r--r-- | ansible/plays/zigbee2mqtt-backup.yml | 13 | ||||
-rw-r--r-- | ansible/zigbee2mqtt.yml | 7 | ||||
-rw-r--r-- | terraform/garasjepi-zigbee2mqtt/.terraform.lock.hcl | 24 | ||||
-rw-r--r-- | terraform/garasjepi-zigbee2mqtt/backend.tf | 16 | ||||
-rw-r--r-- | terraform/garasjepi-zigbee2mqtt/main.tf | 30 | ||||
-rw-r--r-- | terraform/garasjepi-zigbee2mqtt/terragrunt.hcl | 3 | ||||
-rw-r--r-- | terraform/lhn2pi-zigbee2mqtt/README.md | 15 | ||||
-rw-r--r-- | terraform/lhn2pi-zigbee2mqtt/main.tf | 15 | ||||
-rw-r--r-- | terraform/modules/zigbee2mqtt/zigbee2mqtt.tf | 2 |
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" } } |