110 lines
3.1 KiB
YAML
110 lines
3.1 KiB
YAML
---
|
|
# get arch
|
|
- name: Cosmostat - Init - Check CPU Arch
|
|
shell: "dpkg --print-architecture"
|
|
register: cpu_architecture_output
|
|
|
|
- name: Cosmostat - Init - Set x64_arch variable
|
|
when: "'arm64' in cpu_architecture_output.stdout"
|
|
set_fact:
|
|
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
|
|
|
|
# docker network for cosmostat service
|
|
- name: Cosmostat - Init - Check for docker network
|
|
shell: "ip -o -4 ad | grep {{ docker_gateway }} | wc -l"
|
|
register: docker_network_register
|
|
|
|
- name: Cosmostat - Init - Run Network Handlers
|
|
when: docker_network_register.stdout | int == 0
|
|
block:
|
|
|
|
- name: Cosmostat - Init - Set Up docker network x64
|
|
when: x64_arch | bool
|
|
community.docker.docker_network:
|
|
name: "cosmostat_net"
|
|
driver: bridge
|
|
ipam_config:
|
|
- subnet: "{{ docker_subnet }}"
|
|
|
|
- name: Cosmostat - Init - Set Up docker network arm64
|
|
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"
|
|
|
|
# allow user services to "linger"
|
|
- name: Cosmostat - Init - cosmos user enable linger
|
|
shell: "loginctl enable-linger {{ service_user }}"
|
|
|
|
# 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 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
|
|
|
|
... |