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.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
|
||||
tasks:
|
||||
- name: Show target host placeholder
|
||||
ansible.builtin.debug:
|
||||
msg: "Placeholder fuer spaeteres signage deployment auf {{ inventory_hostname }}"
|
||||
roles:
|
||||
- signage_player
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue