--- # Copyright 2018, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Detect journalbeat host deployment group(s) hosts: all gather_facts: false connection: local tasks: - name: Add hosts to dynamic inventory group group_by: key: journalbeat_deployment_containers parents: all_journalbeat_deployments when: - openstack_release is defined and openstack_release is version('18.0.0', 'lt') - physical_host is defined and physical_host != inventory_hostname - name: Add hosts to dynamic inventory group group_by: key: journalbeat_deployment_hosts parents: all_journalbeat_deployments when: - physical_host is defined and physical_host == inventory_hostname tags: - always - name: Install Journalbeat hosts: all_journalbeat_deployments become: true vars: haproxy_ssl: false vars_files: - vars/variables.yml environment: "{{ deployment_environment_variables | default({}) }}" pre_tasks: - include_tasks: common_task_data_node_hosts.yml tags: - always tasks: - include_tasks: common_task_install_go1.10.1.yml - name: Check for journal directory stat: path: /var/log/journal register: journal_dir - name: Ensure libsystemd-dev is installed apt: name: "{{ item }}" state: "{{ elk_package_state | default('present') }}" update_cache: true register: _apt_task until: _apt_task is success retries: 3 delay: 2 with_items: - git - libsystemd-dev tags: - package_install - name: exit playbook after uninstall meta: end_play when: - elk_package_state | default('present') == 'absent' - ansible_service_mgr == "systemd" - name: create the system group group: name: "journalbeat" state: "present" system: "yes" - name: Create the journalbeat user user: name: "journalbeat" group: "journalbeat" comment: "journalbeat user" shell: "/bin/false" createhome: "yes" home: "/usr/share/journalbeat" - name: Create journalbeat data path file: path: "{{ item }}" state: directory owner: "journalbeat" group: "journalbeat" mode: "0755" with_items: - "/usr/share/journalbeat" - "/var/lib/journalbeat" - "/var/log/journalbeat" - "/etc/journalbeat" - name: Install journalbeat shell: /opt/go1.10.1/go/bin/go get -v github.com/mheese/journalbeat environment: PATH: "{{ ansible_env.PATH }}:/opt/go1.10.1/go/bin" GOPATH: /usr/local - name: Drop journalbeat conf file template: src: "{{ item.src }}" dest: "{{ item.dest }}" with_items: - src: templates/journalbeat.yml.j2 dest: /etc/journalbeat/journalbeat.yml - name: Run the systemd service role include_role: name: systemd_service private: true vars: systemd_service_restart_changed: false systemd_services: - service_name: "journalbeat" execstarts: - /usr/local/bin/journalbeat -c /etc/journalbeat/journalbeat.yml -path.home /usr/share/journalbeat -path.config /etc/journalbeat -path.data /var/lib/journalbeat -path.logs /var/log/journalbeat config_overrides: Service: EnvironmentFile: "-/etc/default/go1.10.1" Unit: Documentation: https://github.com/mheese/journalbeat/blob/master/README.md Wants: network-online.target After: network-online.target - name: Enable and restart journalbeat systemd: name: "journalbeat" enabled: true state: restarted daemon_reload: yes tags: - beat-install - import_playbook: setupJournalbeat.yml