browbeat/ansible/logs/roles/common/tasks/main.yml

89 lines
2.8 KiB
YAML

- name: Check that service is installed
stat:
path: /etc/{{item}}/{{item}}.conf
register: config
with_items: "{{services}}"
- name: Check if service is containerized
shell:
cmd: docker ps | grep {{item.item}}
register: container
when: item.stat.exists
with_items:
- "{{config.results}}"
ignore_errors: true
- name: Set log location (containerized)
set_fact:
log_dir_containerized: /var/log/containers/{{item.0.item}}
register: log_result_containerized
when: item.1.rc == 0 and item.0.stat.exists
with_together:
- "{{config.results}}"
- "{{container.results}}"
- name: Set log location (non-containerized)
set_fact:
log_dir_noncontainerized: /var/log/{{item.0.item}}
register: log_result_noncontainerized
when: item.1.rc != 0 and item.0.stat.exists
with_together:
- "{{config.results}}"
- "{{container.results}}"
- name: make list of log directories (containerized)
set_fact:
log_dir_containerized: "{{ log_result_containerized.results | selectattr('ansible_facts','defined') | map(attribute='ansible_facts.log_dir_containerized') | list }}"
when: item.1.rc == 0 and item.0.stat.exists
with_together:
- "{{config.results}}"
- "{{container.results}}"
- name: make list of log directories (non-containerized)
set_fact:
log_dir_noncontainerized: "{{ log_result_noncontainerized.results | selectattr('ansible_facts','defined') | map(attribute='ansible_facts.log_dir_noncontainerized') | list }}"
when: item.1.rc != 0 and item.0.stat.exists
with_together:
- "{{config.results}}"
- "{{container.results}}"
- name: Check if log folder exists (container)
stat:
path: "{{item}}"
register: logs_path_containerized
with_items:
- "{{log_dir_containerized}}"
when: log_dir_containerized is defined
- name: Check if log folder exists (non-container)
stat:
path: "{{item}}"
register: logs_path_noncontainerized
with_items:
- "{{log_dir_noncontainerized}}"
when: log_dir_noncontainerized is defined
- name: Copy container logs to directory on host
synchronize:
src: "{{item.1.item}}"
dest: /home/{{host_remote_user}}/{{ansible_hostname}}
delegate_to: "{{ inventory_hostname }}"
when: log_dir_containerized is defined and item.0.stat.exists and item.1.stat is defined and item.1.stat.isdir is defined and item.1.stat.isdir
with_together:
- "{{config.results}}"
- "{{logs_path_containerized.results}}"
- name: Copy non-container logs to directory on host
synchronize:
src: "{{item.1.item}}"
dest: /home/{{host_remote_user}}/{{ansible_hostname}}
delegate_to: "{{ inventory_hostname }}"
when: log_dir_noncontainerized is defined and item.0.stat.exists and item.1.stat is defined and item.1.stat.isdir is defined and item.1.stat.isdir
with_together:
- "{{config.results}}"
- "{{logs_path_noncontainerized.results}}"