Commit 709cdd1b by Szeberényi Imre

agentdriver

parent 32f04dbb
- hosts: all
gather_facts: false
vars:
# Optional: if you want to run the whole play as 'cloud', drop become
ansible_user: cloud
roles:
- role: agentdriver
---
- name: systemd daemon-reload
ansible.builtin.systemd:
daemon_reload: yes
become: yes
- name: restart agentdriver
ansible.builtin.systemd:
name: "{{ agentdriver_systemd_service }}"
state: restarted
enabled: yes
become: yes
---
# AgentDriver systemd-only deployment
- name: Ensure base dir exists (owned by app user)
ansible.builtin.file:
path: "{{ agentdriver_base_dir }}"
state: directory
owner: "{{ agentdriver_app_user }}"
group: "{{ agentdriver_app_user }}"
mode: "0755"
- name: Ensure repo dir exists (owned by app user)
ansible.builtin.file:
path: "{{ agentdriver_base_dir }}"
state: directory
owner: "{{ agentdriver_app_user }}"
group: "{{ agentdriver_app_user }}"
mode: "0755"
- name: Checkout repository
ansible.builtin.git:
repo: "{{ agentdriver_repo_name }}"
dest: "{{ agentdriver_base_dir }}"
version: "{{ agentdriver_repo_revision }}"
update: "{{ agentdriver_git_update | bool }}"
accept_hostkey: yes
become: yes
become_user: "{{ agentdriver_app_user }}"
tags: [ 'git' ]
- name: Create Python venv
pip:
name: pip
state: latest
virtualenv: "{{ agentdriver_venv_dir }}"
virtualenv_python: python3.9
- name: Install pip requirements into venv
pip:
requirements: "{{ agentdriver_repo_dir }}/requirements/install_first.txt"
virtualenv: "{{ agentdriver_venv_dir }}"
virtualenv_python: python3.9
- name: Install Python requirements into venv
pip:
requirements: "{{ agentdriver_repo_dir }}/requirements/base.txt"
virtualenv: "{{ agentdriver_venv_dir }}"
virtualenv_python: python3.9
- name: Bootstrap pip/setuptools/wheel (pinned first stage)
ansible.builtin.pip:
name: "{{ agentdriver_pip_bootstrap }}"
virtualenv: "{{ agentdriver_venv_dir }}"
virtualenv_python: python3.9
state: present
become: yes
become_user: "{{ agentdriver_app_user }}"
tags: [ 'pip' ]
- name: Install Python requirements
ansible.builtin.pip:
requirements: "{{ agentdriver_requirements_file }}"
virtualenv: "{{ agentdriver_venv_dir }}"
virtualenv_python: python3.9
become: yes
become_user: "{{ agentdriver_app_user }}"
tags: [ 'deps' ]
- name: copy service
ansible.builtin.copy:
src: "{{ agentdriver_repo_dir }}/miscellaneous/agentdriver.service"
dest: /etc/systemd/system/agentdriver.service
owner: root
group: root
mode: "0644"
become: yes
notify: systemd daemon-reload
- name: restart agentdriver
ansible.builtin.systemd:
name: monitor-client
enabled: true
state: started
become: yes
[Unit]
Description=AgentDriver Service
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User={{ agentdriver_app_user }}
Group={{ agentdriver_app_user }}
WorkingDirectory={{ agentdriver_app_dir }}
Environment=PYTHONUNBUFFERED=1
ExecStart={{ agentdriver_exec_start }}
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
# Default variables for the agentdriver role
agentdriver_repo_name: "https://git.ik.bme.hu/circle3/agentdriver.git"
agentdriver_repo_revision: "python3.6"
agentdriver_base_dir: "/home/{{ agentdriver_app_user }}/agentdriver"
agentdriver_repo_dir: "/home/{{ agentdriver_app_user }}/agentdriver"
agentdriver_venv_dir: "/home/{{ agentdriver_app_user }}/.virtualenvs/agentdriver"
# Pin pip/setuptools/wheel first (Celery 4-friendly pip<24.1)
agentdriver_pip_bootstrap:
- "pip<24.1"
- "setuptools>=58,<70"
- "wheel"
# Requirements file path inside repo
agentdriver_requirements_file: "{{ agentdriver_base_dir }}/requirements/{{ deployment_type }}.txt"
# Systemd service name
agentdriver_systemd_service: "agentdriver.service"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment