curl - 在 ansible 中使用 CURL 模型运行 API 命令
问题描述
我正在尝试为我的 ELK 索引设置自动备份。要手动执行此操作,我使用以下 curl 命令。
curl -u username:$password -X PUT \
"http://IP address:9200/_snapshot/TEST_backup./backup_name" \
-H 'Content-Type: application/json' \
-d'{ "indices": "index name", "ignore_unavailable": true, "include_global_state": false }'
您能否让我知道 ansible curl 结构将如何实现与我的想法相同的结果,它应该如下所示,但它会产生错误。
- name: Run cURL commands
hosts: localhost
tasks:
- name: First task
uri:
url: http://IP ADDRESS:9200/_snapshot/TEST_backup/backupname
headers:
Content-Type: "application/json"
X-Application-Username: "username"
X-Application-Password: "password"
method: PUT
body:
indices: "index names"
ignore_unavailable: "true"
include_global_state: "false"
body_format: json
validate_certs: no
解决方案
...但它正在产生错误
如果没有确切的错误,很难推断可能是什么问题。同时,我不太了解您传递凭据的方式。您不使用相关模块参数是否有特定原因?你试过这样吗?
- name: Run cURL commands
hosts: localhost
tasks:
- name: First task
uri:
url: http://IP ADDRESS:9200/_snapshot/TEST_backup/backupname
method: PUT
url_username: "username"
url_password: "password"
body:
indices: "index names"
ignore_unavailable: "true"
include_global_state: "false"
body_format: json
validate_certs: no
请注意,我完全删除了标题,因为body_format: json
会自动设置Content-type: application/json
(我们不应该需要另外两个)。
如果您在另一端的服务在第一次连接基本身份验证时没有正确返回 401 错误,您可以尝试添加force_basic_auth: true
并查看它是否做得更好(有关更多详细信息,请参阅上面的文档链接)。
推荐阅读
- javascript - 使用 javascript 更改 Google One Tap 登录位置
- ssas - 无法在 Visual Studio 2019 中创建“Analysis Services 多维和数据挖掘”项目
- ios - SwiftUI,使用按钮将文本字段内的值相乘
- python - 在具有单独但顺序列的熊猫数据框中选择多列
- asp.net-core - Ocelot 路由聚合:要么不存在,要么没有正确的 ServiceName 属性
- json - 获取 JSON 数据时解析错误器
- nginx - 如何分离或过滤 nginx 错误日志级别
- python - 即使我在正确的路径上得到了 pip,Python api 请求也不起作用
- drupal - 使用分类drupal 8过滤内容类型
- facebook - 我需要哪些 Facebook 开发者角色提交 App Review 请求?