什么是简单的方法来自动创build不存在的目录

在我的Ansible剧本中,很多时候我需要在那里创build文件

- name: Copy file template: src: code.conf.j2 dest: "{{project_root}}/conf/code.conf" 

现在好多次都不在了。 那么我必须先创build更多的任务来创build该目录。

有没有什么简单的方法来自动创build目录如果不存在一些选项

现在,这是唯一的方法

 - name: Ensures {{project_root}}/conf dir exists file: path={{project_root}}/conf state=directory - name: Copy file template: src: code.conf.j2 dest: "{{project_root}}/conf/code.conf" 

要确保使用完整path成功,请使用recurse = yes

 - name: ensure custom facts directory exists file: > path=/etc/ansible/facts.d recurse=yes state=directory 

AFAIK,这可以做的唯一方法是使用state=directory选项。 虽然template模块支持大多数copy选项,而这些选项又支持大多数file选项,但不能像state=directory使用它。 此外,这将是相当混乱(这是否意味着{{project_root}}/conf/code.conf是一个目录?或者是否意味着应该首先创build{{project_root}}/conf/

所以我不认为这是可能的,而现在没有添加以前的file任务。

 - file: path: "{{project_root}}/conf" state: directory recurse: yes 

您可以使用以下版本创build文件夹,具体取决于您的版本。

最新版本2 <

 - name: Create Folder file: path: "{{project_root}}/conf" recurse: yes state: directory 

旧版本:

 - name: Create Folder file: path="{{project_root}}/conf" recurse: yes state=directory 

请参阅 – http://docs.ansible.com/ansible/latest/file_module.html