shell脚本通过登录ambari页面重启各服务。服务名称可传入
时间: 2023-09-09 14:14:28 浏览: 169
可以使用 Ambari REST API 来实现自动重启服务的脚本,以下是一个简单的示例脚本:
```bash
#!/bin/bash
# Ambari 相关配置
AMBARI_HOST="your.ambari.host"
AMBARI_PORT="8080"
AMBARI_USER="ambari_user"
AMBARI_PASSWORD="ambari_password"
# 服务名参数
SERVICE_NAME=$1
# 获取 Ambari 登录 Cookie
COOKIE=$(curl -s -H "X-Requested-By: ambari" -c /tmp/ambari.cookie -d "username=${AMBARI_USER}&password=${AMBARI_PASSWORD}" http://${AMBARI_HOST}:${AMBARI_PORT}/api/v1/users/${AMBARI_USER}/authorizations)
# 重启指定服务
curl -s -H "X-Requested-By: ambari" -b /tmp/ambari.cookie -H "Content-Type: application/json" -X PUT -d '{"RequestInfo":{"context":"Restart Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}' http://${AMBARI_HOST}:${AMBARI_PORT}/api/v1/clusters/cluster/services/${SERVICE_NAME}
```
使用方法:
```bash
./restart_service.sh SERVICE_NAME
```
其中 `SERVICE_NAME` 为需要重启的服务名称。注意需要修改脚本中的 Ambari 相关配置,以及提供正确的用户名和密码。
阅读全文