cosmostat has working drive health dashboard
This commit is contained in:
@ -5,22 +5,10 @@
|
||||
api_bind_ip: "{{ cosmostat_server_ip }}"
|
||||
|
||||
- name: Cosmostat - API - Stop Service
|
||||
become: true
|
||||
become_user: "{{ service_user }}"
|
||||
ignore_errors: yes
|
||||
systemd:
|
||||
name: "{{ api_service_name }}.service"
|
||||
state: stopped
|
||||
scope: user
|
||||
|
||||
# create service working folder
|
||||
- name: Cosmostat - API - create cosmos user systemd folder
|
||||
file:
|
||||
path: "{{ user_service_folder }}"
|
||||
state: directory
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: '0755'
|
||||
|
||||
- name: Cosmostat - API - copy api files
|
||||
copy:
|
||||
@ -30,7 +18,9 @@
|
||||
group: "{{ service_user }}"
|
||||
mode: 0755
|
||||
|
||||
# skip this when updating to keep any settings
|
||||
- name: "Cosmostat - API - template cosmostat_settings.yaml"
|
||||
when: not update_pipeline | bool
|
||||
template:
|
||||
src: cosmostat_settings.yaml
|
||||
dest: "{{ api_service_folder }}/cosmostat_settings.yaml"
|
||||
@ -43,24 +33,18 @@
|
||||
service_name: "{{ api_service_name }}"
|
||||
service_working_folder: "{{ api_service_folder }}"
|
||||
service_exe: "{{ api_service_exe }}"
|
||||
service_group: "{{ service_user }}"
|
||||
extra_options: ""
|
||||
extra_service_options: "RestartSec=5"
|
||||
template:
|
||||
src: "service_template.service"
|
||||
dest: "{{ user_service_folder }}/{{ api_service_name }}.service"
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
dest: "/etc/systemd/system/{{ api_service_name }}.service"
|
||||
mode: 0644
|
||||
|
||||
- name: Cosmostat - API - Daemon Reload, Start, Enable
|
||||
become: true
|
||||
become_user: "{{ service_user }}"
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
name: "{{ api_service_name }}.service"
|
||||
state: started
|
||||
enabled: yes
|
||||
scope: user
|
||||
|
||||
...
|
||||
@ -15,6 +15,7 @@
|
||||
name: "cosmostat-dash"
|
||||
tag: latest
|
||||
state: absent
|
||||
ignore_errors: yes
|
||||
|
||||
# Create web Folder
|
||||
- name: "Cosmostat - Web - create {{ service_control_docker_folder }}"
|
||||
@ -39,42 +40,17 @@
|
||||
dest: "{{ service_control_docker_folder }}/docker-compose.yaml"
|
||||
mode: 0644
|
||||
|
||||
# skip this when updating to keep any settings
|
||||
- name: "Cosmostat - Web - template cosmostat_settings.yaml"
|
||||
when: not update_pipeline | bool
|
||||
template:
|
||||
src: cosmostat_settings.yaml
|
||||
dest: "{{ service_control_docker_folder }}/cosmostat_settings.yaml"
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: 0644
|
||||
|
||||
#######################
|
||||
# configure as server
|
||||
- name: Cosmostat - Web - Configure Server Dashboard
|
||||
when: cosmostat_server | bool
|
||||
block:
|
||||
|
||||
- name: Cosmostat - Server Dashboard - replace index.php
|
||||
copy:
|
||||
src: server/server.php
|
||||
dest: "{{ service_control_docker_folder }}/web/html/index.php"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Server Dashboard - delete redis.js
|
||||
ansible.builtin.file:
|
||||
path: "{{ service_control_docker_folder }}/web/html/src/redis.js"
|
||||
state: absent
|
||||
|
||||
- name: Cosmostat - Server Dashboard - copy system_metrics.js
|
||||
copy:
|
||||
src: server/system_metrics.js
|
||||
dest: "{{ service_control_docker_folder }}/web/html/src/system_metrics.js"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Web - Start containers
|
||||
- name: Cosmostat - Web - Start container
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ service_control_docker_folder }}"
|
||||
state: present
|
||||
|
||||
116
tasks/init.yaml
116
tasks/init.yaml
@ -10,21 +10,24 @@
|
||||
x64_arch: false
|
||||
|
||||
# package handler
|
||||
- name: Cosmostat - Init - Get installed package list
|
||||
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_lines
|
||||
- cosmostat_packages_item | length > 0
|
||||
apt:
|
||||
name:
|
||||
- "{{ cosmostat_packages_item }}"
|
||||
state: present
|
||||
loop: "{{ cosmostat_packages }}"
|
||||
loop_control:
|
||||
loop_var: cosmostat_packages_item
|
||||
- name: server user and folder handlers
|
||||
when: not quick_refresh | bool
|
||||
block:
|
||||
- name: Cosmostat - Init - Get installed package list
|
||||
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_lines
|
||||
- cosmostat_packages_item | length > 0
|
||||
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 - Check for docker network
|
||||
@ -32,7 +35,9 @@
|
||||
register: docker_network_register
|
||||
|
||||
- name: Cosmostat - Init - Run Network Handlers
|
||||
when: docker_network_register.stdout | int == 0
|
||||
when:
|
||||
- docker_network_register.stdout | int == 0
|
||||
- not quick_refresh | bool
|
||||
block:
|
||||
|
||||
- name: Cosmostat - Init - Set Up docker network x64
|
||||
@ -47,40 +52,44 @@
|
||||
when: not x64_arch | bool
|
||||
shell: "docker network create --driver bridge --subnet {{ docker_subnet }} cosmostat_net"
|
||||
|
||||
# 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"
|
||||
- name: server user and folder handlers
|
||||
when: not quick_refresh | bool
|
||||
block:
|
||||
# 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"
|
||||
|
||||
# allow user services to "linger"
|
||||
- name: Cosmostat - Init - cosmos user enable linger
|
||||
shell: "loginctl enable-linger {{ service_user }}"
|
||||
register: user_linger
|
||||
# allow user services to "linger"
|
||||
- name: Cosmostat - Init - cosmos user enable linger
|
||||
shell: "loginctl enable-linger {{ service_user }}"
|
||||
register: user_linger
|
||||
|
||||
# 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 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 user service folder
|
||||
file:
|
||||
path: "{{ user_service_folder }}"
|
||||
state: directory
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: '0755'
|
||||
# create user service folder
|
||||
- name: Cosmostat - Init - create cosmostat user 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
|
||||
when: not quick_refresh | bool
|
||||
block:
|
||||
|
||||
- name: "Cosmostat - Init - create python venv folder at {{ venv_folder }}"
|
||||
@ -108,4 +117,23 @@
|
||||
virtualenv_command: python3 -m venv
|
||||
state: present
|
||||
|
||||
# remove web containers if disable_local_dashboard
|
||||
- name: Cosmostat - Init - container handler
|
||||
when: disable_local_dashboard | bool
|
||||
block:
|
||||
|
||||
- name: Cosmostat - Init - stop containers
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ service_control_docker_folder }}"
|
||||
state: stopped
|
||||
ignore_errors: true
|
||||
|
||||
- name: Cosmostat - Init - Remove Cosmostat Image
|
||||
community.docker.docker_image:
|
||||
name: "cosmostat-dash"
|
||||
tag: latest
|
||||
state: absent
|
||||
ignore_errors: true
|
||||
|
||||
|
||||
...
|
||||
@ -1,15 +1,15 @@
|
||||
---
|
||||
|
||||
# refresh when refresh
|
||||
#- name: Quick refresh
|
||||
# when: refresh_special | bool
|
||||
# set_fact:
|
||||
# quick_refresh: true
|
||||
# new big dashboard test
|
||||
#- name: MC Vizz
|
||||
# include_tasks: vizz.yaml
|
||||
|
||||
# initializa environment
|
||||
- name: Initialize Environment
|
||||
when: not quick_refresh | bool
|
||||
include_tasks: init.yaml
|
||||
- name: disable
|
||||
when: false
|
||||
block:
|
||||
# initialize environment
|
||||
- name: Initialize Environment
|
||||
include_tasks: init.yaml
|
||||
|
||||
# set up API
|
||||
- name: Build API
|
||||
@ -17,7 +17,9 @@
|
||||
|
||||
# set up web stack
|
||||
- name: Build Web Dashboard
|
||||
when: not disable_local_dashboard | bool
|
||||
when:
|
||||
- not disable_local_dashboard | bool
|
||||
- not update_pipeline | bool
|
||||
include_tasks: docker.yaml
|
||||
|
||||
...
|
||||
@ -1,25 +0,0 @@
|
||||
---
|
||||
# this will be ran to install the server dashboard at root
|
||||
|
||||
- name: Cosmostat - Server Dashboard - replace index.php
|
||||
copy:
|
||||
src: server/server.php
|
||||
dest: "{{ service_control_web_folder }}/html/index.php"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Server Dashboard - delete redis.js
|
||||
ansible.builtin.file:
|
||||
path: "{{ service_control_web_folder }}/html/src/redis.js"
|
||||
state: absent
|
||||
|
||||
- name: Cosmostat - Server Dashboard - copy system_metrics.js
|
||||
copy:
|
||||
src: server/system_metrics.js
|
||||
dest: "{{ service_control_web_folder }}/html/src/system_metrics.js"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
...
|
||||
55
tasks/vizz.yaml
Normal file
55
tasks/vizz.yaml
Normal file
@ -0,0 +1,55 @@
|
||||
---
|
||||
###############################################
|
||||
# Full MC-Vizz Dashboard
|
||||
###############################################
|
||||
|
||||
- name: Cosmostat - Web - stop containers
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ service_control_vizz_folder }}"
|
||||
state: "{{ 'stopped' if quick_refresh | bool else 'absent' }}"
|
||||
ignore_errors: yes
|
||||
|
||||
# Create web Folder
|
||||
- name: "Cosmostat - Web - create {{ service_control_vizz_folder }}"
|
||||
file:
|
||||
path: "{{ service_control_vizz_folder }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Web - copy web files
|
||||
copy:
|
||||
src: "vizz/docker/"
|
||||
dest: "{{ service_control_vizz_folder }}/"
|
||||
mode: 0755
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
|
||||
- name: Cosmostat - Web - template docker-compose.yaml
|
||||
template:
|
||||
src: docker-compose-vizz.yaml
|
||||
dest: "{{ service_control_vizz_folder }}/docker-compose.yaml"
|
||||
mode: 0644
|
||||
|
||||
# skip this when updating to keep any settings
|
||||
- name: "Cosmostat - Web - template cosmostat_settings.yaml"
|
||||
when: not update_pipeline | bool
|
||||
template:
|
||||
src: cosmostat_settings.yaml
|
||||
dest: "{{ service_control_vizz_folder }}/cosmostat_settings.yaml"
|
||||
owner: "{{ service_user }}"
|
||||
group: "{{ service_user }}"
|
||||
mode: 0644
|
||||
|
||||
- name: Cosmostat - Web - Start container
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ service_control_vizz_folder }}"
|
||||
state: present
|
||||
build: "{{ 'always' if not quick_refresh | bool else 'never' }}"
|
||||
register: docker_output
|
||||
- debug: |
|
||||
msg="{{ docker_output.actions }}"
|
||||
|
||||
|
||||
...
|
||||
Reference in New Issue
Block a user