1

我编写了一个 python 脚本(和一个 ansible playbook,因为无法使脚本工作,但这是另一回事),其目的是在由 ops manager 3.6 版管理的 mongodb 副本集中执行切换。我有两个站点,一个站点有 3 个服务器,另一个站点有 2 个站点,该脚本的作用基本上是发送一个 PUT 请求以编辑副本集的自动化配置,并根据给定的站点更改所需服务器的优先级到 2,同时将其他人留在 1 并添加仲裁者,然后在必要时将其删除。现在的目的只是改变 put 请求的优先级以尝试使其工作,这是 PUT 请求的样子:

data = {"replicaSets": [
{
     "_id"_: "PP_ATLAS",
     "members": [
          {
               "_id": 2,
              "host": "*servername*",
              "priority": 2,
          },
          {
              "_id": 3,
              "host": "*servername*",
          },
          {
              "_id": 4,
              "host": "*servername*",
          }
     ]
   }
],
}
headers = {'Content-Type': 'application/json'}
js = requests.put(url, auth=HTTPDigestAuth (MMS_User, MMS_API), data=json.dumps(data), headers=headers, verify=False)

MMS_User 和 MMS_API 是用于访问操作管理器(也称为 MMS)的标识令牌。

当我尝试这个(脚本请求一个服务器名称作为参数切换到)时,我收到:

{"detail":"Invalid automation config: Process *servername that was given as an argument* referenced in one or more deployment items but not found in configuration.","error":400,"errorCode":null,"parameters":null,"reason":"Bad Request"}
400

作为参数给出的服务器名称就是它所说的,而不是实际引用“作为参数给出的服务器名称”。

4

0 回答 0