首页 > 解决方案 > 循环检查 URI 是否在 Ansible 中返回状态 200

问题描述

我对 Ansible 很陌生,我有一个问题:假设我想检查 URL 是否返回状态代码 200,但 URL 必须首先由 2 个变量构造,如下所示:

vars:
  domain:
    -  "server1.example.com:"
    -  "server2.example.com:"
    -  "server3.example.com:"
  path:
    -  "222/a/sar.html"
    -  "213/a/sar2.html"
    -  "214/a/sar3.html"

我如何在这 2 组 var 之间循环以创建一个列表(URL_LIST),如下所示:

server1.example.com:222/a/sar.html
server1.example.com:213/a/sar2.html
server1.example.com:214/a/sar3.html
server2.example.com:222/a/sar.html
server2.example.com:213/a/sar2.html
server2.example.com:214/a/sar3.html
server3.example.com:222/a/sar.html
server3.example.com:213/a/sar2.html
server3.example.com:214/a/sar3.html

那么它可以用于下面的这个任务吗?

tasks:
  - name: Check URL status
    uri:
      url: "{{ item.url }}"
      return_content: yes
      validate_certs: no
    register: this
    until: this.status == 200
    failed_when: "{{ item.fail }}"
    with_items:
      - "{{ URL_LIST }}"
    retries 6

任何帮助将不胜感激谢谢!

标签: loopsansiblenested

解决方案


推荐阅读