argos/deployment/elk/elasticsearch/index_init.sh

59 lines
1.8 KiB
Bash

#!/bin/bash
set -e
echo "Creating Elasticsearch indexes, roles, and users..."
# Command to create the "plans" index
curl -XPUT "http://localhost:9200/opencdmp-plans-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"title": { "type": "text" },
"description": { "type": "text" },
"price": { "type": "float" },
"date_added": { "type": "date" }
}
}
}' || { echo "Failed to create the 'plans' index"; exit 1; }
# Command to create the "descriptions" index
curl -XPUT "http://localhost:9200/opencdmp-descriptions-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"product_id": { "type": "keyword" },
"description_text": { "type": "text" },
"language": { "type": "keyword" }
}
}
}' || { echo "Failed to create the 'descriptions' index"; exit 1; }
# Command to create the role
curl -XPOST "localhost:9200/_security/role/opencdmp-api-test" -u elastic:elastic -H 'Content-Type: application/json' -d '{
"cluster": ["monitor"],
"indices": [
{
"names": [ "opencdmp-plans-test", "opencdmp-descriptions-test" ],
"privileges": [ "all" ]
}
]
}' || { echo "Failed to create the role"; exit 1; }
# Command to create the user
curl -XPOST "localhost:9200/_security/user/opencdmp-api-test?pretty" -u elastic:elastic -H 'Content-Type: application/json' -d '
{
"password" : "opencdmp",
"roles" : [ "opencdmp-api-test" ]
}' || { echo "Failed to create the user"; exit 1; }
# Install the analysis-icu plugin
elasticsearch-plugin install analysis-icu || { echo "Failed to install the analysis-icu plugin"; exit 1; }
echo "Initialization complete."