initial commit
This commit is contained in:
139
tasks/service_control.yaml
Normal file
139
tasks/service_control.yaml
Normal file
@ -0,0 +1,139 @@
|
||||
---
|
||||
|
||||
###############################################
|
||||
# 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 }}"
|
||||
|
||||
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user