Skip to content

Commit e9b94cb

Browse files
committed
Add .deb and .rpm Installation and make .tar Installation the Fallback
Split Configuration and Installation into own .yml files Add variables file for OS Specific Values Signed-off-by: Johannes Wagner <[email protected]>
1 parent 4fbb4f5 commit e9b94cb

File tree

9 files changed

+145
-55
lines changed

9 files changed

+145
-55
lines changed

roles/linux/opensearch/handlers/main.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@
88

99
- name: restart opensearch
1010
ansible.builtin.systemd: name=opensearch state=restarted enabled=yes
11+
12+
13+
- name: update repository cache
14+
ansible.builtin.apt:
15+
update_cache: yes
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
- name: OpenSearch Configuration | Copy Configuration File
2+
ansible.builtin.blockinfile:
3+
block: "{{ lookup('template', 'templates/opensearch-{{ cluster_type }}.yml') }}"
4+
dest: "{{ os_conf_dir }}/opensearch.yml"
5+
backup: true
6+
state: present
7+
create: true
8+
marker: "## {mark} opensearch main configuration ##"
9+
owner: "{{ os_user }}"
10+
group: "{{ os_user }}"
11+
mode: 0600
12+
13+
- name: OpenSearch Configuration | Copy jvm.options File for Instance
14+
ansible.builtin.template:
15+
src: jvm.options
16+
dest: "{{ os_conf_dir }}/jvm.options"
17+
owner: "{{ os_user }}"
18+
group: "{{ os_user }}"
19+
mode: 0600
20+
force: true
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
- name: OpenSearch Install | Install from .deb
3+
when: ansible_os_family == 'Debian'
4+
block:
5+
- name: OpenSearch Install | Download GPG Key
6+
ansible.builtin.get_url:
7+
url: https://artifacts.opensearch.org/publickeys/opensearch.pgp
8+
dest: /tmp/opensearch.pgp
9+
10+
- name: OpenSearch Install | Install GPG Key
11+
ansible.builtin.command: gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring /tmp/opensearch.pgp
12+
13+
- name: OpenSearch Install | Deploy deb repository file
14+
ansible.builtin.apt_repository:
15+
repo: deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main
16+
state: present
17+
filename: opensearch-core.list
18+
notify: update repository cache
19+
20+
- name: OpenSearch Install | Flush handlers
21+
meta: flush_handlers
22+
23+
- name: OpenSearch Install | Get installed Packages
24+
package_facts:
25+
manager: "auto"
26+
27+
- name: OpenSearch Install | Unhold opensearch
28+
ansible.builtin.dpkg_selections:
29+
name: opensearch
30+
selection: install
31+
when: "'opensearch' in ansible_facts.packages"
32+
33+
- name: OpenSearch Install | Install OpenSearch
34+
ansible.builtin.apt:
35+
name: opensearch={{ os_version }}
36+
state: present
37+
environment:
38+
OPENSEARCH_INITIAL_ADMIN_PASSWORD: "{{ admin_password }}"
39+
40+
- name: OpenSearch Install | Hold opensearch
41+
ansible.builtin.dpkg_selections:
42+
name: opensearch
43+
selection: hold
44+
45+
- name: OpenSearch Install | Install from .rpm
46+
when: ansible_os_family == 'RedHat'
47+
block:
48+
- name: OpenSearch Install | Install OpenSearch
49+
ansible.builtin.yum:
50+
name: https://artifacts.opensearch.org/releases/bundle/opensearch/{{ os_version }}/opensearch-{{ os_version }}-linux-x64.rpm
51+
state: present
52+
disable_gpg_check: true
53+
54+
55+
- name: OpenSearch Install | Install from tar
56+
when: ansible_os_family != 'Debian' and ansible_os_family != 'RedHat'
57+
block:
58+
- name: OpenSearch Install | Download opensearch {{ os_version }}
59+
ansible.builtin.get_url:
60+
url: "{{ os_download_url }}/{{ os_version }}/opensearch-{{ os_version }}-linux-x64.tar.gz"
61+
dest: "/tmp/opensearch.tar.gz"
62+
register: download
63+
64+
- name: OpenSearch Install | Create opensearch user
65+
ansible.builtin.user:
66+
name: "{{ os_user }}"
67+
state: present
68+
shell: /bin/false
69+
create_home: true
70+
home: "{{ os_home }}"
71+
when: download.changed or iac_enable
72+
73+
- name: OpenSearch Install | Create home directory
74+
ansible.builtin.file:
75+
path: "{{ os_home }}"
76+
state: directory
77+
owner: "{{ os_user }}"
78+
group: "{{ os_user }}"
79+
when: download.changed or iac_enable
80+
81+
- name: OpenSearch Install | Extract the tar file
82+
ansible.builtin.command: chdir=/tmp/ tar -xvzf opensearch.tar.gz -C "{{ os_home }}" --strip-components=1
83+
when: download.changed or iac_enable
84+
85+
- name: OpenSearch Install | create systemd service
86+
ansible.builtin.template:
87+
src: opensearch.service
88+
dest: "{{ systemctl_path }}/opensearch.service"

