diff --git a/defaults/main.yml b/defaults/main.yml index ed97d53..de56457 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1 +1,2 @@ --- +elasticsearch_version: "1.5.2" diff --git a/meta/main.yml b/meta/main.yml index 6a65392..357f0fe 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -6,7 +6,8 @@ galaxy_info: description: Elasticsearch for Linux company: "Elastic.co" license: "license (Apache)" - min_ansible_version: 1.4 + # Require 1.6 for apt deb install + min_ansible_version: 1.6 platforms: - name: EL versions: diff --git a/tasks/elasticsearch.yml b/tasks/elasticsearch.yml new file mode 100644 index 0000000..e246696 --- /dev/null +++ b/tasks/elasticsearch.yml @@ -0,0 +1,40 @@ +--- +# Packages +- name: Define elasticsearch_package (Debian) + set_fact: + elasticsearch_package: "elasticsearch-{{ elasticsearch_version}}.deb" + when: elasticsearch_package is not defined and ansible_os_family == 'Debian' +- name: Define elasticsearch_package (Redhat) + set_fact: + elasticsearch_package: "elasticsearch-{{ elasticsearch_version}}.noarch.rpm" + when: elasticsearch_package is not defined and ansible_os_family == 'RedHat' +- name: Define elasticsearch_package (Linux) + set_fact: + elasticsearch_package: "elasticsearch-{{ elasticsearch_version}}.tar.gz" + when: elasticsearch_package is not defined + +- name: Define elasticsearch_url + set_fact: + elasticsearch_url: "https://download.elastic.co/elasticsearch/elasticsearch/{{ elasticsearch_package}}" + when: elasticsearch_url is not defined + +- debug: var=elasticsearch_url + +# TODO Is /opt always a good destination? +# It is good to always have one location to avoid downloading again +# It is bad to have a location hard-coded because we don't know if it +# will always exist and have space... better to use mktemp, but then +# have to ensure that desired version is already installde with +# dpkg-query -W elasticsearch and parse the output... +- name: Download elasticsearch package + get_url: url={{ elasticsearch_url }} dest=/opt/{{ elasticsearch_package}} + +# Debian section +- name: Ensure elasticsearch is installed. + apt: deb=/opt/{{ elasticsearch_package }} state=installed + when: ansible_os_family == 'Debian' + +# Linux section +- name: Ensure elasticsearch is installed. + apt: deb=/opt/{{ elasticsearch_package }} state=installed + when: ansible_os_family == 'Linux' diff --git a/tasks/main.yml b/tasks/main.yml index 5e49e5e..0990f99 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,4 +1,7 @@ --- +#- name: Include default varsiables. +# include_vars: "main.yml" - name: Include OS-specific variables. include_vars: "{{ ansible_os_family }}.yml" - include: java.yml +- include: elasticsearch.yml diff --git a/vars/Linux.yml b/vars/Linux.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/vars/Linux.yml @@ -0,0 +1 @@ +--- diff --git a/vars/RedHat.yml b/vars/RedHat.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/vars/RedHat.yml @@ -0,0 +1 @@ +--- diff --git a/vars/main.yml b/vars/main.yml new file mode 100644 index 0000000..50a7bba --- /dev/null +++ b/vars/main.yml @@ -0,0 +1,3 @@ +--- +__elasticsearch_version: "1.5.2" +