RedHat and Debian complete
This commit is contained in:
parent
4b8550f6ef
commit
3aecd58b59
11 changed files with 76 additions and 63 deletions
|
|
@ -1,2 +1,5 @@
|
|||
---
|
||||
elasticsearch_version: "1.5.2"
|
||||
elasticsearch:
|
||||
major_version: "1.5"
|
||||
version: "1.5.2"
|
||||
start_service: true
|
||||
|
|
|
|||
8
tasks/elasticsearch-Debian.yml
Normal file
8
tasks/elasticsearch-Debian.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: Add Elasticsearch repository key
|
||||
apt_key: url="http://packages.elasticsearch.org/GPG-KEY-elasticsearch" state=present
|
||||
- name: add elasticsearch repository
|
||||
apt_repository: repo="deb http://packages.elastic.co/elasticsearch/{{ elasticsearch.major_version }}/debian stable main" state=present
|
||||
- name: Ensure elasticsearch is installed.
|
||||
apt: name=elasticsearch={{ elasticsearch.version }} state=present cache_valid_time=86400
|
||||
register: elasticsearch_install
|
||||
8
tasks/elasticsearch-RedHat.yml
Normal file
8
tasks/elasticsearch-RedHat.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
- name: RedHat - add Elasticsearch repo
|
||||
template: src=elasticsearch.repo dest=/etc/yum.repos.d/elasticsearch-{{ elasticsearch.major_version }}.repo
|
||||
- name: RedHat - Install Elasticsearch
|
||||
yum: name=elasticsearch-{{ elasticsearch.version }} state=present update_cache=yes
|
||||
register: elasticsearch_install
|
||||
|
||||
|
||||
|
|
@ -1,40 +1,20 @@
|
|||
---
|
||||
# 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
|
||||
# Trigger Debian section
|
||||
- name: Include Debian specific Elasticsearch
|
||||
include: elasticsearch-Debian.yml
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
# Linux section
|
||||
- name: Ensure elasticsearch is installed.
|
||||
apt: deb=/opt/{{ elasticsearch_package }} state=installed
|
||||
when: ansible_os_family == 'Linux'
|
||||
# Trigger Redhat section
|
||||
- name: Include RedHat specific Elasticsearch
|
||||
include: elasticsearch-RedHat.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
# Make sure the service is started, and restart if necessary
|
||||
- name: Start elasticsearch service
|
||||
service: name=elasticsearch state=started
|
||||
when: elasticsearch.start_service
|
||||
register: elasticsearch_started
|
||||
- name: Restart elasticsearch service if new version installed
|
||||
service: name=elasticsearch state=restarted
|
||||
when: elasticsearch.start_service and elasticsearch_install.changed and not elasticsearch_started.changed
|
||||
|
||||
|
|
|
|||
19
tasks/java-Debian.yml
Normal file
19
tasks/java-Debian.yml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
---
|
||||
# Debian specific Java
|
||||
- name: Debian - Define java_repos.
|
||||
set_fact:
|
||||
java_repos: "{{ __java_repos | list }}"
|
||||
when: java_repos is not defined
|
||||
|
||||
- name: Debian - Automatically select the Oracle License
|
||||
tags: java
|
||||
shell: echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
|
||||
changed_when: false
|
||||
|
||||
- name: Debian - Add java repos
|
||||
apt_repository: repo={{ item }} update_cache=yes state=present
|
||||
with_items: java_repos
|
||||
|
||||
- name: Debian - Ensure Java is installed.
|
||||
apt: name={{ item }} state=present cache_valid_time=86400
|
||||
with_items: java_packages
|
||||
6
tasks/java-RedHat.yml
Normal file
6
tasks/java-RedHat.yml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
# RedHat specific Java
|
||||
- name: RedHat - Ensure Java is installed.
|
||||
yum: name={{ item }} state=latest
|
||||
with_items: java_packages
|
||||
|
||||
|
|
@ -1,30 +1,15 @@
|
|||
---
|
||||
- name: Define java_packages.
|
||||
- name: Java - Define java_packages.
|
||||
set_fact:
|
||||
java_packages: "{{ __java_packages | list }}"
|
||||
when: java_packages is not defined
|
||||
- name: Define java_repos.
|
||||
set_fact:
|
||||
java_repos: "{{ __java_repos | list }}"
|
||||
when: java_repos is not defined
|
||||
|
||||
# Debian section
|
||||
- name: Automatically select the Oracle License
|
||||
tags: java
|
||||
shell: echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections
|
||||
changed_when: false
|
||||
- name: Include Debian specific Java stuff
|
||||
include: java-Debian.yml
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
- name: Add java repos
|
||||
apt_repository: repo={{ item }} update_cache=yes state=present
|
||||
with_items: java_repos
|
||||
when: ansible_os_family == 'Debian'
|
||||
- name: Include RedHat specific Java stuff
|
||||
include: java-RedHat.yml
|
||||
when: ansible_os_family == 'RedHat'
|
||||
|
||||
- name: Update apt cache.
|
||||
apt: update_cache=yes cache_valid_time=86400
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
||||
- name: Ensure Java is installed.
|
||||
apt: name={{ item }} state=installed
|
||||
with_items: java_packages
|
||||
when: ansible_os_family == 'Debian'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,4 @@
|
|||
---
|
||||
#- name: Include default varsiables.
|
||||
# include_vars: "main.yml"
|
||||
- name: Include OS-specific variables.
|
||||
include_vars: "{{ ansible_os_family }}.yml"
|
||||
- include: java.yml
|
||||
|
|
|
|||
6
templates/elasticsearch.repo
Normal file
6
templates/elasticsearch.repo
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
[elasticsearch-{{ elasticsearch.major_version }}]
|
||||
name=Elasticsearch repository for {{ elasticsearch.major_version }}.x packages
|
||||
baseurl=http://packages.elastic.co/elasticsearch/{{ elasticsearch.major_version }}/centos
|
||||
gpgcheck=1
|
||||
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
|
||||
enabled=1
|
||||
|
|
@ -1 +1,3 @@
|
|||
---
|
||||
__java_packages:
|
||||
- "java-1.8.0-openjdk.x86_64"
|
||||
|
|
|
|||
|
|
@ -1,3 +1 @@
|
|||
---
|
||||
__elasticsearch_version: "1.5.2"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue