DEBOPS.OPENSEARCH(5)

NAME
debops.opensearch - Install and manage OpenSearch

SYNOPSIS

debops run [<``debops run options>] [--] service/opensearch`` [--limit group,host,...] [--diff] [--check] [--tags tag1,tag2,...] [--skip-tags tag1,tag2,...] [<ansible-playbook options>] ...

DESCRIPTION

OpenSearch <https://www.opensearch.org/> is a fork of the popular distributed search engine and storage system Elasticsearch (see debops.elasticsearch). Some software vendors, for example Graylog, have switched to OpenSearch because of legal concerns regarding the Server Side Public License under which Elasticsearch is nowadays released.

The debops.opensearch role only implements a subsection of the features supported by debops.elasticsearch. The role is currently only suitable for setting up a local OpenSearch instance without TLS support.

GETTING STARTED

  When to use this role

WARNING: this role can only manage local, unsecured OpenSearch installations. This is useful when running it alongside dependent software like Graylog, which switched from Elasticsearch to OpenSearch due to issues with the new Elasticsearch license <https://www.graylog.org/post/graylog-to-add-support-for-opensearch>.

If you are not encumbered by Elasticsearch's new license, then please consider using the debops.elasticsearch role instead.

  Installation

This role installs OpenSearch from the release tarball. The PGP signature is used to verify the tarball. Directories for configuration and logging are created according to the Filesystem Hierarchy Standard <https://refspecs.linuxfoundation.org/fhs.shtml>. The role is able to upgrade your installation automatically, and can configure OpenSearch, the included JVM, and the systemd service.

  Example inventory

To deploy OpenSearch, you can add the host to the [debops_service_opensearch] Ansible inventory group:

[debops_service_opensearch]
hostname

  Example playbook

If you are using this role without DebOps, here's an example Ansible playbook that uses the debops.opensearch role:

---
- name: Install and manage OpenSearch
  collections: [ 'debops.debops', 'debops.roles01',
                 'debops.roles02', 'debops.roles03' ]
  hosts: [ 'debops_service_opensearch' ]
  become: True
  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'
  roles:
    - role: keyring
      tags: [ 'role::keyring', 'skip::keyring' ]
      keyring__dependent_gpg_keys:
        - '{{ opensearch__keyring__dependent_gpg_keys }}'
    - role: etc_services
      tags: [ 'role::etc_services', 'skip::etc_services' ]
      etc_services__dependent_list:
        - '{{ opensearch__etc_services__dependent_list }}'
    - role: sysctl
      tags: [ 'role::sysctl', 'skip::sysctl' ]
      sysctl__dependent_parameters:
        - '{{ opensearch__sysctl__dependent_parameters }}'
    - role: ferm
      tags: [ 'role::ferm', 'skip::ferm' ]
      ferm__dependent_rules:
        - '{{ opensearch__ferm__dependent_rules }}'
    - role: opensearch
      tags: [ 'role::opensearch', 'skip::opensearch' ]

DEFAULT VARIABLE DETAILS

Some of the debops.opensearch default variables have more extensive configuration than simple strings or lists. Here you can find documentation and examples for them.

  opensearch__configuration

The opensearch__*_configuration variables define the OpenSearch configuration options that are set in the /etc/opensearch/opensearch.yml configuration file. For example:

opensearch__configuration:
  - name: 'cluster.name'
    value: 'example-cluster'
  - name: 'node.name'
    comment: 'My first node'
    value: 'node-1'

Each configuration entry is a list item containing a YAML dictionary. These parameters are supported:

name
    String, mandatory. The name of the OpenSearch configuration entry.

value
    String, mandatory. The value of the OpenSearch configuration entry. Can be a string, an integer, a boolean or a list.

comment
    String or YAML text block, optional. A comment added to the configuration entry.

state
    String, optional. If not specified or present, the entry will be included in the configuration file. If absent, the entry will not be included.

COPYRIGHT
2014-2024, Maciej Delmanowski, Nick Janetakis, Robin Schneider and others