roles/linux/opensearch/tasks/main.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,14 @@
44
ansible.builtin.hostname:
55
name: "{{ inventory_hostname }}"
66

7+
- name: Include Variables for RedHat
8+
ansible.builtin.include_vars: RedHat.yml
9+
when: ansible_os_family == 'RedHat'
10+
11+
- name: Include Variables for Debian
12+
ansible.builtin.include_vars: Debian.yml
13+
when: ansible_os_family == 'Debian'
14+
715
# Disabling for Amazon Linux 2 as selinux is disabled by default.
816
- name: Disable the selinux
917
ansible.posix.selinux:
@@ -17,7 +25,10 @@
1725
ansible.builtin.import_tasks: tune.yml
1826

1927
- name: Include opensearch installation
20-
ansible.builtin.import_tasks: opensearch.yml
28+
ansible.builtin.import_tasks: installation.yml
29+
30+
- name: Include configuration deployment
31+
ansible.builtin.import_tasks: configuration.yml
2132

2233
- name: Include security plugin for opensearch
2334
ansible.builtin.import_tasks: security.yml

roles/linux/opensearch/tasks/opensearch.yml

Lines changed: 0 additions & 54 deletions
This file was deleted.

roles/linux/opensearch/tasks/security.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@
117117
src: "/tmp/opensearch-nodecerts/config/{{ item }}"
118118
dest: "{{ os_conf_dir }}"
119119
mode: 0600
120+
owner: "{{ os_user }}"
121+
group: root
120122
with_items:
121123
- root-ca.pem
122124
- root-ca.key
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
- name: Include Debian-specific variables
3+
include_vars: "{{ ansible_distribution }}.yml"
4+
when: ansible_os_family == 'Debian'
5+
6+
- name: Include RedHat-specific variables
7+
include_vars: "{{ ansible_os_family }}.yml"
8+
when: ansible_os_family == 'RedHat'
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
os_home: /usr/share/opensearch
2+
os_conf_dir: /etc/opensearch
3+
os_plugin_bin_path: /usr/share/opensearch/bin/opensearch-plugin
4+
os_sec_plugin_conf_path: /etc/opensearch
5+
os_sec_plugin_tools_path: /usr/share/opensearch/plugins/opensearch-security/tools
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
os_home: /usr/share/opensearch
2+
os_conf_dir: /etc/opensearch
3+
os_plugin_bin_path: /usr/share/opensearch/bin/opensearch-plugin
4+
os_sec_plugin_conf_path: /etc/opensearch
5+
os_sec_plugin_tools_path: /usr/share/opensearch/plugins/opensearch-security/tools

0 commit comments

Comments
 (0)