Fixed Ansible for controller
This commit is contained in:
parent
c2d277663f
commit
64a10b0512
10 changed files with 1096 additions and 216 deletions
|
@ -1,24 +1,29 @@
|
|||
- name: Test playbook
|
||||
vars:
|
||||
# TODO: maybe don't hardcode this?
|
||||
PROJECT_BASE: "/home/kat/Documents/polzp/fri_multimedia_rework"
|
||||
hosts: P01
|
||||
PROJECT_BASE: "../"
|
||||
INSTALL_BASE: "/home/pi/pyServices"
|
||||
|
||||
# vars_files:
|
||||
# - secret
|
||||
|
||||
# addr: "192.168.122.245"
|
||||
hosts:
|
||||
- P01
|
||||
- P22
|
||||
|
||||
handlers:
|
||||
- name: restart NM
|
||||
- name: restart NetworkManager
|
||||
ansible.builtin.service:
|
||||
name: NetworkManager
|
||||
state: restarted
|
||||
- name: Restart mosquitto
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
name: mosquitto.service
|
||||
state: restarted
|
||||
|
||||
tasks:
|
||||
- name: Ping hosts
|
||||
ansible.builtin.ping:
|
||||
|
||||
#
|
||||
# NETWORK CONFIGURATION
|
||||
#
|
||||
|
||||
- name: set eth0 static IP
|
||||
become: true
|
||||
|
@ -26,12 +31,25 @@
|
|||
conn_name: "Multimedia network"
|
||||
ifname: eth0
|
||||
type: ethernet
|
||||
ip4: "{{ static_ip }}/{{ static_mask }}"
|
||||
gw4: "{{ static_routers }}"
|
||||
ip4: "{{ static_ip }}/{{ static_ip_cidr }}"
|
||||
# Sorry timi
|
||||
method6: disabled
|
||||
# Multimedia net doesn't have Internet access, so this iface shouldn't be used for Internet access
|
||||
never_default4: true
|
||||
routes4_extended:
|
||||
- ip: 192.168.0.0/16
|
||||
next_hop: "{{ static_ip_gateway }}"
|
||||
metric: 9999
|
||||
- ip: 10.0.0.0/8
|
||||
next_hop: "{{ static_ip_gateway }}"
|
||||
metric: 9999
|
||||
# gw4: "{{ static_ip_gateway }}"
|
||||
state: present
|
||||
#notify: restart NM
|
||||
|
||||
|
||||
|
||||
#
|
||||
# SYSTEM DEPENDENCIES
|
||||
#
|
||||
- name: Install pkgs
|
||||
become: true
|
||||
apt:
|
||||
|
@ -40,171 +58,177 @@
|
|||
- mosquitto
|
||||
- nginx
|
||||
state: latest
|
||||
|
||||
- name: pip install
|
||||
|
||||
- name: Install Poetry
|
||||
pip:
|
||||
break_system_packages: true
|
||||
name:
|
||||
- poetry
|
||||
#
|
||||
# MOSQUITTO
|
||||
#
|
||||
- name: mosquitto enable
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
name: mosquitto.service
|
||||
enabled: true
|
||||
|
||||
|
||||
- name: check for script directory
|
||||
file:
|
||||
path: "/home/pi/pyServices"
|
||||
state: directory
|
||||
|
||||
|
||||
- name: Copy poetry conf
|
||||
#become: true
|
||||
- name: Copy mosqitconfig
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
#seuser: root
|
||||
src: "../{{ item }}"
|
||||
dest: "/home/pi/pyServices/{{ item }}"
|
||||
owner: pi
|
||||
group: pi
|
||||
src: mosquitto.conf
|
||||
dest: /etc/mosquitto/mosquitto.conf
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: yes
|
||||
loop:
|
||||
- poetry.lock
|
||||
- pyproject.toml
|
||||
- README.md
|
||||
notify: Restart mosquitto
|
||||
|
||||
#
|
||||
# INSTALL CONTROLLER
|
||||
#
|
||||
|
||||
- name: Create installation directory
|
||||
file:
|
||||
path: "{{INSTALL_BASE}}"
|
||||
state: directory
|
||||
|
||||
- name: Install controller scripts
|
||||
ansible.posix.synchronize:
|
||||
src: "../controller/"
|
||||
dest: "{{INSTALL_BASE}}/"
|
||||
delete: true
|
||||
archive: false
|
||||
recursive: true
|
||||
|
||||
- name: template config.toml
|
||||
ansible.builtin.template:
|
||||
src: ./conf.j2
|
||||
dest: /home/pi/pyServices/malinaConfig.toml
|
||||
src: ./malinaConfig.toml.j2
|
||||
dest: "{{INSTALL_BASE}}/malinaConfig.toml"
|
||||
|
||||
- name: copy python scripts
|
||||
#become: true
|
||||
ansible.builtin.copy:
|
||||
src: "../{{ item }}"
|
||||
dest: "/home/pi/pyServices"
|
||||
|
||||
#
|
||||
# INSTALL FRONTEND
|
||||
#
|
||||
|
||||
- name: Build frontend (localhost)
|
||||
delegate_to: localhost
|
||||
ansible.builtin.shell:
|
||||
cmd: "npm install --dev && npm run build"
|
||||
chdir: "{{PROJECT_BASE}}/frontend/vju_display" # TODO: remove vju_display
|
||||
|
||||
- name: Install frontend
|
||||
become: true
|
||||
ansible.posix.synchronize:
|
||||
src: "../frontend/vju_display/dist/" # TODO: remove vju_display
|
||||
dest: "/var/www/html/"
|
||||
delete: true
|
||||
archive: false
|
||||
recursive: true
|
||||
|
||||
- name: Fix www root permission
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: "/var/www/html/"
|
||||
owner: pi
|
||||
group: pi
|
||||
recurse: true
|
||||
mode: '0644'
|
||||
backup: yes
|
||||
loop:
|
||||
- barco_telnet/barco_G62_control.py
|
||||
- extron_audio_matrix/extron_audio_matrix_telnet_control.py
|
||||
- extron_audio_matrix/extron_audio_matrix_telnet_interpreter.py
|
||||
- projector_motors/projector_motors.py
|
||||
- tse_serial/tse_serial_controler.py
|
||||
- tse_serial/tse_serial_interpreter.py
|
||||
- lucke/luckeControl.py
|
||||
# - config.toml # bruh
|
||||
|
||||
|
||||
- name: poetry installation
|
||||
ansible.builtin.shell:
|
||||
- name: Install python libraries
|
||||
ansible.builtin.shell:
|
||||
cmd: "poetry install"
|
||||
chdir: "/home/pi/pyServices"
|
||||
chdir: "{{INSTALL_BASE}}/controller"
|
||||
|
||||
- name: mosquitto service and reload
|
||||
#
|
||||
# SERVICES
|
||||
#
|
||||
|
||||
- name: template target
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
name: mosquitto.service
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
ansible.builtin.template:
|
||||
src: ./mm-controller.target.j2
|
||||
dest: /etc/systemd/system/mm-controller.target
|
||||
|
||||
|
||||
- name: generate systemd services
|
||||
- name: Generate systemd services
|
||||
become: true
|
||||
block:
|
||||
- name: barco services
|
||||
# Barco G62 (novi projektor)
|
||||
- name: Barco G62 services
|
||||
when: barco_G62 is defined
|
||||
block:
|
||||
- name: template service
|
||||
vars:
|
||||
script_file: "/home/pi/pyServices/barco_G62_control.py %i"
|
||||
become: true
|
||||
vars:
|
||||
script_file: "{{INSTALL_BASE}}/barco_telnet/barco_G62_control.py %i"
|
||||
ansible.builtin.template:
|
||||
src: ./service.j2
|
||||
dest: /lib/systemd/system/barco@.service
|
||||
src: ./controller_script.service.j2
|
||||
dest: /etc/systemd/system/barco@.service
|
||||
- name: enable service
|
||||
ansible.builtin.systemd_service:
|
||||
name: "{{item}}"
|
||||
enabled: true
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
loop:
|
||||
- barco@main.service
|
||||
- barco@side.service
|
||||
|
||||
# Lifti za projektorje (naši releji)
|
||||
- name: template projector motors service
|
||||
when: projector_motors is defined
|
||||
block:
|
||||
- name: template service
|
||||
become: true
|
||||
vars:
|
||||
script_file: "/home/pi/pyServices/projector_motors.py"
|
||||
script_file: "{{INSTALL_BASE}}/projector_motors/projector_motors.py"
|
||||
ansible.builtin.template:
|
||||
src: ./service.j2
|
||||
dest: /lib/systemd/system/projector_motors.service
|
||||
src: ./controller_script.service.j2
|
||||
dest: /etc/systemd/system/projector_motors.service
|
||||
- name: enable service
|
||||
ansible.builtin.systemd_service:
|
||||
name: projector_motors.service
|
||||
enabled: true
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
|
||||
# Power, platna, etc. (TSE relay box)
|
||||
- name: template tse serial box service
|
||||
when: tse_box is defined
|
||||
block:
|
||||
- name: template service
|
||||
- name: template service
|
||||
become: true
|
||||
vars:
|
||||
script_file: "/home/pi/pyServices/tse_serial_controler.py"
|
||||
script_file: "{{INSTALL_BASE}}/tse_serial/tse_serial_controler.py"
|
||||
ansible.builtin.template:
|
||||
src: ./service.j2
|
||||
dest: /lib/systemd/system/tse_box.service
|
||||
src: ./controller_script.service.j2
|
||||
dest: /etc/systemd/system/tse_box.service
|
||||
- name: enable service
|
||||
ansible.builtin.systemd_service:
|
||||
name: tse_box.service
|
||||
enabled: true
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
|
||||
# a-rosso lučke kontroler
|
||||
- name: template lucke service
|
||||
when: lucke is defined
|
||||
block:
|
||||
- name: tmeplate service
|
||||
become: true
|
||||
vars:
|
||||
script_file: "/home/pi/pyServices/luckeControl.py"
|
||||
script_file: "{{INSTALL_BASE}}/lucke/luckeControl.py"
|
||||
ansible.builtin.template:
|
||||
src: ./service.j2
|
||||
dest: /lib/systemd/system/lucke.service
|
||||
src: ./controller_script.service.j2
|
||||
dest: /etc/systemd/system/lucke.service
|
||||
- name: enable service
|
||||
ansible.builtin.systemd_service:
|
||||
name: lucke.service
|
||||
enabled: true
|
||||
state: restarted
|
||||
daemon_reload: true
|
||||
|
||||
|
||||
|
||||
- name: Copy mosqitconfig
|
||||
become: true
|
||||
ansible.builtin.copy:
|
||||
#seuser: root
|
||||
src: ../mosquitto.conf
|
||||
dest: /etc/mosquitto/conf.d
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0644'
|
||||
backup: yes
|
||||
|
||||
|
||||
- name: Build frontend
|
||||
delegate_to: localhost
|
||||
command:
|
||||
chdir: "{{PROJECT_BASE}}/frontend/vju_display/"
|
||||
cmd: "npm run build"
|
||||
|
||||
- name: copy frontend to webroot
|
||||
become: true
|
||||
|
||||
ansible.builtin.copy:
|
||||
src: "{{PROJECT_BASE}}/frontend/vju_display/dist/"
|
||||
dest: /var/www/html/
|
||||
owner: root
|
||||
group: www-data
|
||||
mode: '0755'
|
||||
backup: yes
|
||||
|
||||
- name: daemon reload
|
||||
become: true
|
||||
ansible.builtin.systemd_service:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue