Cosmostat Init Commit
This commit is contained in:
112
tasks/init.yaml
Normal file
112
tasks/init.yaml
Normal file
@ -0,0 +1,112 @@
|
||||
---
|
||||
|
||||
- name: Cosmostat - Init - Get installed package list
|
||||
when: dpkg_output is undefined
|
||||
shell: "dpkg --list | grep ii | awk '{print $2}'"
|
||||
register: dpkg_output
|
||||
|
||||
- name: Cosmostat - Init - Install Prereq Packages
|
||||
when: cosmostat_packages_item not in dpkg_output.stdout
|
||||
apt:
|
||||
name:
|
||||
- "{{ cosmostat_packages_item }}"
|
||||
state: present
|
||||
loop: "{{ cosmostat_packages }}"
|
||||
loop_control:
|
||||
loop_var: cosmostat_packages_item
|
||||
|
||||
# docker network for cosmostat service
|
||||
- name: Cosmostat - Init - Set Up docker network
|
||||
community.docker.docker_network:
|
||||
name: "cosmostat_net"
|
||||
driver: bridge
|
||||
ipam_config:
|
||||
- subnet: "{{ docker_subnet }}"
|
||||
# - gateway: "{{ docker_gateway }}"
|
||||
|
||||
# allow service_user to sudo lshw without a password
|
||||
- name: Cosmostat - Init - cosmos user sudoers file creation
|
||||
copy:
|
||||
dest: "/etc/sudoers.d/cosmostat"
|
||||
content: "{{ cosmostat_sudoers_content }}"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0600
|
||||
|
||||
# create service working folder
|
||||
- name: Cosmostat - Init - create cosmostat service folder
|
||||
file:
|
||||
path: "{{ service_folder }}"
|
||||
state: directory
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: '0755'
|
||||
|
||||
# create user service folder
|
||||
- name: Cosmostat - Init - create cosmostat service folder
|
||||
file:
|
||||
path: "{{ user_service_folder }}"
|
||||
state: directory
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: '0755'
|
||||
|
||||
# Create python service venv
|
||||
- name: Cosmostat - Init - Build Python Environment
|
||||
block:
|
||||
|
||||
- name: "Cosmostat - Init - create python venv folder at {{ venv_folder }}"
|
||||
file:
|
||||
path: "{{ venv_folder }}"
|
||||
state: directory
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Cosmostat - Init - create python venv requirement file
|
||||
copy:
|
||||
dest: "{{ venv_folder }}/requirements.txt"
|
||||
content: "{{ cosmostat_venv_packages }}"
|
||||
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: 0644
|
||||
|
||||
- name: Cosmostat - Init - build python venv
|
||||
become_user: "{{ service_user }}"
|
||||
pip:
|
||||
virtualenv: "{{ venv_folder }}"
|
||||
requirements: "{{ venv_folder }}/requirements.txt"
|
||||
virtualenv_command: python3 -m venv
|
||||
state: present
|
||||
|
||||
# create node.js docker container for web dashboard
|
||||
- name: node.js server container handler
|
||||
block:
|
||||
|
||||
- name: Cosmostat - Init - node.js - copy server files
|
||||
copy:
|
||||
src: "web/node_server"
|
||||
dest: "{{ service_control_web_folder }}/"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Init - node.js - build docker container
|
||||
community.docker.docker_image_build:
|
||||
name: ws_node
|
||||
tag: latest
|
||||
rebuild: always
|
||||
path: "{{ service_control_web_folder }}/node_server"
|
||||
dockerfile: Dockerfile
|
||||
labels:
|
||||
ws_node: "true"
|
||||
|
||||
- name: Cosmostat - Init - node.js - Prune old containers
|
||||
community.docker.docker_prune:
|
||||
containers: true
|
||||
containers_filters:
|
||||
label:
|
||||
ws_node: "true"
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user