Skip to content

Instantly share code, notes, and snippets.

@ricardo-rossi
Last active December 1, 2023 04:55
Star You must be signed in to star a gist
Save ricardo-rossi/8265589463915837429d to your computer and use it in GitHub Desktop.
Installing ElasticSearch on Ubuntu 14.04
#!/bin/bash
### USAGE
###
### ./ElasticSearch.sh 1.7 will install Elasticsearch 1.7
### ./ElasticSearch.sh will fail because no version was specified (exit code 1)
###
### CLI options Contributed by @janpieper
### Check http://www.elasticsearch.org/download/ for latest version of ElasticSearch
### ElasticSearch version
if [ -z "$1" ]; then
echo ""
echo " Please specify the Elasticsearch version you want to install!"
echo ""
echo " $ $0 1.7"
echo ""
exit 1
fi
ELASTICSEARCH_VERSION=$1
if [[ ! "${ELASTICSEARCH_VERSION}" =~ ^[0-9]+\.[0-9]+ ]]; then
echo ""
echo " The specified Elasticsearch version isn't valid!"
echo ""
echo " $ $0 1.7"
echo ""
exit 2
fi
### Install Java 8
cd ~
sudo apt-get install python-software-properties -y
sleep 1
sudo add-apt-repository ppa:webupd8team/java -y
sleep 1
sudo apt-get update
sleep 1
sudo apt-get install oracle-java8-installer -y
### Download and install the Public Signing Key
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
### Setup Repository
echo "deb http://packages.elastic.co/elasticsearch/${ELASTICSEARCH_VERSION}/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list
### Install Elasticsearch
sudo apt-get update && sudo apt-get install elasticsearch -y
### Start ElasticSearch
sudo service elasticsearch start
### Lets wait a little while ElasticSearch starts
sleep 5
### Make sure service is running
curl http://localhost:9200
### Should return something like this:
# {
# "status" : 200,
# "name" : "Storm",
# "version" : {
# "number" : "1.3.1",
# "build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015",
# "build_timestamp" : "2014-07-28T14:45:15Z",
# "build_snapshot" : false,
# "lucene_version" : "4.9"
# },
# "tagline" : "You Know, for Search"
# }
@alfchee
Copy link

alfchee commented Jun 18, 2015

Works very well!! Thanks!!

@gfouvry
Copy link

gfouvry commented Jun 27, 2015

Well done Mr. Rossi.

@BARJ
Copy link

BARJ commented Jul 7, 2015

Worked fine, but after a restart I get the following error when I run 'sudo service elasticsearch start':

* Starting Elasticsearch Server

touch: cannot touch ´/var/run/elasticsearch/elasticsearch.pid´: No such file or directory

Does anyone has a suggestion to fix this? I already imported elasticsearch data, so reinstalling isn’t an option.

Copy link

ghost commented Jul 15, 2015

👍

@jjdelc
Copy link

jjdelc commented Aug 10, 2015

Would suggest adding the bash sha bang on the first line so the script can be ran from other shells.

#!/bin/bash

@BeanMr
Copy link

BeanMr commented Aug 20, 2015

Great!Thx~~~

@ricardo-rossi
Copy link
Author

@jjdelc: Good idea. done!

@ricardo-rossi
Copy link
Author

Added ElasticSearch 1.7 as default version and Java 8 as default.

@xaniasd
Copy link

xaniasd commented Aug 31, 2015

thanks! we need to install the package software-properties-common as well (required for add-apt-repository)

@Aldekein
Copy link

Err http://packages.elastic.co stable/main amd64 Packages
404 Not Found [IP: 23.23.106.153 80]

:(

@cesarbarone
Copy link

Awesome. Thanks.

@igr
Copy link

igr commented Sep 27, 2015

404 error

@elchudi
Copy link

elchudi commented Sep 30, 2015

I had to add
sudo apt-get update
before
sudo apt-get install python-software-properties -y

@montyhall
Copy link

@Aldekein i had the same problem -- managed to work around it by changing

echo "deb http://packages.elastic.co/elasticsearch/${ELASTICSEARCH_VERSION}/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list

to

echo "deb http://packages.elasticsearch.org/elasticsearch/1.7/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list

@ddimitrioglo
Copy link

Thanks a lot!

@danny-andrews
Copy link

❤️ 💋

@DZielke
Copy link

DZielke commented Nov 16, 2015

I would like to upgrade my ES 0.20.2 and I get an:
couldn't connect to host if I run the Shell-Script.

@lhwparis
Copy link

thanks for the script. what about adding nginx + proxy settings too and maybe optional authentication settings for POST,PUT?

Copy link

ghost commented Jan 4, 2016

Thanks a lot for the complete script

@Paprikas
Copy link

Paprikas commented Jan 9, 2016

You need to remove or edit regexp for numeric version if you want to install Elasticsearch > 2.
Elasticsearch.sh 2.x will work.

@thoroc
Copy link

thoroc commented Jan 22, 2016

Modified regex as per comment above but I am getting 404 with version 2.x

Failed to fetch http://packages.elastic.co/elasticsearch/2.1.1/debian/dists/stable/main/binary-amd64/Packages  404
Failed to fetch http://packages.elastic.co/elasticsearch/2.1.1/debian/dists/stable/main/binary-i386/Packages  404

@cknoxrun
Copy link

Based on this site, the correct repo url is this:

http://packages.elastic.co/elasticsearch/2.x/debian

So your line to add the repo config would be:

echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elk.list

@cenan
Copy link

cenan commented Feb 26, 2016

Thank you, worked like a charm 👏

@errakeshpd
Copy link

Thank you, worked like a charm

@sentechno
Copy link

for 2.x version of elasticsearch
change the line 23 :
if [[ ! "${ELASTICSEARCH_VERSION}" =~ ^[0-9]+.[0-9]+ ]]; then
to if [[ ! "${ELASTICSEARCH_VERSION}" =~ ^[0-9]+.[0-9|x]+ ]]; then

@ulkoart
Copy link

ulkoart commented Jun 17, 2016

on 16.04 - work, thanks!

@soundaryathiagarajan
Copy link

soundaryathiagarajan commented Dec 30, 2016

Not working for me. Getting this error :

  • Starting Elasticsearch Server sysctl: setting key "vm.max_map_count": Read-only file system

                                                                      [fail]
    

curl: (7) Failed to connect to localhost port 9200: Connection refused

can anyone help here. i am using this shell script mentioned above:

#download and install the Public Signing Key
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -

Setup Repository

echo "deb http://packages.elastic.co/elasticsearch/5.x/debian stable main" | tee -a /etc/apt/sources.list.d/elk.list

Install Elasticsearch

apt-get update && apt-get install elasticsearch -y

Start ElasticSearch

service elasticsearch start

Lets wait a little while ElasticSearch starts

sleep 5

Make sure service is running

curl http://localhost:9200

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment