Merge pull request #75 from LaneCommunityCollege/optional_user

For  #36 - Add support for creating optional elasticsearch user and group
This commit is contained in:
gingerwizard 2016-04-16 12:30:46 +01:00
commit 7d94121017
5 changed files with 35 additions and 1 deletions

View file

@ -221,6 +221,10 @@ If installing Marvel or Watcher, ensure the license plugin is also specified. S
* ```es_user``` - defaults to elasticsearch. * ```es_user``` - defaults to elasticsearch.
* ```es_group``` - defaults to elasticsearch. * ```es_group``` - defaults to elasticsearch.
* ```es_user_id``` - default is undefined.
* ```es_group_id``` - default is undefined.
Both ```es_user_id``` and ```es_group_id``` must be set for the user and group ids to be set.
By default, each node on a host will be installed to use unique pid, plugin, work, data and log directories. These directories are created, using the instance and host name, beneath default locations ] By default, each node on a host will be installed to use unique pid, plugin, work, data and log directories. These directories are created, using the instance and host name, beneath default locations ]
controlled by the following parameters: controlled by the following parameters:

View file

@ -0,0 +1,18 @@
---
#Add the elasticsearch user before installing from packages.
- name: Ensure optional elasticsearch group is created with the correct id.
group:
state: present
name: "{{ es_group }}"
system: yes
gid: "{{ es_group_id }}"
- name: Ensure optional elasticsearch user is created with the correct id.
user:
state: present
name: "{{ es_user }}"
comment: elasticsearch system user
system: yes
createhome: no
uid: "{{ es_user_id }}"
group: "{{ es_group }}"

View file

@ -8,6 +8,10 @@
- debug: msg="Node configuration {{ es_config }} " - debug: msg="Node configuration {{ es_config }} "
- name: Include optional user and group creation.
when: (es_user_id is defined) and (es_group_id is defined)
include: elasticsearch-optional-user.yml
#- name: Include specific Elasticsearch #- name: Include specific Elasticsearch
# include: "elasticsearch-{{ansible_os_family}}.yml" # include: "elasticsearch-{{ansible_os_family}}.yml"

View file

@ -4,7 +4,7 @@
hosts: localhost hosts: localhost
roles: roles:
#expand to all available parameters #expand to all available parameters
- { role: elasticsearch, es_instance_name: "node1", es_data_dirs: ["/opt/elasticsearch/data-1","/opt/elasticsearch/data-2"], es_log_dir: "/opt/elasticsearch/logs", es_work_dir: "/opt/elasticsearch/temp", es_config: {node.name: "node1", cluster.name: "custom-cluster", discovery.zen.ping.unicast.hosts: "localhost:9301", http.port: 9201, transport.tcp.port: 9301, node.data: false, node.master: true, bootstrap.mlockall: true, discovery.zen.ping.multicast.enabled: false } } - { role: elasticsearch, es_instance_name: "node1", es_data_dirs: ["/opt/elasticsearch/data-1","/opt/elasticsearch/data-2"], es_log_dir: "/opt/elasticsearch/logs", es_work_dir: "/opt/elasticsearch/temp", es_user_id: 333, es_group_id: 333, es_config: {node.name: "node1", cluster.name: "custom-cluster", discovery.zen.ping.unicast.hosts: "localhost:9301", http.port: 9201, transport.tcp.port: 9301, node.data: false, node.master: true, bootstrap.mlockall: true, discovery.zen.ping.multicast.enabled: false } }
vars: vars:
es_scripts: false es_scripts: false
es_templates: false es_templates: false

View file

@ -5,6 +5,14 @@ shared_examples 'config::init' do |es_version|
describe user('elasticsearch') do describe user('elasticsearch') do
it { should exist } it { should exist }
end end
describe group('elasticsearch') do
it { should have_gid 333 }
end
describe user('elasticsearch') do
it { should have_uid 333 }
end
describe service('node1_elasticsearch') do describe service('node1_elasticsearch') do
it { should be_running } it { should be_running }