如何检查Ansible中的特定状态代码(4xx)?
我想要的是:停止程序,直到出现状态代码412,然后继续。如何检查Ansible中的特定状态代码(4xx)?,ansible,Ansible,我想要的是:停止程序,直到出现状态代码412,然后继续。 我有以下代码来检查状态代码412: - name: Check if plan was applied uri: url: "https://website.some.url.com/api/v1/clusters/elasticsearch/{{elasticClusterDetails.elastic$ method: GET user: admin password: "{
我有以下代码来检查状态代码412:
- name: Check if plan was applied
uri:
url: "https://website.some.url.com/api/v1/clusters/elasticsearch/{{elasticClusterDetails.elastic$
method: GET
user: admin
password: "{{rootpw.stdout}}"
force_basic_auth: yes
validate_certs: no
register: result
until: result.status == 412
retries: 20
delay: 30
几次尝试后,我得到了
错误:[…]状态为412而不是200
因此,412实际上出现了,但没有被认为满足了“直到”条件,程序退出。
据我所知,当代码从200切换到412时,无法发出请求。
在代码412处,我需要更改什么以不获取错误
请注意:这不是重复的,因为检查4xx状态代码与检查2xx不同。请查看文档中的,您将看到有一个属性可用于指定一个或多个被视为“成功”的状态代码。例如(假设您希望收到
200
或412
响应):
您现在遇到的问题是412状态代码被视为故障
您还可以在任务上设置ignore\u errors:true
,但使用status\u code
属性可能更好,因为它仍然允许任务在收到意外状态代码时失败
NB:文档中说,“也可以是一个逗号分隔的状态代码列表”,但源代码看起来需要一个实际的YAML列表。因此,您可能需要根据实际工作的值调整该值。查看文档中的,您将看到有一个
状态\u code
属性,可用于指定一个或多个被视为“成功”的状态代码。例如(假设您希望收到200
或412
响应):
您现在遇到的问题是412状态代码被视为故障
您还可以在任务上设置ignore\u errors:true
,但使用status\u code
属性可能更好,因为它仍然允许任务在收到意外状态代码时失败
NB:文档中说,“也可以是一个逗号分隔的状态代码列表”,但源代码看起来需要一个实际的YAML列表。因此,您可能需要根据实际工作的值调整该值
- name: Check if plan was applied
uri:
url: "https://website.some.url.com/api/v1/clusters/elasticsearch/{{elasticClusterDetails.elastic$
method: GET
user: admin
password: "{{rootpw.stdout}}"
force_basic_auth: yes
validate_certs: no
status_code: [200,412]
register: result
until: result.status == 412
retries: 20
delay: 30