140 lines
4.0 KiB
YAML
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 }}"
|
|
|
|
|
|
|
|
...
|