src.nth.io/

summaryrefslogtreecommitdiff
path: root/openhop/repeater/tasks/main.yaml
blob: b24044ca8f551be161202d9abe79f6e7ee424ed5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---

- name: load board pin preset
  include_vars: "boards/{{repeater_board}}.yaml"

- name: load RF region preset
  include_vars: "rf/{{repeater_rf_preset}}.yaml"

- name: enable SPI for the LoRa HAT
  become: yes
  lineinfile:
    path: "/boot/firmware/config.txt"
    line: "dtparam=spi=on"
    regexp: "^#?dtparam=spi="
  register: spi_result

- name: remind to reboot for SPI to take effect
  debug:
    msg: "config.txt updated  reboot {{inventory_hostname}} for dtparam=spi=on to take effect"
  when: spi_result.changed

- name: apt install openhop repeater dependencies
  become: yes
  apt:
    name:
      - "git"
      - "python3-venv"
      - "python3-dev"
      - "build-essential"

- name: add openhop repeater user
  become: yes
  user:
    name: "{{repeater_user}}"
    system: "yes"
    shell: "/bin/false"
    home: "{{repeater_data_dir}}"
    create_home: "no"
    groups: "spi,gpio"
    append: "yes"

- name: create openhop repeater directories
  become: yes
  file:
    path: "{{item.path}}"
    state: "directory"
    owner: "{{item.owner}}"
    group: "{{item.owner}}"
    mode: "{{item.mode}}"
  loop:
    - { path: "/opt/openhop_repeater", owner: "root", mode: "0755" }
    - { path: "{{repeater_config_dir}}", owner: "root", mode: "0755" }
    - { path: "{{repeater_data_dir}}", owner: "{{repeater_user}}", mode: "0750" }

- name: check installed openhop_repeater version
  become: yes
  stat:
    path: "{{repeater_venv_dir}}/.installed-{{repeater_version}}"
  register: repeater_installed

- name: install openhop_repeater into venv
  become: yes
  pip:
    name: "git+{{repeater_repo}}@{{repeater_version}}"
    virtualenv: "{{repeater_venv_dir}}"
    virtualenv_command: "python3 -m venv"
  when: not repeater_installed.stat.exists
  notify: restart openhop-repeater

- name: stamp installed openhop_repeater version
  become: yes
  copy:
    dest: "{{repeater_venv_dir}}/.installed-{{repeater_version}}"
    content: "{{repeater_version}}\n"
    mode: "0644"
  when: not repeater_installed.stat.exists

- name: configure openhop repeater
  become: yes
  template:
    src: "config.yaml.j2"
    dest: "{{repeater_config_dir}}/config.yaml"
    owner: "root"
    group: "{{repeater_user}}"
    mode: "0640"
  notify: restart openhop-repeater

- name: install openhop-repeater systemd service
  become: yes
  template:
    src: "openhop-repeater.service.j2"
    dest: "/lib/systemd/system/openhop-repeater.service"
    mode: "0644"
  notify: restart openhop-repeater

- name: ensure openhop-repeater service is started
  become: yes
  systemd:
    name: "openhop-repeater.service"
    enabled: "yes"
    state: "started"
    daemon_reload: "yes"