Fuege Ansible-Rolle signage_player fuer Agent-Deployment hinzu
- Rolle signage_player: baut Binary lokal (linux/arm64), deployt es, schreibt config.json per Template, installiert und aktiviert systemd-Unit - inventory.yml mit Host info10 (10.0.0.200) - group_vars/signage_players: getrennte vars.yml (oeffentlich) und vault.yml (Secrets, gitignored) fuer MQTT-Credentials - host_vars/info10: ansible_host, ansible_user, screen_id - site.yml zeigt auf signage_players-Gruppe und signage_player-Rolle - Binaries und vault.yml in .gitignore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
1dbebc0a2b
commit
b111cf8421
10 changed files with 133 additions and 6 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -16,3 +16,6 @@ dist/
|
||||||
|
|
||||||
# Compose override files
|
# Compose override files
|
||||||
compose.override.yml
|
compose.override.yml
|
||||||
|
vault.yml
|
||||||
|
ansible/roles/signage_player/files/morz-agent
|
||||||
|
player/agent/agent-linux-arm64
|
||||||
|
|
|
||||||
9
ansible/group_vars/signage_players/vars.yml
Normal file
9
ansible/group_vars/signage_players/vars.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
---
|
||||||
|
morz_server_base_url: "http://10.0.0.70:8080"
|
||||||
|
morz_mqtt_broker: "tcp://dockerbox.morz.de:1883"
|
||||||
|
morz_heartbeat_every_seconds: 30
|
||||||
|
morz_status_report_every_seconds: 60
|
||||||
|
|
||||||
|
# Credentials kommen aus vault.yml (ansible-vault)
|
||||||
|
morz_mqtt_username: "{{ vault_mqtt_username }}"
|
||||||
|
morz_mqtt_password: "{{ vault_mqtt_password }}"
|
||||||
4
ansible/host_vars/info10/vars.yml
Normal file
4
ansible/host_vars/info10/vars.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
ansible_host: 10.0.0.200
|
||||||
|
ansible_user: morz
|
||||||
|
screen_id: info01-dev
|
||||||
6
ansible/inventory.yml
Normal file
6
ansible/inventory.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
all:
|
||||||
|
children:
|
||||||
|
signage_players:
|
||||||
|
hosts:
|
||||||
|
info10:
|
||||||
11
ansible/roles/signage_player/defaults/main.yml
Normal file
11
ansible/roles/signage_player/defaults/main.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
signage_user: morz
|
||||||
|
signage_config_dir: /etc/signage
|
||||||
|
signage_binary_dest: /usr/local/bin/morz-agent
|
||||||
|
|
||||||
|
morz_server_base_url: "http://10.0.0.70:8080"
|
||||||
|
morz_mqtt_broker: ""
|
||||||
|
morz_mqtt_username: ""
|
||||||
|
morz_mqtt_password: ""
|
||||||
|
morz_heartbeat_every_seconds: 30
|
||||||
|
morz_status_report_every_seconds: 60
|
||||||
11
ansible/roles/signage_player/handlers/main.yml
Normal file
11
ansible/roles/signage_player/handlers/main.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
- name: Reload systemd
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
daemon_reload: true
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Restart morz-agent
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: morz-agent
|
||||||
|
state: restarted
|
||||||
|
become: true
|
||||||
59
ansible/roles/signage_player/tasks/main.yml
Normal file
59
ansible/roles/signage_player/tasks/main.yml
Normal file
|
|
@ -0,0 +1,59 @@
|
||||||
|
---
|
||||||
|
- name: Build agent binary for linux/arm64
|
||||||
|
ansible.builtin.command:
|
||||||
|
cmd: go build -o {{ role_path }}/files/morz-agent ./cmd/agent
|
||||||
|
chdir: "{{ playbook_dir }}/../player/agent"
|
||||||
|
environment:
|
||||||
|
GOOS: linux
|
||||||
|
GOARCH: arm64
|
||||||
|
delegate_to: localhost
|
||||||
|
changed_when: true
|
||||||
|
|
||||||
|
- name: Ensure config directory exists
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ signage_config_dir }}"
|
||||||
|
state: directory
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Deploy agent config
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: config.json.j2
|
||||||
|
dest: "{{ signage_config_dir }}/config.json"
|
||||||
|
owner: root
|
||||||
|
group: "{{ signage_user }}"
|
||||||
|
mode: "0640"
|
||||||
|
become: true
|
||||||
|
notify: Restart morz-agent
|
||||||
|
|
||||||
|
- name: Deploy agent binary
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: morz-agent
|
||||||
|
dest: "{{ signage_binary_dest }}"
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0755"
|
||||||
|
become: true
|
||||||
|
notify: Restart morz-agent
|
||||||
|
|
||||||
|
- name: Deploy systemd unit
|
||||||
|
ansible.builtin.template:
|
||||||
|
src: morz-agent.service.j2
|
||||||
|
dest: /etc/systemd/system/morz-agent.service
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: "0644"
|
||||||
|
become: true
|
||||||
|
notify:
|
||||||
|
- Reload systemd
|
||||||
|
- Restart morz-agent
|
||||||
|
|
||||||
|
- name: Enable and start morz-agent
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: morz-agent
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
daemon_reload: false
|
||||||
|
become: true
|
||||||
9
ansible/roles/signage_player/templates/config.json.j2
Normal file
9
ansible/roles/signage_player/templates/config.json.j2
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"screen_id": "{{ screen_id }}",
|
||||||
|
"server_base_url": "{{ morz_server_base_url }}",
|
||||||
|
"mqtt_broker": "{{ morz_mqtt_broker }}",
|
||||||
|
"mqtt_username": "{{ morz_mqtt_username }}",
|
||||||
|
"mqtt_password": "{{ morz_mqtt_password }}",
|
||||||
|
"heartbeat_every_seconds": {{ morz_heartbeat_every_seconds }},
|
||||||
|
"status_report_every_seconds": {{ morz_status_report_every_seconds }}
|
||||||
|
}
|
||||||
16
ansible/roles/signage_player/templates/morz-agent.service.j2
Normal file
16
ansible/roles/signage_player/templates/morz-agent.service.j2
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Morz Infoboard Player Agent
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
User={{ signage_user }}
|
||||||
|
ExecStart={{ signage_binary_dest }}
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=10
|
||||||
|
StandardOutput=journal
|
||||||
|
StandardError=journal
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
- name: Placeholder deployment entrypoint
|
---
|
||||||
hosts: all
|
- name: Deploy Morz Infoboard Player Agent
|
||||||
|
hosts: signage_players
|
||||||
gather_facts: false
|
gather_facts: false
|
||||||
tasks:
|
roles:
|
||||||
- name: Show target host placeholder
|
- signage_player
|
||||||
ansible.builtin.debug:
|
|
||||||
msg: "Placeholder fuer spaeteres signage deployment auf {{ inventory_hostname }}"
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue