diff --git a/playbook/linux/elastic/install-elasticsearch.yml b/playbook/linux/elastic/install-elasticsearch.yml index 3d17d2b..acaf766 100644 --- a/playbook/linux/elastic/install-elasticsearch.yml +++ b/playbook/linux/elastic/install-elasticsearch.yml @@ -14,6 +14,7 @@ - name: Install apt-transport-https apt: name: apt-transport-https + - name: Add Elastic Repo become: true copy: @@ -43,6 +44,7 @@ line: 'cluster.name: elastic-DMI01' backup: yes + # We define the name of the host we are working on - name: Config - node.name become: true lineinfile: @@ -51,6 +53,7 @@ insertafter: '#node.name: node-1' line: "node.name: {{ ansible_eno1.ipv4.address }}" + # Allow 9200 so we can access it over the network - name: Allow port 9200 though UFW become: true ufw: diff --git a/playbook/linux/elastic/install-kibana.yml b/playbook/linux/elastic/install-kibana.yml index e742434..2323363 100644 --- a/playbook/linux/elastic/install-kibana.yml +++ b/playbook/linux/elastic/install-kibana.yml @@ -3,56 +3,81 @@ hosts: elastic tasks: - - name: Install Elastic GPG Key - become: true - apt_key: - url: "https://artifacts.elastic.co/GPG-KEY-elasticsearch" - state: present - id: 46095ACC8548582C1A2699A9D27D666CD88E42B4 + - name: Install Elastic GPG Key + become: true + apt_key: + url: "https://artifacts.elastic.co/GPG-KEY-elasticsearch" + state: present + id: 46095ACC8548582C1A2699A9D27D666CD88E42B4 - - name: Install apt-transport-https - apt: - name: apt-transport-https + - name: Install apt-transport-https + apt: + name: apt-transport-https - - name: Add Elastic Repo - become: true - copy: - src: elastic-7.x.list - dest: /etc/apt/sources.list.d/ - backup: yes + - name: Add Elastic Repo + become: true + copy: + src: elastic-7.x.list + dest: /etc/apt/sources.list.d/ + backup: yes - - name: Update Packages - become: true - apt: - update_cache: true + - name: Update Packages + become: true + apt: + update_cache: true - - name: Install kibana - become: true - apt: - name: kibana + - name: Install kibana + become: true + apt: + name: kibana - - name: Update kibana config - become: true - copy: - src: kibana.yml - dest: /etc/kibana/ - backup: yes - - name: Allow port 5601 - become: true - ufw: - rule: allow - port: 5601 + - name: Config - Server.Port 5601 + become: true + lineinfile: + path: /etc/kibana/kibana.yml + regex: '^server.port' + insertafter: '#server.port: 5601' + line: 'server.port: 5601' + backup: yes - - name: Service daemon reload - become: true - systemd: - daemon_reload: yes - - name: Start Kibana - become: true - systemd: - name: kibana.service - enabled: yes - state: started + - name: Config - Server.host + become: true + lineinfile: + path: /etc/kibana/kibana.yml + regex: '^server.host' + insertafter: '#server.host' + line: 'server.host: {{ ansible_eno1.ipv4.address }}' + + - name: Config - elasticsearch.hosts + become: true + lineinfile: + path: /etc/kibana/kibana.yml + regex: '^elasticsearch.hosts' + insertafter: '#elasticsearch.hosts:' + line: 'elasticsearch.hosts: ["http://localhost:9200"]' + + - name: Allow port 5601 + become: true + ufw: + rule: allow + port: 5601 + + - name: systemd - daemon reload + become: true + systemd: + daemon_reload: yes + + - name: systemd - enable Kibana on startup + become: true + systemd: + name: kibana + enabled: yes + + - name: systemd - restart Kibana + become: true + systemd: + name: kibana + state: restarted diff --git a/playbook/linux/elastic/install-metricbeat.yml b/playbook/linux/elastic/install-metricbeat.yml new file mode 100644 index 0000000..22fdbb2 --- /dev/null +++ b/playbook/linux/elastic/install-metricbeat.yml @@ -0,0 +1,19 @@ + +- name: Install Metricbeat + hosts: elastic + + tasks: + - name: Download metricbeat deb + get_url: + url: 'https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.0.0-amd64.deb' + dest: /tmp/metricbeat.deb + + - name: Install metricbeat + become: true + apt: + deb: /tmp/metricbeat.deb + + - name: enable modules + + + - name: config where to send information diff --git a/playbook/linux/elastic/kibana.yml b/playbook/linux/elastic/kibana.yml deleted file mode 100644 index 366f247..0000000 --- a/playbook/linux/elastic/kibana.yml +++ /dev/null @@ -1,113 +0,0 @@ -# Kibana is served by a back end server. This setting specifies the port to use. -server.port: 5601 - -# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values. -# The default is 'localhost', which usually means remote machines will not be able to connect. -# To allow connections from remote users, set this parameter to a non-loopback address. -server.host: "192.168.0.173" - -# Enables you to specify a path to mount Kibana at if you are running behind a proxy. -# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath -# from requests it receives, and to prevent a deprecation warning at startup. -# This setting cannot end in a slash. -#server.basePath: "" - -# Specifies whether Kibana should rewrite requests that are prefixed with -# `server.basePath` or require that they are rewritten by your reverse proxy. -# This setting was effectively always `false` before Kibana 6.3 and will -# default to `true` starting in Kibana 7.0. -#server.rewriteBasePath: false - -# The maximum payload size in bytes for incoming server requests. -#server.maxPayloadBytes: 1048576 - -# The Kibana server's name. This is used for display purposes. -#server.name: "your-hostname" - -# The URLs of the Elasticsearch instances to use for all your queries. -elasticsearch.hosts: ["http://localhost:9200"] - -# When this setting's value is true Kibana uses the hostname specified in the server.host -# setting. When the value of this setting is false, Kibana uses the hostname of the host -# that connects to this Kibana instance. -#elasticsearch.preserveHost: true - -# Kibana uses an index in Elasticsearch to store saved searches, visualizations and -# dashboards. Kibana creates a new index if the index doesn't already exist. -#kibana.index: ".kibana" - -# The default application to load. -#kibana.defaultAppId: "home" - -# If your Elasticsearch is protected with basic authentication, these settings provide -# the username and password that the Kibana server uses to perform maintenance on the Kibana -# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which -# is proxied through the Kibana server. -#elasticsearch.username: "user" -#elasticsearch.password: "pass" - -# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively. -# These settings enable SSL for outgoing requests from the Kibana server to the browser. -#server.ssl.enabled: false -#server.ssl.certificate: /path/to/your/server.crt -#server.ssl.key: /path/to/your/server.key - -# Optional settings that provide the paths to the PEM-format SSL certificate and key files. -# These files validate that your Elasticsearch backend uses the same key files. -#elasticsearch.ssl.certificate: /path/to/your/client.crt -#elasticsearch.ssl.key: /path/to/your/client.key - -# Optional setting that enables you to specify a path to the PEM file for the certificate -# authority for your Elasticsearch instance. -#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ] - -# To disregard the validity of SSL certificates, change this setting's value to 'none'. -#elasticsearch.ssl.verificationMode: full - -# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of -# the elasticsearch.requestTimeout setting. -#elasticsearch.pingTimeout: 1500 - -# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value -# must be a positive integer. -#elasticsearch.requestTimeout: 30000 - -# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side -# headers, set this value to [] (an empty list). -#elasticsearch.requestHeadersWhitelist: [ authorization ] - -# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten -# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration. -#elasticsearch.customHeaders: {} - -# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable. -#elasticsearch.shardTimeout: 30000 - -# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying. -#elasticsearch.startupTimeout: 5000 - -# Logs queries sent to Elasticsearch. Requires logging.verbose set to true. -#elasticsearch.logQueries: false - -# Specifies the path where Kibana creates the process ID file. -#pid.file: /var/run/kibana.pid - -# Enables you specify a file where Kibana stores log output. -#logging.dest: stdout - -# Set the value of this setting to true to suppress all logging output. -#logging.silent: false - -# Set the value of this setting to true to suppress all logging output other than error messages. -#logging.quiet: false - -# Set the value of this setting to true to log all events, including system usage information -# and all requests. -#logging.verbose: false - -# Set the interval in milliseconds to sample system and process performance -# metrics. Minimum is 100ms. Defaults to 5000. -#ops.interval: 5000 - -# Specifies locale to be used for all localizable strings, dates and number formats. -#i18n.locale: "en"