Restoring Ranger Audit Solr schema and collection
If you encounter any failure during the upgrade, you must restore the Ranger audits Solr schema and collection to their previous state.
Delete the newly added fields
ps -ef | grep rangeradmin | awk '{split($0, array,"-cp"); print array[2]}' | cut -d: -f1
#Note down the path for RANGER_ADMIN_CONF_DIR
klist -kt <RANGER_ADMIN_CONF_DIR>/../ranger.keytab
#Note down RANGER_ADMIN_PRINCIPAL, it must starts with 'rangeradmin' by default
kinit -kt <RANGER_ADMIN_CONF_DIR>/../ranger.keytab <RANGER_ADMIN_PRINCIPAL>
#No output will be returned on successful authentication
# Delete ‘datasets’
curl -k --negotiate -u : -X POST "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/ranger_audits/schema" \
-H "Content-Type: application/json" \
--data-binary '{
"delete-field": { "name": "datasets" }
}'
# Delete ‘projects’
curl -k --negotiate -u : -X POST "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/ranger_audits/schema" \
-H "Content-Type: application/json" \
--data-binary '{
"delete-field": { "name": "projects" }
}'
# Delete 'datasetIds'
curl -k --negotiate -u : -X POST "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/ranger_audits/schema" \
-H "Content-Type: application/json" \
--data-binary '{
"delete-field": { "name": "datasetIds" }
}'
Delete existing ranger_audits schema collection and configuration set
curl -i -k --negotiate -u : "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/admin/collections?action=DELETE&name=ranger_audits"
curl -i -k --negotiate -u : "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/admin/configs?action=DELETE&name=ranger_audits&omitHeader=true"
Restore the Solr collection and associated configurations
Use the Solr Collections API
RESTORE action to restore from the backup
created
earlier.ps -ef | grep rangeradmin | awk '{split($0, array,"-cp"); print array[2]}' | cut -d: -f1
#Note down the path for RANGER_ADMIN_CONF_DIR
klist -kt <RANGER_ADMIN_CONF_DIR>/../ranger.keytab
#Note down RANGER_ADMIN_PRINCIPAL, it must starts with 'rangeradmin' by default
kinit -kt <RANGER_ADMIN_CONF_DIR>/../ranger.keytab <RANGER_ADMIN_PRINCIPAL>
#No output will be returned on successful authentication
curl -k --negotiate -u : "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/admin/collections" \
--get \
--data-urlencode "action=RESTORE" \
--data-urlencode "name=${BACKUP_NAME}" \
--data-urlencode "collection=${COLLECTION}" \
--data-urlencode "location=${LOCATION}"Reload collection using Solr collections API
curl -k --negotiate -u : "${SOLR_HTTP_SCHEME}://${SOLR_HOST}:${SOLR_PORT}/solr/admin/collections?action=RELOAD&name=ranger_audits"
