rm attitude-adjuster
change
commit 71581026b137f4a544382871540203574208afef
author Alpha Chen <alpha.chen@brilliant.org>
date
parent ee54073b
diff --git a/meta/attitude-adjuster/Dockerfile.ddclient b/meta/attitude-adjuster/Dockerfile.ddclient
deleted file mode 100644
index 4beab932..00000000
--- a/meta/attitude-adjuster/Dockerfile.ddclient
+++ /dev/null
@@ -1,23 +0,0 @@
-# vim: ft=dockerfile
-FROM armhf/alpine
-
-# https://wiki.alpinelinux.org/wiki/Ddclient
-
-RUN apk update && apk upgrade && \
-    apk add \
-        curl \
-        make \
-        perl \
-        perl-io-socket-ssl
-RUN cpan install Test::Requires && cpan Data::Validate::IP
-
-RUN cd tmp && \
-    curl --location https://github.com/ddclient/ddclient/archive/v3.9.0.tar.gz > ddclient-3.9.0.tar.gz && \
-    tar xvz < ddclient-3.9.0.tar.gz && \
-    cp ddclient-3.9.0/ddclient /usr/sbin && \
-    mkdir /etc/ddclient && \
-    mkdir -p /var/cache/ddclient
-
-VOLUME /etc/ddclient
-
-ENTRYPOINT [ "ddclient", "-daemon", "300", "-foreground", "-verbose" ]
diff --git a/meta/attitude-adjuster/README.md b/meta/attitude-adjuster/README.md
deleted file mode 100644
index 1c08245a..00000000
--- a/meta/attitude-adjuster/README.md
+++ /dev/null
@@ -1,22 +0,0 @@
-# Attitude Adjuster
-
-## Installation notes
-
-1. [Download Raspberian Stretch Lite](https://www.raspberrypi.org/downloads/raspbian/)
-1. Install Etcher: `brew cask install balenaetcher`
-1. [Flash the SD card](https://www.raspberrypi.org/documentation/installation/installing-images/README.md)
-
-1. [Enable SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/)
-
-1. Run the Ansible playbooks
-  - `ansible-playbook --extra-vars "ansible_user=pi" --ask-pass attitude-adjuster/bootstrap.yml`
-  - `ansible-playbook attitude-adjuster/main.yml`
-
-## Optional
-
-1. Use `raspi-config` to set up the WiFi
-  - [Additional setup](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md)
-  - Add `scan_ssid=1` to `/etc/wpa_supplicant/wpa_supplicant.conf`
-  - Restart WiFi: `wpa_cli -i wlan0 reconfigure`
-1. Use `raspi-config` to set the keyboard layout
-
diff --git a/meta/attitude-adjuster/bootstrap.yml b/meta/attitude-adjuster/bootstrap.yml
deleted file mode 100644
index 154c0dc9..00000000
--- a/meta/attitude-adjuster/bootstrap.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-- hosts: attitude-adjuster
-  become: yes
-  vars_files:
-    - vars.yml.private
-  tasks:
-
-    - name: change hostname to {{ ansible_hostname }}
-      hostname:
-        name: "{{ ansible_hostname }}"
-      notify: reboot
-
-    - name: update hostname in /etc/hosts
-      replace:
-        path: /etc/hosts
-        regexp: '(\s+)raspberrypi(\s+.*)?$'
-        replace: '\{{ ansible_hostname }}\2'
-      notify: reboot
-
-    - name: disable wifi
-      lineinfile:
-        path: /boot/config.txt
-        insertafter: dtoverlay
-        line: dtoverlay=pi3-disable-wifi
-      notify: reboot
-
-    - name: create user
-      user:
-        name: alpha
-        password: "{{ password | password_hash('sha512') }}"
-        shell: /bin/bash
-
-    - name: give user sudo access
-      lineinfile:
-        path: /etc/sudoers.d/alpha
-        line: "alpha ALL=(ALL) NOPASSWD: ALL"
-        create: yes
-        validate: visudo -cf %s
-
-    - name: add ssh keys
-      authorized_key:
-        user: alpha
-        key: https://github.com/kejadlen.keys
-
-  handlers:
-    - name: reboot
-      reboot:
diff --git a/meta/attitude-adjuster/ddclient.yml b/meta/attitude-adjuster/ddclient.yml
deleted file mode 100644
index fc11b0f4..00000000
--- a/meta/attitude-adjuster/ddclient.yml
+++ /dev/null
@@ -1,66 +0,0 @@
-- hosts: attitude-adjuster
-  vars_files:
-    - vars.yml.private
-  become: yes
-  tasks:
-
-    - name: configure ddclient
-      copy:
-        content: |
-          use=web
-          ssl=yes
-          protocol=googledomains
-          login={{ home.ddclient.login }}
-          password={{ home.ddclient.password }}
-          {{ home.host }}
-
-          use=web
-          ssl=yes
-          protocol=googledomains
-          login={{ home_assistant.ddclient.login }}
-          password={{ home_assistant.ddclient.password }}
-          {{ home_assistant.host }}
-
-          use=web
-          ssl=yes
-          protocol=googledomains
-          login={{ homebridge.ddclient.login }}
-          password={{ homebridge.ddclient.password }}
-          {{ homebridge.host }}
-
-          use=web
-          ssl=yes
-          protocol=googledomains
-          login={{ pihole.ddclient.login }}
-          password={{ pihole.ddclient.password }}
-          {{ pihole.host }}
-
-          use=web
-          ssl=yes
-          protocol=googledomains
-          login={{ traefik.ddclient.login }}
-          password={{ traefik.ddclient.password }}
-          {{ traefik.host }}
-        dest: /etc/ddclient/ddclient.conf
-        mode: 0600
-      notify: restart ddclient
-
-    - name: build docker image
-      docker_image:
-        build:
-          path: .
-          dockerfile: Dockerfile.ddclient
-          pull: yes
-        name: kejadlen/ddclient
-        repository: kejadlen/ddclient
-        push: yes
-        source: build
-
-  handlers:
-
-    - name: restart ddclient
-      docker_container:
-        name: ddclient
-        restart: yes
-      ignore_errors: yes
-
diff --git a/meta/attitude-adjuster/docker.yml b/meta/attitude-adjuster/docker.yml
deleted file mode 100644
index f823f1ed..00000000
--- a/meta/attitude-adjuster/docker.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-# https://docs.docker.com/install/linux/docker-ce/debian/#install-using-the-repository
-
-- hosts: attitude-adjuster
-  vars_files:
-    - vars.yml.private
-  become: yes
-  tasks:
-
-    - name: install dependencies
-      package:
-        name: "{{ item }}"
-        state: present
-      with_items:
-        - apt-transport-https
-        - ca-certificates
-        - gnupg2
-
-    - name: add docker apt key
-      apt_key:
-        url: https://download.docker.com/linux/debian/gpg
-
-    # https://github.com/moby/moby/issues/31405#issuecomment-501494874
-    - name: add docker apt repository
-      apt_repository:
-        repo: deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable
-        state: present
-        filename: docker
-
-    - name: install docker
-      package:
-        name: "{{ item }}"
-        state: present
-      with_items:
-        - docker-ce
-        - docker-ce-cli
-        - containerd.io
-
-    - name: add myself to docker group
-      user:
-        name: alpha
-        groups: docker
-        append: yes
-
-    - name: install dependencies
-      package:
-        name: "{{ item }}"
-        state: present
-      with_items:
-        - docker-compose
-        - python-docker
-
diff --git a/meta/attitude-adjuster/home-assistant.yml b/meta/attitude-adjuster/home-assistant.yml
deleted file mode 100644
index 5d48cf49..00000000
--- a/meta/attitude-adjuster/home-assistant.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-- hosts: attitude-adjuster
-  vars_files:
-    - vars.yml.private
-  become: yes
-  tasks:
-
-    - name: configure home assistant
-      copy:
-        content: |
-          default_config:
-          http:
-            base_url: https://{{ home_assistant.host }}
-          tts: # Text to speech
-            - platform: google_translate
-          homekit:
-          group: !include groups.yaml
-          automation: !include automations.yaml
-          script: !include scripts.yaml
-        dest: /etc/homeassistant/configuration.yaml
-      notify: restart home assistant
-
-    - name: allow access to homekit
-      ufw:
-        rule: allow
-        proto: "{{ item.proto }}"
-        port: "{{ item.port }}"
-        state: reloaded
-      with_items:
-        - { proto: tcp, port: 51827 }
-        - { proto: udp, port: 5353 }
-
-  handlers:
-
-    - name: restart home assistant
-      docker_container:
-        name: home-assistant
-        restart: yes
-      ignore_errors: yes
-
diff --git a/meta/attitude-adjuster/main.yml b/meta/attitude-adjuster/main.yml
deleted file mode 100644
index 911f9158..00000000
--- a/meta/attitude-adjuster/main.yml
+++ /dev/null
@@ -1,107 +0,0 @@
-- hosts: attitude-adjuster
-  become: yes
-  tasks:
-
-    - name: install dependencies
-      package:
-        name: "{{ item }}"
-        state: present
-      with_items:
-        - git
-        - vim
-
-- import_playbook: security.yml
-
-- import_playbook: docker.yml
-- import_playbook: ddclient.yml
-- import_playbook: home-assistant.yml
-- import_playbook: pihole.yml
-- import_playbook: traefik.yml
-
-- hosts: attitude-adjuster
-  vars_files:
-    - vars.yml.private
-  tasks:
-    - name: docker compose
-      docker_compose:
-        project_name: attitude-adjuster
-        definition:
-          version: '2'
-          services:
-
-            ddclient:
-              image: kejadlen/ddclient
-              container_name: ddclient
-              environment:
-                TZ: America/Los_Angeles
-              volumes:
-                - /etc/ddclient:/etc/ddclient
-              networks:
-                - bridge
-              restart: always
-
-            home_assistant:
-              container_name: home-assistant
-              image: homeassistant/raspberrypi3-homeassistant
-              environment:
-                TZ: America/Los_Angeles
-              volumes:
-                - /etc/homeassistant:/config
-              network_mode: host
-              restart: always
-
-            pihole:
-              container_name: pihole
-              image: pihole/pihole:latest
-              ports:
-                - 53:53/tcp
-                - 53:53/udp
-              environment:
-                ServerIP: 192.168.1.101
-                TZ: America/Los_Angeles
-                VIRTUAL_HOST: "{{ pihole.host }}"
-                WEBPASSWORD: "{{ pihole.password }}"
-              volumes:
-                 - /etc/pihole:/etc/pihole
-                 - /etc/dnsmasq.d:/etc/dnsmasq.d
-              dns:
-                - 127.0.0.1
-                - 1.1.1.1
-              cap_add:
-                - NET_ADMIN
-              networks:
-                - bridge
-              restart: always
-              labels:
-                - traefik.enable=true
-                - traefik.frontend.rule=Host:{{ pihole.host }}
-                - traefik.basic.port=80
-                - traefik.basic.protocol=http
-
-            traefik:
-              container_name: traefik
-              image: traefik
-              command: --api --docker
-              ports:
-                - 80:80
-                - 443:443
-              volumes:
-                - /var/run/docker.sock:/var/run/docker.sock
-                - /opt/traefik/traefik.toml:/traefik.toml
-                - /opt/traefik/acme.json:/acme.json
-              networks:
-                - bridge
-              restart: always
-              labels:
-                - traefik.enable=true
-                - traefik.frontend.rule=Host:{{ traefik.host }}
-                - traefik.frontend.auth.basic.users=alpha:{{ traefik.password | password_hash('md5') | replace('$', '$$') }}
-                - traefik.basic.port=8080
-                - traefik.basic.protocol=http
-
-          networks:
-            bridge:
-
-        state: present
-        pull: yes
-
diff --git a/meta/attitude-adjuster/pihole.yml b/meta/attitude-adjuster/pihole.yml
deleted file mode 100644
index fe96c24f..00000000
--- a/meta/attitude-adjuster/pihole.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-- hosts: attitude-adjuster
-  become: yes
-  tasks:
-
-    - name: allow access to dns
-      ufw:
-        rule: allow
-        name: DNS
-      notify: restart pihole
-
-  handlers:
-
-    - name: restart pihole
-      docker_container:
-        name: pihole
-        restart: yes
-      ignore_errors: yes
-
diff --git a/meta/attitude-adjuster/security.yml b/meta/attitude-adjuster/security.yml
deleted file mode 100644
index a6030683..00000000
--- a/meta/attitude-adjuster/security.yml
+++ /dev/null
@@ -1,63 +0,0 @@
-# https://www.raspberrypi.org/documentation/configuration/security.md
-
-- hosts: attitude-adjuster
-  become: yes
-  tasks:
-
-    - name: disable ssh password logins
-      lineinfile:
-        path: /etc/ssh/sshd_config
-        regexp: '^(#\s*)?{{ item }} '
-        line: "{{ item }} no"
-      notify: reload ssh
-      with_items:
-        - ChallengeResponseAuthentication
-        - PasswordAuthentication
-        - UsePAM
-
-    - name: disable pi user
-      user:
-        name: pi
-        password: !
-
-    - name: install ufw and fail2ban
-      package:
-        name: "{{ item }}"
-        state: present
-      with_items:
-        - ufw
-        - fail2ban
-
-    - name: allow access to http, and https
-      ufw:
-        rule: allow
-        name: WWW Full
-
-    - name: limit ssh access
-      ufw:
-        rule: limit
-        name: OpenSSH
-
-    - name: enable ufw
-      ufw:
-        state: enabled
-
-    - name: create jail.local
-      copy:
-        content: |
-          [sshd]
-          enabled = true
-        dest: /etc/fail2ban/jail.local
-      notify: reload fail2ban
-
-  handlers:
-
-    - name: reload ssh
-      service:
-        name: ssh
-        state: reloaded
-
-    - name: reload fail2ban
-      service:
-        name: fail2ban
-        state: reloaded
diff --git a/meta/attitude-adjuster/traefik.yml b/meta/attitude-adjuster/traefik.yml
deleted file mode 100644
index e3accef1..00000000
--- a/meta/attitude-adjuster/traefik.yml
+++ /dev/null
@@ -1,76 +0,0 @@
-# https://docs.traefik.io/user-guide/docker-and-lets-encrypt/
-
-- hosts: attitude-adjuster
-  vars_files:
-    - vars.yml.private
-  become: yes
-  tasks:
-
-    - name: get docker ip
-      shell: ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+'
-      register: docker_ip
-
-    - name: traefik.toml
-      copy:
-        content: |
-          debug = false
-          insecureSkipVerify = true
-
-          logLevel = "INFO" # "ERROR"
-          defaultEntryPoints = ["https","http"]
-
-          [entryPoints]
-            [entryPoints.http]
-            address = ":80"
-              [entryPoints.http.redirect]
-              entryPoint = "https"
-            [entryPoints.https]
-            address = ":443"
-            [entryPoints.https.tls]
-
-          [retry]
-
-          [file]
-
-          [frontends]
-            [frontends.homeassistant]
-            backend = "homeassistant"
-              [frontends.homeassistant.routes.test_1]
-              rule = "Host:{{ home_assistant.host }}"
-
-          [backends]
-            [backends.homeassistant]
-              [backends.homeassistant.servers.server1]
-              url = "http://{{ docker_ip.stdout | trim }}:8123"
-
-          [docker]
-          endpoint = "unix:///var/run/docker.sock"
-          domain = "{{ traefik.domain }}"
-          watch = true
-          exposedByDefault = false
-          network = "attitudeadjuster_bridge"
-
-          [acme]
-          email = "{{ traefik.email }}"
-          storage = "acme.json"
-          entryPoint = "https"
-          onHostRule = true
-          [acme.httpChallenge]
-          entryPoint = "http"
-        dest: /opt/traefik/traefik.toml
-      notify: restart traefik
-
-    - name: acme.json
-      file:
-        name: /opt/traefik/acme.json
-        mode: 0600
-        state: touch
-
-  handlers:
-
-    - name: restart traefik
-      docker_container:
-        name: traefik
-        restart: yes
-      ignore_errors: yes
-