Skip to content

Commit 0727451

Browse files
committed
Update playbook tasks + support install from pkg URL.
The install from pkg. URL option can be useful in case you want to fix the ChirpStack and ChirpStack Gateway Bridge version to a specific version instead of the latest version from the apt repository.
1 parent a6d0174 commit 0727451

File tree

20 files changed

+112
-66
lines changed

20 files changed

+112
-66
lines changed

group_vars/chirpstack.example.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ iptables:
2828
source: 0.0.0.0/0
2929
protocol: udp
3030

31+
# Apt configuration.
32+
apt:
33+
# Use ChirpStack repository.
34+
# If set to false, you must specify a package_url variable in the ChirpStack
35+
# components below. With the ChirpStack repo enabled, Ansible will always
36+
# install the latest version.
37+
use_chirpstack_repo: true
38+
3139
# Mosquitto configuration (MQTT)
3240
mosquitto:
3341
# the full domain by which the MQTT broker is reachable

host_vars/vagrant.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,14 @@ iptables:
2828
source: 0.0.0.0/0
2929
protocol: udp
3030

31+
# Apt configuration.
32+
apt:
33+
# Use ChirpStack repository.
34+
# If set to false, you must specify a package_url variable in the ChirpStack
35+
# components below. With the ChirpStack repo enabled, Ansible will always
36+
# install the latest version.
37+
use_chirpstack_repo: true
38+
3139
# Mosquitto configuration
3240
mosquitto:
3341
# the full domain by which the MQTT broker is reachable

roles/base/tasks/main.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
- name: upgrade installed packages
2-
apt:
2+
ansible.builtin.apt:
33
update_cache: 'yes'
44
upgrade: 'yes'
55

66
- name: install packages
7-
package: name={{ item }} state=latest
7+
ansible.builtin.package: name={{ item }} state=latest
88
with_items:
99
- apt-transport-https
1010
- iptables-persistent
@@ -13,10 +13,11 @@
1313
- golang-cfssl
1414

1515
- name: import ChirpStack gpg key
16-
apt_key:
16+
ansible.builtin.apt_key:
1717
keyserver: keyserver.ubuntu.com
1818
id: 1CE2AFD36DBCCA00
1919

2020
- name: add ChirpStack deb repository
21-
apt_repository:
21+
ansible.builtin.apt_repository:
2222
repo: deb https://artifacts.chirpstack.io/packages/4.x/deb stable main
23+
when: apt.use_chirpstack_repo

roles/chirpstack-ca/tasks/main.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
- name: create directory
2-
file:
2+
ansible.builtin.file:
33
path: /etc/chirpstack-certs
44
state: directory
55
owner: root
66
group: root
77
mode: "0700"
88

99
- name: copy configuration
10-
template:
10+
ansible.builtin.template:
1111
src: "{{ item }}"
1212
dest: "/etc/chirpstack-certs/{{ item }}"
1313
owner: root
@@ -18,7 +18,7 @@
1818
- ca-csr.json
1919

2020
- name: generate chirpstack ca
21-
shell: "cfssl gencert -initca ca-csr.json | cfssljson -bare /etc/chirpstack-certs/ca"
21+
ansible.builtin.shell: "cfssl gencert -initca ca-csr.json | cfssljson -bare /etc/chirpstack-certs/ca"
2222
args:
2323
chdir: /etc/chirpstack-certs
2424
creates: /etc/chirpstack-certs/ca.pem
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
- name: reload systemctl daemon
2-
systemd:
2+
ansible.builtin.systemd:
33
daemon_reload: true
44

55
- name: restart chirpstack-gateway-bridge-basicstation
6-
service:
6+
ansible.builtin.service:
77
name: chirpstack-gateway-bridge-basicstation
88
state: restarted
Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,43 @@
11
- name: install chirpstack-gateway-bridge
2-
package:
2+
ansible.builtin.package:
33
name: chirpstack-gateway-bridge
44
state: latest
5+
when: apt.use_chirpstack_repo
6+
notify:
7+
- restart chirpstack-gateway-bridge-basicstation
8+
9+
- name: install chirpstack-gateway-bridge from package_url
10+
ansible.builtin.apt:
11+
deb: "{{ chirpstack_gateway_bridge.package_url }}"
12+
when: not apt.use_chirpstack_repo
13+
notify:
14+
- restart chirpstack-gateway-bridge-basicstation
515

616
- name: create certs directory
7-
file:
17+
ansible.builtin.file:
818
path: /etc/chirpstack-gateway-bridge/certs
919
state: directory
1020
owner: gatewaybridge
1121
group: gatewaybridge
1222
mode: "0700"
1323

