Files
vcr_capture/tasks/service_control.yaml
2025-08-19 11:40:26 -07:00

140 lines
4.0 KiB
YAML

---
###############################################
# lifted directly from my carputer playbook
###############################################
###############################################
# This part sets up python serice control api
###############################################
- name: service control api
block:
# Stop service
- name: video_capture - service_control api - stop service api
systemd:
name: service_control.service
state: stopped
ignore_errors: yes
# Create API Folder
- name: video_capture - service_control api - create api folder
file:
path: "{{ service_control_folder }}"
state: directory
mode: '0755'
# Copy API Code
- name: video_capture - service_control api - copy api code
template:
src: app-service.py.j2
dest: "{{ service_control_folder }}/app.py"
mode: 0644
# Create service_control api service
- name: video_capture - service_control api - create requirement file
copy:
dest: "{{ service_control_folder }}/requirements.txt"
content: |
Flask==2.1.0
pytz
requests
lxml
Werkzeug==2.0
mode: 0644
# build venv
- name: video_capture - service_control api - build venv
pip:
virtualenv: "{{ service_control_folder }}/venv"
requirements: "{{ service_control_folder }}/requirements.txt"
virtualenv_command: python3 -m venv
state: present
# Create service_control api service
- name: video_capture - service_control api - create service file
# vars:
template:
src: service_control.service.j2
dest: /etc/systemd/system/service_control.service
mode: 0644
# daemon reload
- name: video_capture - service_control api - daemon reload
systemd:
daemon_reload: yes
# Enable and start
- name: video_capture - service_control api - enable and start service api
systemd:
name: service_control.service
state: started
enabled: yes
###############################################
# This part sets up serice control website
###############################################
- name: service control web interface
block:
- name: set docker folder variable
set_fact:
service_control_web_folder: "{{ service_control_folder }}/web"
# Create docker Folder
- name: service_control_website - create service_control_web_folder folder
file:
path: "{{ service_control_web_folder }}"
state: directory
mode: '0755'
owner: root
group: root
- name: service_control_website - copy files for docker container
copy:
src: "service_control_api/website/"
dest: "{{ service_control_web_folder }}/html"
mode: 0755
owner: root
group: root
# - name: service_control_website - template index.php
# template:
# src: index-service_control.php.j2
# dest: "{{ service_control_web_folder }}/html/index.php"
# mode: 0644
###############################################
# Start service_control_website
###############################################
# https://unix.stackexchange.com/questions/265704/start-stop-a-systemd-service-at-specific-times
# i can create several conflicting services with various timeouts
- name: start service_control_website
block:
- name: set container variables
set_fact:
container_name: "service_control_website"
container_http_port: "8081"
- name: service_control_website - template config
template:
src: docker-compose-php.yaml.j2
dest: "{{ service_control_web_folder }}/docker-compose.yaml"
mode: 0644
- name: "service_control_website - Start container at 0.0.0.0:{{ container_http_port }}"
shell: "docker-compose -f {{ service_control_web_folder }}/docker-compose.yaml up -d"
register: docker_output
- debug: |
msg="{{ docker_output.stdout_lines }}"
msg="{{ docker_output.stderr_lines }}"
...