ansible-roles/roles/graylog/tasks/facts.yml
2021-12-01 19:13:34 +01:00

83 lines
2.8 KiB
YAML

---
# Detect if already installed, and if an upgrade is needed
- import_tasks: ../includes/webapps_set_install_mode.yml
vars:
- root_dir: "{{ graylog_root_dir }}"
- version: "{{ graylog_version }}"
tags: graylog
- set_fact: graylog_install_mode={{ (install_mode == 'upgrade' and not graylog_manage_upgrade) | ternary('none',install_mode) }}
tags: graylog
- set_fact: graylog_current_version={{ current_version | default('') }}
tags: graylog
# Try to read mongo admin pass
- name: Check if mongo pass file exists
stat: path=/root/.mongo.pw
register: graylog_mongo_pw
tags: graylog
- when: graylog_mongo_pw.stat.exists and mongo_admin_pass is not defined
block:
- slurp: src=/root/.mongo.pw
register: graylog_mongo_admin_pass
- set_fact: mongo_admin_pass={{ graylog_mongo_admin_pass.content | b64decode | trim }}
tags: graylog
- fail: msg='mongo_admin_pass must be provided'
when: not graylog_mongo_pw.stat.exists and mongo_admin_pass is not defined
tags: graylog
- name: Remove randomly generated admin password
file: path={{ graylog_root_dir }}/meta/admin_pass state=absent
when: graylog_admin_pass is defined
tags: graylog
- name: Remove randomly generated password secret
file: path={{ graylog_root_dir }}/meta/pass_secret state=absent
when: graylog_pass_secret is defined
tags: graylog
- import_tasks: ../includes/get_rand_pass.yml
vars:
- pass_file: "{{ graylog_root_dir }}/meta/pass_secret"
when: graylog_pass_secret is not defined
tags: graylog
- set_fact: graylog_pass_secret={{ rand_pass }}
when: graylog_pass_secret is not defined
tags: graylog
- import_tasks: ../includes/get_rand_pass.yml
vars:
- pass_file: "{{ graylog_root_dir }}/meta/admin_pass"
when: graylog_admin_pass is not defined
tags: graylog
- set_fact: graylog_admin_pass={{ rand_pass }}
when: graylog_admin_pass is not defined
tags: graylog
# If only one mongo url is given and graylog_mongo_pass is not defined,
# parse the password from the url, or generate one
- debug:
msg: |
graylog_mongo_url is '{{ graylog_mongo_url }}'
parsed pass is "{{ graylog_mongo_url[0] | urlsplit('password') }}"
tags: graylog
- name: Parse password from the first mongo URL
set_fact: graylog_mongo_pass={{ graylog_mongo_url[0] | urlsplit('password') | urldecode }}
when:
- graylog_mongo_url | length == 1
- graylog_mongo_pass is not defined
- graylog_mongo_url[0] | urlsplit('password') is string
tags: mongo
# Create a random password for mongo
- block:
- import_tasks: ../includes/get_rand_pass.yml
vars:
- pass_file: "{{ graylog_root_dir }}/meta/mongo_pass"
- set_fact: graylog_mongo_pass={{ rand_pass }}
when:
- graylog_mongo_url | length == 1
- graylog_mongo_pass is not defined
tags: graylog