你如何创建一个目录www在/srv上基于debian的系统使用Ansible剧本?
当前回答
如果你想在windows中创建一个目录:
- name: create folder in Windows
win_file:
path: C:\Temp\folder\subfolder
state: directory
有关更多信息,请参阅win_file模块。
其他回答
目录只能使用文件模块创建,因为目录只是一个文件。
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: foo
group: foo
只需要为特定的分配设置执行任务的条件
- name: Creates directory
file: path=/src/www state=directory
when: ansible_distribution == 'Debian'
在本例中,您可以使用"file"模块,其中有许多参数可以传递给新创建的目录,如所有者、组、位置、模式等.....
关于文件模块的详细说明请参考本文档…
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
记住这个模块不仅仅是用来创建目录的!!
使用文件模块创建一个目录,并使用命令“ansible-doc file”获取文件模块的详细信息
这里有一个选项“state”解释:
If directory, all immediate subdirectories will be created if they do not exist, since 1.7 they will be created with the supplied permissions. If file, the file will NOT be created if it does not exist, see the [copy] or [template] module if you want that behavior. If link, the symbolic link will be created or changed. Use hard for hardlinks. If absent, directories will be recursively deleted, and files or symlinks will be unlinked. Note that file will not fail if the path does not exist as the state did not change. If touch (new in 1.4), an empty file will be created if the path does not exist, while an existing file or directory will receive updated file access and modification times (similar to the way touch works from the command line).
你可以用以下方法之一来做这件事:
例1:如果父目录已经存在:
- name: Create a new directory www at given path
ansible.builtin.file:
path: /srv/www/
state: directory
mode: '0755'
例2:父目录不存在:
- name: Create a new directory www at given path recursively
ansible.builtin.file:
path: /srv/www/
state: directory
mode: '0755'
recurse: yes
在示例2中,如果两个目录都不存在,它将递归地创建它们。
有关file_module的更多信息,您可以查看官方文档
推荐文章
- 如何在一个可行的剧本中只运行一个任务?
- 如何使用Bash创建一个文件夹,如果它还不存在?
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 如何定位父文件夹?
- 如何拉特定的目录与git
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 从完整的文件名路径中获取文件夹名称
- 将Ansible剧本安全地限制在一台机器上?
- 如何在PATH中放置~/.composer/vendor/bin目录?
- 使用Python计算目录的大小?
- 如何在命令行中将变量传递给ansible playbook ?
- 如何递归地找到一个目录中最新修改的文件?
- 为Ansible指定sudo密码
- 写入新文件时自动创建整个路径
- 使用c#从一个文件夹中获取所有文件名