diff --git a/README.md b/README.md index 686adbe6..d94ecd80 100644 --- a/README.md +++ b/README.md @@ -122,6 +122,8 @@ A more complex example: - plugin: marvel-agent - plugin: lmenezes/elasticsearch-kopf version: master + proxy_host: proxy.example.com + proxy_port: 8080 ``` ### Multi Node Server Installations @@ -208,8 +210,7 @@ Following variables affect the versions installed: - plugin: elasticsearch-cloud-aws version: 2.5.0 ``` - - + Earlier examples illustrate the installation of plugins for 2.x. The correct use of this parameter varies depending on the version of Elasticsearch being installed: - 2.x. - For officially supported plugins no version or source delimiter is required. The plugin script will determine the appropriate plugin version based on the target Elasticsearch version. @@ -236,6 +237,25 @@ This role ships with sample scripts and templates located in the [files/scripts/ * ```es_scripts_fileglob``` - defaults to `/files/scripts/`. * ```es_templates_fileglob``` - defaults to `/files/templates/`. +### Proxy + +To define proxy globaly, set the following variables: + +* ```es_proxy_host``` - global proxy host +* ```es_proxy_port``` - global proxy port + +To define proxy only for a particular plugin during its installation: + +``` + es_plugins: + - plugin: elasticsearch-cloud-aws + version: 2.5.0 + proxy_host: proxy.example.com + proxy_port: 8080 +``` + +> For plugins installation, proxy_host and proxy_port are used first if they are defined and fallback to the global proxy settings if not. + ## Notes * The role assumes the user/group exists on the server. The elasticsearch packages create the default elasticsearch user. If this needs to be changed, ensure the user exists. diff --git a/tasks/checkParameters.yml b/tasks/checkParameters.yml index 1c851ecc..6fc5befc 100644 --- a/tasks/checkParameters.yml +++ b/tasks/checkParameters.yml @@ -3,6 +3,9 @@ - fail: msg="es_instance_name must be specified and cannot be blank" when: es_instance_name is not defined or es_instance_name == '' +- fail: msg="es_proxy_port must be specified and cannot be blank when es_proxy_host is defined" + when: (es_proxy_port is not defined or es_proxy_port == '') and (es_proxy_host is defined and es_proxy_host != '') + - set_fact: multi_cast={{ (es_version | version_compare('2.0', '<') and es_config['discovery.zen.ping.multicast.enabled'] is not defined) or (es_config['discovery.zen.ping.multicast.enabled'] is defined and es_config['discovery.zen.ping.multicast.enabled'])}} - debug: msg="WARNING - It is recommended you specify the parameter 'http.port' when multicast is disabled" diff --git a/tasks/elasticsearch-plugins.yml b/tasks/elasticsearch-plugins.yml index 46f0b516..caa7316b 100644 --- a/tasks/elasticsearch-plugins.yml +++ b/tasks/elasticsearch-plugins.yml @@ -30,7 +30,15 @@ - name: Install elasticsearch plugins #debug: var=item - command: "{{es_home}}/bin/plugin install {{ item.plugin }}{% if item.version is defined and item.version != '' %}/{{ item.version }}{% endif %} --silent" + command: > + {{es_home}}/bin/plugin install + {{ item.plugin }}{% if item.version is defined and item.version != '' %}/{{ item.version }}{% endif %} + {% if item.proxy_host is defined and item.proxy_host != '' and item.proxy_port is defined and item.proxy_port != ''%} + -DproxyHost={{ item.proxy_host }} -DproxyPort={{ item.proxy_port }} + {% elif es_proxy_host is defined and es_proxy_host != '' %} + -DproxyHost={{ es_proxy_host }} -DproxyPort={{ es_proxy_port }} + {% endif %} + --silent register: plugin_installed failed_when: "'Failed to install' in plugin_installed.stderr" changed_when: plugin_installed.rc == 0