diff --git a/meta/main.yml b/meta/main.yml index 7aac475..cf79def 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -11,7 +11,7 @@ galaxy_info: # - Apache # - CC-BY license: Apache - min_ansible_version: 1.2 + min_ansible_version: 2.0 # # Below are all platforms currently available. Just uncomment # the ones that apply to your role. If you don't see your diff --git a/tasks/main.yml b/tasks/main.yml index c7f7ea7..7dd7b24 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,76 +1,74 @@ --- -- name: ensure hiera datadir - file: - state: directory - path: "{{ hieradata }}/{{ hieraenvironment }}" - owner: root - group: root - mode: 0700 +- block: + - name: ensure hiera datadir + file: + state: directory + path: "{{ hieradata }}/{{ hieraenvironment }}" + owner: root + group: root + mode: 0700 + + - name: ensure hiera datadir - fqdn + file: + state: directory + path: "{{ hieradata }}/{{ hieraenvironment }}/fqdn" + owner: root + group: root + mode: 0700 + + - name: ensure hiera datadir - group + file: + state: directory + path: "{{ hieradata }}/{{ hieraenvironment }}/group" + owner: root + group: root + mode: 0700 + + - name: make file list + puppet_get_hiera_file_list: + fqdn: "{{ ansible_fqdn }}" + groups: "{{ hostvars[inventory_hostname].group_names }}" + delegate_to: localhost + register: hiera_file_paths + + - name: find which files exist + stat: + path: "{{ hieradata }}/{{ hieraenvironment }}/{{ item }}" + register: st + with_items: hiera_file_paths.paths_dict.paths + delegate_to: localhost + + - name: copy hiera files + when: item.1.stat.exists + copy: + src: "{{ hieradata }}/{{ hieraenvironment }}/{{ item.1.item }}" + dest: "{{ hieradata }}/{{ hieraenvironment }}/{{ item.1.item }}" + mode: 0600 + with_together: + - hiera_file_paths.paths_dict.paths + - st.results + + - name: ensure hieradata manifest link is present + file: + src: "{{ hieradata }}" + dest: "{{ manifest_base }}/hieradata" + state: link + when: copy_hieradata is defined and copy_hieradata -- name: ensure hiera datadir - fqdn - file: - state: directory - path: "{{ hieradata }}/{{ hieraenvironment }}/fqdn" - owner: root - group: root - mode: 0700 - when: copy_hieradata is defined and copy_hieradata +- block: + - name: copy puppet modules + synchronize: + src: "{{ manifest_base }}/{{ hieraenvironment }}" + dest: "{{ manifest_base }}" -- name: ensure hiera datadir - group - file: - state: directory - path: "{{ hieradata }}/{{ hieraenvironment }}/group" - owner: root - group: root - mode: 0700 - when: copy_hieradata is defined and copy_hieradata + - name: copy system puppet modules + synchronize: + src: /etc/puppet/modules + dest: /etc/puppet -- name: make file list - puppet_get_hiera_file_list: - fqdn: "{{ ansible_fqdn }}" - groups: "{{ hostvars[inventory_hostname].group_names }}" - when: copy_hieradata is defined and copy_hieradata - delegate_to: localhost - register: hiera_file_paths - -- name: find which files exist - stat: - path: "{{ hieradata }}/{{ hieraenvironment }}/{{ item }}" - register: st - with_items: hiera_file_paths.paths_dict.paths - delegate_to: localhost - when: copy_hieradata is defined and copy_hieradata - -- name: copy hiera files - when: copy_hieradata is defined and copy_hieradata and item.1.stat.exists - copy: - src: "{{ hieradata }}/{{ hieraenvironment }}/{{ item.1.item }}" - dest: "{{ hieradata }}/{{ hieraenvironment }}/{{ item.1.item }}" - mode: 0600 - with_together: - - hiera_file_paths.paths_dict.paths - - st.results - -- name: copy puppet modules - synchronize: - src: "{{ manifest_base }}/{{ hieraenvironment }}" - dest: "{{ manifest_base }}" when: copy_puppet is defined and copy_puppet and manifest_base is defined -- name: copy system puppet modules - synchronize: - src: /etc/puppet/modules - dest: /etc/puppet - when: copy_puppet is defined and copy_puppet and manifest_base is defined - -- name: ensure hieradata manifest link is present - file: - src: "{{ hieradata }}" - dest: "{{ manifest_base }}/hieradata" - state: link - when: copy_hieradata is defined and copy_hieradata - - name: run puppet puppet: puppetmaster: "{{ puppetmaster|default(omit) }}" @@ -79,28 +77,27 @@ facts: "{{ facts|default(omit) }}" facter_basename: "{{ facter_basename|default(omit) }}" -- name: find logs - shell: "ls -tr /var/lib/puppet/reports/{{ ansible_fqdn }}/*_puppetdb.json" - register: files - when: puppetdb is defined +- block: + - name: find logs + shell: "ls -tr /var/lib/puppet/reports/{{ ansible_fqdn }}/*_puppetdb.json" + register: files -- name: set log filename - set_fact: puppet_logfile="{{ files.stdout_lines|sort|last }}" - when: puppetdb is defined + - name: set log filename + set_fact: puppet_logfile="{{ files.stdout_lines|sort|last }}" -- name: fetch file - synchronize: - mode: pull - src: "{{ puppet_logfile }}" - dest: /var/lib/puppet/reports/{{ ansible_fqdn }} - when: puppetdb is defined + - name: fetch file + synchronize: + mode: pull + src: "{{ puppet_logfile }}" + dest: /var/lib/puppet/reports/{{ ansible_fqdn }} + + - name: post facts + puppet_post_puppetdb: + puppetdb: "{{ puppetdb }}" + hostvars: "{{ hostvars[inventory_hostname] }}" + logfile: "{{ puppet_logfile }}" + whoami: "{{ ansible_fqdn }}" + delegate_to: localhost + connection: local -- name: post facts - puppet_post_puppetdb: - puppetdb: "{{ puppetdb }}" - hostvars: "{{ hostvars[inventory_hostname] }}" - logfile: "{{ puppet_logfile }}" - whoami: "{{ ansible_fqdn }}" - delegate_to: localhost - connection: local when: puppetdb is defined