是的,Ambari用户和组与群集节点上的本地用户/组是关联的。可以使用以下代码示例来解决此问题:
import requests
import json
# Ambari服务器的URL和登录信息
ambari_url = "http://ambari-server:8080/api/v1"
ambari_username = "admin"
ambari_password = "admin"
def get_ambari_users():
# 创建HTTP会话并进行身份验证
session = requests.Session()
session.auth = (ambari_username, ambari_password)
# 发送GET请求获取Ambari用户信息
response = session.get(f"{ambari_url}/users")
users = json.loads(response.text)
# 获取用户列表
user_list = users['items']
# 打印用户信息
for user in user_list:
print(f"Ambari用户:{user['Users']['user_name']}")
print(f"与群集节点上的本地用户/组关联:{user['Users']['ldap_user']}")
print("---")
get_ambari_users()
import subprocess
def get_local_users():
# 使用Linux命令获取群集节点上的本地用户和组
users = subprocess.check_output("cut -d: -f1 /etc/passwd", shell=True).decode().split('\n')
groups = subprocess.check_output("cut -d: -f1 /etc/group", shell=True).decode().split('\n')
# 打印本地用户和组
print("群集节点上的本地用户:")
for user in users:
print(user)
print("---")
print("群集节点上的本地组:")
for group in groups:
print(group)
get_local_users()
通过以上代码示例,您可以获取Ambari用户和组与群集节点上的本地用户/组的关联信息。