|
#!/bin/bash |
|
|
|
|
|
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY="" |
|
|
|
echo "Elasticsearch built-in user: elastic:${ELASTIC_PASSWORD}" |
|
|
|
|
|
while true; do |
|
response=$(curl -s -v -w "\n%{http_code}" -u "elastic:${ELASTIC_PASSWORD}" "http://es01:9200") |
|
exit_code=$? |
|
status=$(echo "$response" | tail -n1) |
|
if [ $exit_code -eq 0 ] && [ "$status" = "200" ]; then |
|
echo "Elasticsearch is healthy" |
|
break |
|
else |
|
echo "Elasticsearch is unhealthy: $exit_code $status" |
|
echo "$response" |
|
sleep 5 |
|
fi |
|
done |
|
|
|
|
|
|
|
echo "Going to create Elasticsearch role own_indices with all privileges to all indices" |
|
while true; do |
|
response=$(curl -s -v -w "\n%{http_code}" -u "elastic:${ELASTIC_PASSWORD}" -X POST http://es01:9200/_security/role/own_indices -H 'Content-Type: application/json' -d '{"indices": [{"names": ["*"], "privileges": ["all"]}]}') |
|
exit_code=$? |
|
status=$(echo "$response" | tail -n1) |
|
if [ $exit_code -eq 0 ] && [ "$status" = "200" ]; then |
|
echo "Elasticsearch role own_indices created" |
|
break |
|
else |
|
echo "Elasticsearch role own_indices failure: $exit_code $status" |
|
echo "$response" |
|
sleep 5 |
|
fi |
|
done |
|
|
|
echo "Elasticsearch role own_indices:" |
|
curl -u "elastic:${ELASTIC_PASSWORD}" -X GET "http://es01:9200/_security/role/own_indices" |
|
echo "" |
|
|
|
PAYLOAD="{\"password\": \"${KIBANA_PASSWORD}\", \"roles\": [\"kibana_admin\", \"kibana_system\", \"own_indices\"], \"full_name\": \"${KIBANA_USER}\", \"email\": \"${KIBANA_USER}@example.com\"}" |
|
|
|
echo "Going to create Elasticsearch user ${KIBANA_USER}: ${PAYLOAD}" |
|
|
|
|
|
while true; do |
|
response=$(curl -s -v -w "\n%{http_code}" -u "elastic:${ELASTIC_PASSWORD}" -X POST http://es01:9200/_security/user/${KIBANA_USER} -H "Content-Type: application/json" -d "${PAYLOAD}") |
|
exit_code=$? |
|
status=$(echo "$response" | tail -n1) |
|
if [ $exit_code -eq 0 ] && [ "$status" = "200" ]; then |
|
echo "Elasticsearch user ${KIBANA_USER} created" |
|
break |
|
else |
|
echo "Elasticsearch user ${KIBANA_USER} failure: $exit_code $status" |
|
echo "$response" |
|
sleep 5 |
|
fi |
|
done |
|
|
|
echo "Elasticsearch user ${KIBANA_USER}:" |
|
curl -u "elastic:${ELASTIC_PASSWORD}" -X GET "http://es01:9200/_security/user/${KIBANA_USER}" |
|
echo "" |
|
|
|
exit 0 |
|
|