Restarting NiFi nodes fails with an error message such as the one below:
<br>File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 278, in
Master().execute()
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 353, in execute
method(env)
File "/usr/lib/ambari-agent/lib/resource_management/libraries/script/script.py", line 993, in restart
self.start(env, upgrade_type=upgrade_type)
File "/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi.py", line 152, in start
nifi_cli.create_or_update_reg_client(params.nifi_registry_host, params.nifi_registry_url)
File "/u/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi_cli.py", line 175, in create_or_update_reg_client
existing_clients = list_reg_clients()
File "/u/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi_cli.py", line 144, in list_reg_clients
outputType="json"
File "/u/var/lib/ambari-agent/cache/common-services/NIFI/1.0.0/package/scripts/nifi_cli.py", line 73, in nifi_cli
raise Fail("Failed to execute nifi cli.sh command")
Cause:
This occurs when the nifi.initial.admin.identity does not have permission to access the /controller API.
Workaround:
Create a local user in Ranger with the name of the initial admin idenity
Add a Ranger Policy for NiFi with Read/Write permissions for /controller