在 Ansible shell 模块中使用“创建”参数

问题描述 投票:0回答:1

在 shell 模块中使用“creates”参数时,这可以是目录的路径吗?或者它必须是一个文件?

ansible
1个回答
20
投票

你为什么不自己尝试一下呢?简短的回答是:是的,它可以是文件系统中可见的任何内容

---
- name: Test create arg of shell
  hosts: localhost

  tasks:
    - name: Set up working area
      shell: mktemp -d
      register: workdir
    - name: Working Area
      debug:
        msg: "{{ workdir }}"

    - name: Create a file
      shell: touch {{ workdir.stdout }}/test-file
      args:
        creates: "{{ workdir.stdout }}/test-file"
    - name: "Test if it get's created again"
      shell: touch {{ workdir.stdout }}/test-file
      args:
        creates: "{{ workdir.stdout }}/test-file"

    - name: Create a directory
      shell: mkdir {{ workdir.stdout }}/test-directory
      args:
        creates: "{{ workdir.stdout }}/test-directory"
    - name: "Test if it get's created again"
      shell: mkdir {{ workdir.stdout }}/test-directory
      args:
        creates: "{{ workdir.stdout }}/test-directory"
    - name: Cleanup
      shell: "rm -rf {{ workdir.stdout }}"

# vim: set ts=2 sts=2 fenc=utf-8 list:
© www.soinside.com 2019 - 2024. All rights reserved.