Here is my example. I am using hash_behaviour = merge. Layout: ├── group_vars │ ├── php-fpm │ └── nginx ├── roles │ └── filebeat │ ├── defaults │ │ └── main.yml │ ├── handlers │ │ └── main.yml │ ├── meta │ │ └── main.yml │ ├── README.md │ ├── tasks │ │ ├── configure.yml │ │ ├── install.yml │ │ ├── main.yml │ │ ├── prepare.yml │ │ ├── redhat │ │ │ ├── install.yml │ │ │ └── prepare.yml │ │ └── debian │ │ ├── install.yml │ │ └── prepare.yml │ ├── templates │ │ └── filebeat.yml.j2 │ └── vars | ├── debian.yml │ └── redhat.yml ├── filebeat.yml └── inventory
templates/filebeat.yml.j2: {{ ansible_managed}} {{ filebeat.options | to_nice_yaml }} tasks/configure.yml: --- - name: Deliver Filebeat config template: src: filebeat.yml.j2 dest: "{{ filebeat.config_path }}/filebeat.yml" mode: 0644 backup: yes validate: 'filebeat.sh -configtest -strict.perms=false -c %s' notify: - restart filebeat defaults/main.yml: --- filebeat_version: "{{ version | default('5.3.0') }}" filebeat: # Version of the filebeat server version: "{{ filebeat_version }}" config_path: '/etc/filebeat' options: filebeat: config_dir: /etc/filebeat/conf.d/ prospectors: shipper: logging: to_syslog: true to_files: true files: path: /var/log/filebeat/ name: filebeat.log rotateeverybytes: 10485760 level: info output: logstash: hosts: - logstash.example.org:5044 insecure: true index: filebeat group_vars/php-fpm --- filebeat: options: filebeat: prospectors: - document_type: syslog paths: - /var/log/cron - /var/log/secure - /var/log/messages - /var/log/yum.log input_type: log - document_type: php-fpm paths: - /var/log/php-fpm/error.log input_type: log group_vars/nginx --- filebeat: options: filebeat: prospectors: - document_type: syslog paths: - /var/log/cron - /var/log/secure - /var/log/messages - /var/log/yum.log input_type: log - document_type: nginx-access paths: - /var/log/nginx/access.log input_type: log - document_type: nginx-error paths: - /var/log/nginx/error.log input_type: log - document_type: php-fpm paths: - /var/log/php-fpm/error.log input_type: log inventory: [nginx] nginx_server1 nginx_server2 nginx_server3 [php-fpm] php_server1 php_server2 php_server3 четверг, 6 июля 2017 г., 1:54:11 UTC+3 пользователь Omri написал: > > Hello, > I'm writing an Ansible script that install and configure filebeat (agent > of logstash). > I've finished the installation part. Now i need to add the configuration > part to the script. I pretty new with Ansible and i need some help. > > The user that suppose to run the script will have to select a few groups > from a list, and each group from the list contains a few logs paths, which > need to be added to the filebeat configuration file. > > For example: > Groups to select foe example: redis, nginx, php-fpm > > Redis logs: > /var/log/redis/redis.log > /var/log/redis/sentinel.log > > Nginx logs: > /var/log/nginx/access.log > /var/log/nginx/error.log > > php-fpm logs: > /var/log/php-fpm/error.log > > If the user will select redis and php-fpm, these logs will be added to > filebeat configuration file (on the remote host), which located > on /etc/filebeat/filebeat.yml, under paths section: > > filebeat: > prospectors: > - > paths: > - /var/log/redis/redis.log > - /var/log/redis/sentinel.log > - /var/log/php-fpm/error.log > > > I will really appreciate some help over here. Which of the modules are > most recommended in this case? Code examples? etc. > > Here is what i've done so far, which contain the installation part only. > > - name: Install filebeat > > gather_facts: False > remote_user: myUser > become: yes > vars: > elasticsearch_repo_base_url: " > https://packages.elastic.co/beats/yum/el/$basearch" > elasticsearch_repo_gpg_key_url: " > http://packages.elastic.co/GPG-KEY-elasticsearch" > > tasks: > - name: Importing Elasticsearch public GPG key > rpm_key: > key: "{{ elasticsearch_repo_url }}" > state: present > > - name: Add repository for filebeat > yum_repository: > name: Elastic Beats Repository > description: Elastic Beats Repository > baseurl: "{{ elasticsearch_repo_base_url }}" > gpgkey: "{{ elasticsearch_repo_gpg_key_url }}" > gpgcheck: yes > > - name: Install filebeat > yum: > name: filebeat > state: latest > > - name: Enabling filebeat service on boot and starting > service: > name: filebeat > state: restarted > enabled: yes > > > > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/0fd9df6a-14b1-404d-abcc-780cda30bb62%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.