1424
- name: copy server cert config
15-
template:
25+
ansible.builtin.template:
1626
src: server-cert.json
1727
dest: /etc/chirpstack-gateway-bridge/certs/server-cert.json
1828
owner: gatewaybridge
1929
group: gatewaybridge
2030
mode: "0600"
2131

2232
- name: generate server certificate
23-
shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server server-cert.json | cfssljson -bare /etc/chirpstack-gateway-bridge/certs/server"
33+
ansible.builtin.shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server server-cert.json | cfssljson -bare /etc/chirpstack-gateway-bridge/certs/server"
2434
args:
2535
chdir: /etc/chirpstack-gateway-bridge/certs
2636
notify:
2737
- restart chirpstack-gateway-bridge-basicstation
2838

2939
- name: copy ca cert
30-
copy:
40+
ansible.builtin.copy:
3141
src: /etc/chirpstack-certs/ca.pem
3242
dest: /etc/chirpstack-gateway-bridge/certs/ca.pem
3343
remote_src: "yes"
@@ -38,7 +48,7 @@
3848
- restart chirpstack-gateway-bridge-basicstation
3949

4050
- name: set certificate permissions
41-
file:
51+
ansible.builtin.file:
4252
path: /etc/chirpstack-gateway-bridge/certs
4353
state: directory
4454
recurse: "yes"
@@ -47,22 +57,22 @@
4757
mode: "0600"
4858

4959
- name: set certificate directory permissions
50-
file:
60+
ansible.builtin.file:
5161
path: /etc/chirpstack-gateway-bridge/certs
5262
state: directory
5363
owner: gatewaybridge
5464
group: gatewaybridge
5565
mode: "0700"
5666

5767
- name: add systemd service
58-
template:
68+
ansible.builtin.template:
5969
src: chirpstack-gateway-bridge-basicstation.service
6070
dest: /lib/systemd/system/chirpstack-gateway-bridge-basicstation.service
6171
notify:
6272
- reload systemctl daemon
6373

6474
- name: copy configuration
65-
template:
75+
ansible.builtin.template:
6676
src: "chirpstack-gateway-bridge-basicstation-{{ chirpstack_gateway_bridge_basicstation.region }}.toml"
6777
dest: /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge-basicstation.toml
6878
owner: gatewaybridge
@@ -72,7 +82,7 @@
7282
- restart chirpstack-gateway-bridge-basicstation
7383

7484
- name: start chirpstack-gateway-bridge-basicstation on boot
75-
service:
85+
ansible.builtin.service:
7686
name: chirpstack-gateway-bridge-basicstation
7787
state: started
7888
enabled: true
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- name: restart chirpstack-gateway-bridge
2-
service:
2+
ansible.builtin.service:
33
name: chirpstack-gateway-bridge
44
state: restarted
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
- name: install chirpstack-gateway-bridge
2-
package:
2+
ansible.builtin.package:
33
name: chirpstack-gateway-bridge
44
state: latest
5+
when: apt.use_chirpstack_repo
6+
notify:
7+
- restart chirpstack-gateway-bridge
8+
9+
- name: install chirpstack-gateway-bridge from package_url
10+
ansible.builtin.apt:
11+
deb: "{{ chirpstack_gateway_bridge.package_url }}"
12+
when: not apt.use_chirpstack_repo
13+
notify:
14+
- restart chirpstack-gateway-bridge
515

616
- name: copy configuration
7-
template:
17+
ansible.builtin.template:
818
src: chirpstack-gateway-bridge.toml
919
dest: /etc/chirpstack-gateway-bridge/chirpstack-gateway-bridge.toml
1020
owner: gatewaybridge
@@ -14,7 +24,7 @@
1424
- restart chirpstack-gateway-bridge
1525

1626
- name: start chirpstack-gateway-bridge on boot
17-
service:
27+
ansible.builtin.service:
1828
name: chirpstack-gateway-bridge
1929
state: started
2030
enabled: "yes"

roles/chirpstack/handlers/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- name: restart chirpstack
2-
service:
2+
ansible.builtin.service:
33
name: chirpstack
44
state: restarted

roles/chirpstack/tasks/gen_self_signed_cert.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
- name: create certs directory
2-
file:
2+
ansible.builtin.file:
33
path: /etc/nginx/certs
44
state: directory
55
owner: root
66
group: root
77
mode: "0700"
88

99
- name: copy server cert config
10-
template:
10+
ansible.builtin.template:
1111
src: server-cert.json
1212
dest: /etc/nginx/certs/chirpstack.json
1313
owner: root
1414
group: root
1515
mode: "0600"
1616

