--- # Note(decentral1se): please note that the majority of the vars that are # referenced in this play are passed in via --extra-vars definitions in the # functions script - name: Check if internal system variables exists stat: path: "{{ plugin_config_root }}/vars.yml" register: vars_yml - name: Load internal system variables no_log: true when: vars_yml.stat.exists include_vars: file: "{{ plugin_config_root }}/vars.yml" - name: Check if the application config file exists stat: path: "{{ app_config_root }}/config.yml" register: config_yml - name: Load unencrypted configuration variables no_log: true when: config_yml.stat.exists include_vars: file: "{{ app_config_root }}/config.yml" - name: Check if an application vault directory exists stat: path: "{{ app_config_root }}/vault" register: vault_dir - name: Load application encrypted vault variables no_log: true when: vault_dir.stat.exists include_vars: ignore_unknown_extensions: true dir: "{{ app_config_root }}/vault" name: vault extensions: - yml register: vault_include - name: Create the dokku variable dictionary set_fact: dokku: { app: "{{ app }}", mariadb_addr: "dokku-mariadb-{{ app }}", mariadb_user: "mariadb", hostname: "{{ lookup('file', '/home/dokku/HOSTNAME') }}", host: "{{ inventory_hostname }}", } - name: Debug variable dictionaries debug: msg: "{{ item }}" with_items: - "{{ vars }}" when: debug is defined and debug == true # Note(decentral1se): this has to be done like this through the hostvars # interface because of the way Ansible forces us to work here. There is a bug # report out on this: https://github.com/ansible/ansible/issues/36024 - name: Create config variable dictionary set_fact: config: db: "{{ hostvars[dokku.host].db | default([]) }}" env: "{{ hostvars[dokku.host].env | default([]) }}" templates: "{{ hostvars[dokku.host].templates | default([]) }}" vars: "{{ hostvars[dokku.host].vars | default([]) }}" volumes: "{{ hostvars[dokku.host].volumes | default([]) }}" - name: Create vault variable dictionary set_fact: vault: "{{ vault_include.ansible_facts.vault | default([]) }}"