diff --git a/README.md b/README.md
index 6571630af..5e2f1954c 100644
--- a/README.md
+++ b/README.md
@@ -46,7 +46,7 @@ FabManager is a Ruby on Rails / AngularJS web application that runs on the follo
- Git 1.9.1+
- Redis 2.8.4+
- Sidekiq 3.3.4+
-- Elasticsearch 1.7
+- Elasticsearch 5.6
- PostgreSQL 9.4
@@ -492,33 +492,38 @@ In FabManager, it is used for the admin's statistics module and to perform searc
For a more detailed guide concerning the ElasticSearch installation, please check the [official documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html)
-1. Install the OpenJDK's Java Runtime Environment (JRE). ElasticSearch recommends that you install Java 8 update 20 or later.
+1. Install the OpenJDK's Java Runtime Environment (JRE). ElasticSearch recommends that you install Java 8 update 131 or later.
Please check that your distribution's version meet this requirement.
- With Ubuntu 14.04, see https://askubuntu.com/a/944260, otherwise use the following command
+ Using Ubuntu 14.04, see https://askubuntu.com/a/944260. With other systems, use the following command
```bash
sudo apt-get install openjdk-8-jre
```
+
+2. Install HTTPS support for aptitude
+ ```bash
+ sudo apt-get install apt-transport-https
+ ```
-1. Create the repository definition file
+3. Create the repository definition file
```bash
- echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list
+ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
```
-2. Import the repository signing key, and update the package lists
+4. Import the repository signing key, and update the package lists
```bash
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get update
```
-3. Install ElasticSearch 1.7
+5. Install ElasticSearch 5.6
```bash
sudo apt-get install elasticsearch
```
-4. To automatically start ElasticSearch during bootup, then, depending if your system is compatible with SysV (eg. Ubuntu 14.04) or uses systemd (eg. Debian 8+/Ubuntu 16.04+), you will need to run:
+6. To automatically start ElasticSearch during bootup, then, depending if your system is compatible with SysV (eg. Ubuntu 14.04) or uses systemd (eg. Debian 8+/Ubuntu 16.04+), you will need to run:
```bash
# System V
@@ -528,7 +533,7 @@ For a more detailed guide concerning the ElasticSearch installation, please chec
sudo /bin/systemctl enable elasticsearch.service
```
-5. Restart the host operating system to complete the installation
+7. Restart the host operating system to complete the installation
```bash
sudo reboot
@@ -542,7 +547,7 @@ Otherwise, please follow the official instructions on the project's website.
```bash
brew update
-brew install homebrew/versions/elasticsearch17
+brew install elasticsearch@5.6
```
@@ -681,7 +686,7 @@ See `vendor/assets/components/fullcalendar/dist/lang/*.js` for a list of availab
ELASTICSEARCH_LANGUAGE_ANALYZER
This configure the language analyzer for indexing and searching in projects with ElasticSearch.
-See https://www.elastic.co/guide/en/elasticsearch/reference/1.7/analysis-lang-analyzer.html for a list of available analyzers (check that the doc version match your installed elasticSearch version).
+See https://www.elastic.co/guide/en/elasticsearch/reference/5.6/analysis-lang-analyzer.html for a list of available analyzers.
TIME_ZONE
@@ -810,7 +815,7 @@ Developers may find information on how to implement their own authentication pro
- [Ruby on Rails](http://api.rubyonrails.org)
- [AngularJS](https://docs.angularjs.org/api)
- [Angular-Bootstrap](http://angular-ui.github.io/bootstrap/)
-- [ElasticSearch 1.7](https://www.elastic.co/guide/en/elasticsearch/reference/1.7/index.html)
+- [ElasticSearch 5.6](https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html)
---
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 71c1364f5..9d6f02e7a 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -27,7 +27,13 @@ services:
restart: always
elasticsearch:
- image: elasticsearch:1.7
+ image: elasticsearch:5.6
+ environment:
+ - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ ulimits:
+ memlock:
+ soft: -1
+ hard: -1
volumes:
- ${PWD}/elasticsearch:/usr/share/elasticsearch/data
restart: always
diff --git a/scripts/elastic-upgrade.sh b/scripts/elastic-upgrade.sh
index 897e3cc54..38e1d7fb1 100755
--- a/scripts/elastic-upgrade.sh
+++ b/scripts/elastic-upgrade.sh
@@ -213,22 +213,35 @@ ensure_initial_status_green()
wait_for_online()
{
+ local counter=0
+ echo -n "Waiting for ElasticSearch instance to came online"
STATUS=$(test_running)
while [ "$STATUS" != "ONLINE" ]
do
+ echo -n "."
sleep 1
STATUS=$(test_running)
+ ((++counter))
+ if [ "$counter" -eq 120 ]
+ then
+ echo -e "\nThe ElasticSearch instance did not came online for 2 minutes, please check the logs for any errors. Exiting..."
+ exit 8
+ fi
done
+ echo -e "\n"
}
wait_for_green_status()
{
+ echo -n "Waiting for ElasticSearch indices to have green status"
local state=$(curl "$ES_IP:9200/_cat/indices" 2>/dev/null | awk '{print $1}' | sort | uniq)
while [ "$state" != "green" ]
do
+ echo -n "."
sleep 1
state=$(curl "$ES_IP:9200/_cat/indices" 2>/dev/null | awk '{print $1}' | sort | uniq)
done
+ echo -e "\n"
}
prepare_upgrade()
@@ -261,6 +274,14 @@ upgrade_compose()
local image="elasticsearch:$target"
if [ $target = '6.2' ]; then image="docker.elastic.co\/elasticsearch\/elasticsearch-oss:6.2.3"; fi
sed -i.bak "s/image: elasticsearch:$current/image: $image/g" "$FM_PATH/docker-compose.yml"
+ if ! grep -qe "ES_JAVA_OPTS" docker-compose.yml
+ then
+ sed -i.bak "/image: $image/s/.*/&\n environment:\n - \"ES_JAVA_OPTS=-Xms512m -Xmx512m\"/" "$FM_PATH/docker-compose.yml"
+ fi
+ if ! grep -qe "ulimits" docker-compose.yml
+ then
+ sed -i.bak "/image: $image/s/.*/&\n ulimits:\n memlock:\n soft: -1\n hard: -1/" "$FM_PATH/docker-compose.yml"
+ fi
docker-compose pull
docker-compose up -d
wait_for_online