--- - 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 }}" # 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 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" ...