带有for循环的ansible剧本无法按预期运行

时间:2018-08-14 10:02:36

标签: bash

尝试创建一个剧本来检查docker容器日志,但它不会遍历for循环

- hosts: all
  become: yes
  gather_facts: no
  tasks:
      - name: Check container logs
        shell: |
          for i in "web_container_node{1..5}"; do
             echo ""
             echo "#### ${i} ####"
             echo ""
             docker logs --tail 10 ${i}
          done
        args:
          executable: /bin/bash

但是输出会像在剧本中一样直接传递容器名称,而无需迭代

No such container: "web_container_node{1..5}",

1 个答案:

答案 0 :(得分:0)

即使在bash中,使用bash扩展的方法也不起作用,我建议您采用这种方式。

  - name: Check container logs
    shell: |
      for i in {1..5}; do
         echo "webcontainer${i}"
         echo ""
         echo "#### ${i} ####"
         echo ""
         docker logs --tail 10 ${i}
      done
    args:
      executable: /bin/bash
相关问题