[ 
https://issues.apache.org/jira/browse/AMBARI-8343?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Levas updated AMBARI-8343:
---------------------------------
    Summary: Components should indicate Security State (via ambari-agent)  
(was: Components should indicate Kerberos State (via ambari-agent))

> Components should indicate Security State (via ambari-agent)
> ------------------------------------------------------------
>
>                 Key: AMBARI-8343
>                 URL: https://issues.apache.org/jira/browse/AMBARI-8343
>             Project: Ambari
>          Issue Type: New Feature
>          Components: ambari-agent
>    Affects Versions: 2.0.0
>            Reporter: Robert Levas
>            Assignee: Robert Levas
>            Priority: Critical
>              Labels: kerberos, states
>             Fix For: 2.0.0
>
>
> In order to properly handle the automated installation or removal of Kerberos 
> from the cluster, Ambari needs to know whether each component on the hosts of 
> the cluster is properly Kerberized or not.  This information may be compared 
> with data on the Ambari server to help determine what steps should be taken 
> to ensure the cluster is in the correct Kerbrerized state.
> To do this, the current and desired component Kerbrerization state is 
> maintained in the Ambari database.  The Ambari server will update the desired 
> state details according to whether the cluster is to be Kerberized or not and 
> whether the relevant service has enough metadata to be Kerberized.  If the 
> desired and actual Kerberization state details do not match, the Ambari 
> server will take the necessary steps to work towards synchronization. 
> In order for a component to indicate its Kerberization status, a new property 
> needs to be returned in the {{STATUS_COMMAND}} response message (from the 
> Ambari agent).  This property should be named ‘kerberosState’ and should have 
> one of the following values:
> {{ON}} - indicates Kerberos is configured and working properly
> {{OFF}} - indicates Kerberos is not configured and working properly
> {{ERROR}} - indicates that Kerberos is configured but is not working properly
> {{UNKNOWN}} - indicates that the state cannot be determined
> To properly set this state value, a call needs to be executed per component 
> querying for its specific state.  Due to the differences on how each 
> component is configured for Kerberos and how it may be determined if Kerberos 
> is setup and working properly, it is necessary for each component to have its 
> own logic for determining this state. Therefore the ambari-agent process will 
> need to call into the component’s configured (lifecycle) script and wait for 
> its response - not unlike how it determines whether the component is up and 
> running.
> After the infrastructure is in place, each service definition needs to be 
> updated to implement the new Kerberos status check function.  The function 
> should perform the following steps:
> * Determine if Kerberos is enabled for disabled
> ** If disabled, return “OFF”
> ** If enabled, perform tests (kinit?, ping KDC?) to determine if the 
> configuration appears to be working
> *** If working, return “ON”
> *** If not working, return “ERROR”
> If no function is available, the Ambari agent should return “UNKNOWN”.
> On the Ambari server, the {{org.apache.ambari.server.agent.HeartBeatHandler}} 
> class needs to be updated to set the Kerberos state of the relevant 
> component, as indicated from the {{STATUS_COMMAND}} response.  This should be 
> done {{org.apache.ambari.server.agent.HeartBeatHandler#processStatusReports}} 
> method, by calling the relavant ServiceComponentHost’s setKerberosState 
> method.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to