| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/bin/bash
- set -o xtrace
- install_ansible() {
- sudo apt-get update
- sudo apt-get install python python-pip python-dev -y
- sudo pip install ansible==1.8.2
- sudo mkdir -p /etc/ansible/
- echo "localhost" | sudo tee /etc/ansible/hosts
- }
- run_playbook() {
- # Write to stdout directly
- export PYTHONUNBUFFERED=1
- # No cows >_<
- export ANSIBLE_NOCOWS=1
- # Root of git repo
- if [ -z "$ES_PROJECT_ROOT" ]; then
- export ES_PROJECT_ROOT="$(dirname $(dirname $(readlink -f $0)))"
- fi
- if [ ! -x $(which ansible-playbook) ]; then
- echo "Ansible is not installed"
- return 1
- fi
- ansible-playbook $ES_PROJECT_ROOT/ansible/es-playbook.yml -v | tee /tmp/ansible-playbook-progress
- if grep -q "FATAL\|ERROR" /tmp/ansible-playbook-progress; then
- return 1
- fi
- }
- check_cluster() {
- curl -m 5 -s -o /dev/null "http://localhost:9200" &&
- curl -m 5 -s -o /dev/null "http://localhost:9201"
- return $?
- }
- travis_retry() {
- # We don't use builtin Travis CI function, because this script is also used for vagrant provision.
- # But main idea of restarts is so simple, so lets override it without name change.
- $@ && return 0
- echo "The command $@ failed. Retrying, 2 of 3"
- sleep 60s && $@ && return 0
- echo "The command $@ failed. Retrying, 3 of 3"
- sleep 60s && $@ && return 0
- echo "The command $@ failed."
- return 1
- }
- travis_retry install_ansible || exit 1
- travis_retry run_playbook || exit 1
- travis_retry check_cluster || exit 1
|