Files
vcr_capture/tasks/service_control.yaml

154 lines
4.3 KiB
YAML

---
###############################################
# lifted from my carputer playbook
# modified to work here
###############################################
###############################################
# 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
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
dest: /etc/systemd/system/service_control.service
mode: 0644
- name: video_capture - service timeout helper files
block:
- name: video_capture - create service_timeout.sh
template:
src: service_timeout.sh
dest: "{{ service_control_folder }}/service_timeout.sh"
mode: 0755
- name: video_capture - create service_timeout.service
template:
src: service_timeout.service
dest: /etc/systemd/system/service_timeout.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
- name: video_capture - service_control api - enable and start service timeoue api
systemd:
name: service_timeout.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
###############################################
# Start service_control_website
###############################################
- name: start service_control_website
when: not refresh_special | bool
block:
- name: set container variables
set_fact:
container_name: "service_control_website"
container_http_port: "8081"
extra_volumes: ""
- name: service_control_website - template config
template:
src: docker-compose-php.yaml
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 }}"
...