python脚本通过登重启录ambari页面重启各服务。服务名称可指定
时间: 2023-07-31 11:03:48 浏览: 105
启动服务的脚本
可以使用 Python 的 requests 模块来编写一个脚本,通过 Ambari REST API 来重启指定的服务。
以下是一个简单的示例代码,需要替换 `AMBARI_HOST`、`AMBARI_PORT`、`AMBARI_USERNAME`、`AMBARI_PASSWORD`、`CLUSTER_NAME` 和 `SERVICE_NAME` 的值,以适应你的环境和需求。
```python
import requests
from requests.auth import HTTPBasicAuth
AMBARI_HOST = 'your.ambari.host'
AMBARI_PORT = '8080'
AMBARI_USERNAME = 'your.ambari.username'
AMBARI_PASSWORD = 'your.ambari.password'
CLUSTER_NAME = 'your.cluster.name'
SERVICE_NAME = 'your.service.name'
# 构建 REST API URL
url = 'http://{0}:{1}/api/v1/clusters/{2}/services/{3}'.format(
AMBARI_HOST, AMBARI_PORT, CLUSTER_NAME, SERVICE_NAME)
# 构建请求头和认证信息
headers = {'X-Requested-By': 'ambari', 'Content-Type': 'application/json'}
auth = HTTPBasicAuth(AMBARI_USERNAME, AMBARI_PASSWORD)
# 发送重启请求
response = requests.put(url=url, headers=headers, auth=auth, json={'RequestInfo': {'command': 'RESTART'}})
if response.status_code == 202:
print('Successfully restarted {0} service.'.format(SERVICE_NAME))
else:
print('Failed to restart {0} service. Reason: {1}'.format(SERVICE_NAME, response.text))
```
如果需要同时重启多个服务,可以在循环中调用该脚本,并在 `SERVICE_NAME` 参数中传入不同的服务名称。
阅读全文