1717
- name: generate server certificate
18-
shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server chirpstack.json | cfssljson -bare /etc/nginx/certs/chirpstack"
18+
ansible.builtin.shell: "cfssl gencert -ca /etc/chirpstack-certs/ca.pem -ca-key /etc/chirpstack-certs/ca-key.pem -config /etc/chirpstack-certs/ca-config.json -profile server chirpstack.json | cfssljson -bare /etc/nginx/certs/chirpstack"
1919
args:
2020
chdir: /etc/nginx/certs
2121
notify:

roles/chirpstack/tasks/main.yml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
- name: install chirpstack
2-
package:
2+
ansible.builtin.package:
33
name: chirpstack
44
state: latest
5+
when: apt.use_chirpstack_repo
6+
7+
- name: install chirpstack from package_url
8+
ansible.builtin.apt:
9+
deb: "{{ chirpstack.package_url }}"
10+
when: not apt.use_chirpstack_repo
511

612
- name: copy configuration
7-
template:
13+
ansible.builtin.template:
814
src: chirpstack.toml
915
dest: /etc/chirpstack/chirpstack.toml
1016
owner: chirpstack
@@ -14,15 +20,15 @@
1420
- restart chirpstack
1521

1622
- name: create certs directory
17-
file:
23+
ansible.builtin.file:
1824
path: /etc/chirpstack/certs
1925
state: directory
2026
owner: chirpstack
2127
group: chirpstack
2228
mode: "0700"
2329

2430
- name: copy ca cert
25-
copy:
31+
ansible.builtin.copy:
2632
src: "/etc/chirpstack-certs/{{ item }}"
2733
dest: "/etc/chirpstack/certs/{{ item }}"
2834
remote_src: "yes"
@@ -36,22 +42,22 @@
3642
- restart chirpstack
3743

3844
- name: request letsencrypt certificate
39-
command: "certbot --nginx certonly --non-interactive --agree-tos -m {{ chirpstack.letsencrypt.email }} -d {{ chirpstack.fqdn }}"
45+
ansible.builtin.command: "certbot --nginx certonly --non-interactive --agree-tos -m {{ chirpstack.letsencrypt.email }} -d {{ chirpstack.fqdn }}"
4046
when: chirpstack.letsencrypt.request
4147

4248
- name: generate self-signed certificate
4349
include_tasks: gen_self_signed_cert.yml
4450
when: not chirpstack.letsencrypt.request
4551

4652
- name: add nginx proxy configuration
47-
template:
53+
ansible.builtin.template:
4854
src: chirpstack.nginx
4955
dest: /etc/nginx/sites-enabled/chirpstack
5056
notify:
5157
- reload nginx
5258

5359
- name: start chirpstack on boot
54-
service:
60+
ansible.builtin.service:
5561
name: chirpstack
5662
state: started
5763
enabled: "yes"

roles/iptables/handlers/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
- name: persist iptables
2-
shell: iptables-save > /etc/iptables/rules.v4
2+
ansible.builtin.shell: iptables-save > /etc/iptables/rules.v4
33

roles/iptables/tasks/main.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
- name: allow connections on configured ports
2-
iptables:
2+
ansible.builtin.iptables:
33
chain: INPUT
44
jump: ACCEPT
55
protocol: "{{ item.protocol }}"
@@ -10,31 +10,30 @@
1010
- persist iptables
1111

1212
- name: allow established connections
13-
iptables:
13+
ansible.builtin.iptables:
1414
chain: INPUT
1515
ctstate: ESTABLISHED,RELATED
1616
jump: ACCEPT
1717
notify:
1818
- persist iptables
1919

2020
- name: allow loopback input
21-
iptables:
21+
ansible.builtin.iptables:
2222
chain: INPUT
2323
in_interface: lo
2424
jump: ACCEPT
2525
notify:
2626
- persist iptables
2727

2828
- name: allow loopback output
29-
iptables:
29+
ansible.builtin.iptables:
3030
chain: OUTPUT
3131
out_interface: lo
3232
jump: ACCEPT
3333
notify:
3434
- persist iptables
3535

3636
- name: drop all other connections
37-
command: iptables -P INPUT DROP
37+
ansible.builtin.command: iptables -P INPUT DROP
3838
notify:
3939
- persist iptables
40-

roles/letsencrypt/tasks/main.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
- name: install packages
2-
package:
2+
ansible.builtin.package:
33
name: "{{ item }}"
44
state: latest
55
with_items:
66
- certbot
77
- python3-certbot-nginx
88

99
- name: setup renew cron
10-
cron:
10+
ansible.builtin.cron:
1111
name: "certbot renew"
1212
minute: "0"
1313
hour: "0"

roles/mosquitto/handlers/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- name: restart mosquitto
2-
service:
2+
ansible.builtin.service:
33
name: mosquitto
44
state: restarted

0 commit comments

Comments
 (0)