148 lines
4.5 KiB
YAML
148 lines
4.5 KiB
YAML
---
|
|
#--------------------------------------------------------------#
|
|
# Preflight [deepflow_agent_check]
|
|
#--------------------------------------------------------------#
|
|
- name: check deepflow agent mode
|
|
tags: deepflow_agent_check
|
|
assert:
|
|
that:
|
|
- deepflow_agent_mode in ['binary', 'docker', 'k8s']
|
|
fail_msg: "deepflow_agent_mode must be one of: binary, docker, k8s"
|
|
|
|
- name: check deepflow agent grpc endpoint
|
|
tags: deepflow_agent_check
|
|
assert:
|
|
that:
|
|
- deepflow_agent_grpc_endpoint | default('', true) | length > 0
|
|
fail_msg: "deepflow_agent_grpc_endpoint is required"
|
|
|
|
- name: check deepflow agent docker prerequisite
|
|
tags: deepflow_agent_check
|
|
when: deepflow_agent_mode == 'docker'
|
|
block:
|
|
- name: assert docker is enabled for docker agent mode
|
|
assert:
|
|
that:
|
|
- docker_enabled is defined
|
|
- docker_enabled | bool
|
|
fail_msg: "docker_enabled=true is required when deepflow_agent_mode=docker"
|
|
|
|
- name: check docker binary exists for docker agent mode
|
|
command: docker --version
|
|
changed_when: false
|
|
|
|
#--------------------------------------------------------------#
|
|
# Configure [deepflow_agent_conf]
|
|
#--------------------------------------------------------------#
|
|
- name: create deepflow agent directories
|
|
tags: deepflow_agent_conf
|
|
file:
|
|
path: "{{ item }}"
|
|
state: directory
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
loop:
|
|
- "{{ deepflow_agent_stack_dir }}"
|
|
|
|
- name: render deepflow agent environment
|
|
tags: deepflow_agent_conf
|
|
template:
|
|
src: deepflow-agent.env.j2
|
|
dest: "{{ deepflow_agent_env_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: '0640'
|
|
|
|
- name: configure binary deepflow agent
|
|
tags: deepflow_agent_conf
|
|
when: deepflow_agent_mode == 'binary'
|
|
block:
|
|
- name: download deepflow agent binary when url is provided
|
|
get_url:
|
|
url: "{{ deepflow_agent_download_url }}"
|
|
dest: "{{ deepflow_agent_binary_path }}"
|
|
mode: '0755'
|
|
when: deepflow_agent_download_url | default('', true) | length > 0
|
|
|
|
- name: verify deepflow agent binary exists
|
|
stat:
|
|
path: "{{ deepflow_agent_binary_path }}"
|
|
register: deepflow_agent_binary_stat
|
|
|
|
- name: assert binary path exists
|
|
assert:
|
|
that:
|
|
- deepflow_agent_binary_stat.stat.exists
|
|
fail_msg: "deepflow_agent_binary_path does not exist. Set deepflow_agent_download_url or provide an existing binary."
|
|
|
|
- name: render deepflow agent run script
|
|
template:
|
|
src: run-deepflow-agent.sh.j2
|
|
dest: "{{ deepflow_agent_run_script }}"
|
|
owner: root
|
|
group: root
|
|
mode: '0755'
|
|
|
|
- name: install deepflow agent systemd unit
|
|
template:
|
|
src: deepflow-agent.svc.j2
|
|
dest: "{{ systemd_dir }}/deepflow-agent.service"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: configure docker deepflow agent
|
|
tags: deepflow_agent_conf
|
|
when: deepflow_agent_mode == 'docker'
|
|
block:
|
|
- name: render docker deepflow agent compose
|
|
template:
|
|
src: docker-compose.yml.j2
|
|
dest: "{{ deepflow_agent_compose_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: install docker deepflow agent systemd unit
|
|
template:
|
|
src: deepflow-agent-docker.svc.j2
|
|
dest: "{{ systemd_dir }}/deepflow-agent.service"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
- name: configure kubernetes deepflow agent
|
|
tags: deepflow_agent_conf
|
|
when: deepflow_agent_mode == 'k8s'
|
|
block:
|
|
- name: render deepflow agent kubernetes manifest
|
|
template:
|
|
src: deepflow-agent.yaml.j2
|
|
dest: "{{ deepflow_agent_k8s_file }}"
|
|
owner: root
|
|
group: root
|
|
mode: '0644'
|
|
|
|
#--------------------------------------------------------------#
|
|
# Launch [deepflow_agent_launch]
|
|
#--------------------------------------------------------------#
|
|
- name: launch binary/docker deepflow agent
|
|
tags: deepflow_agent_launch
|
|
when: deepflow_agent_mode in ['binary', 'docker']
|
|
block:
|
|
- name: restart deepflow agent systemd service
|
|
systemd:
|
|
name: deepflow-agent
|
|
state: restarted
|
|
enabled: yes
|
|
daemon_reload: yes
|
|
|
|
- name: optionally apply kubernetes manifest
|
|
tags: deepflow_agent_launch
|
|
when:
|
|
- deepflow_agent_mode == 'k8s'
|
|
- deepflow_agent_k8s_apply | bool
|
|
command: kubectl apply -f {{ deepflow_agent_k8s_file }}
|
|
changed_when: true
|