你如何创建一个目录www在/srv上基于debian的系统使用Ansible剧本?
当前回答
---
- hosts: all
connection: local
tasks:
- name: Creates directory
file: path=/src/www state=directory
上面的playbook将在/src路径下创建www目录。
在运行上面的剧本之前。请确保您的ansible主机连接应该设置,
“本地主机ansible_connection=本地”
应该出现在/etc/ansible/hosts中
如需更多信息,请与我联系。
其他回答
您甚至可以扩展文件模块,甚至可以通过它设置所有者、组和权限。(参考:Ansible文件文档)
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
甚至,你可以递归地创建目录:
- name: Creates directory
file:
path: /src/www
state: directory
owner: www-data
group: www-data
mode: 0775
recurse: yes
这样,如果这两个目录不存在,它将创建它们。
目录只能使用文件模块创建,因为目录只是一个文件。
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: foo
group: foo
在这种情况下,您需要使用文件模块。下面的剧本,你可以使用你的参考。
---
- hosts: <Your target host group>
name: play1
tasks:
- name: Create Directory
files:
path=/srv/www/
owner=<Intended User>
mode=<Intended permission, e.g.: 0750>
state=directory
您可以创建目录。使用
# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755
你也可以咨询 http://docs.ansible.com/ansible/file_module.html 有关目录和文件系统的进一步详细信息。
可以直接执行该命令,使用ansible直接创建
ansible -v targethostname -m shell -a "mkdir /srv/www" -u targetuser
OR
ansible -v targethostname -m file -a "path=/srv/www state=directory" -u targetuser
推荐文章
- 如何在一个可行的剧本中只运行一个任务?
- 如何使用Bash创建一个文件夹,如果它还不存在?
- 如何从查找“类型d”中排除此/ current / dot文件夹
- 如何定位父文件夹?
- 如何拉特定的目录与git
- 如何在远程系统上使用Ansible任务移动/重命名文件
- 从完整的文件名路径中获取文件夹名称
- 将Ansible剧本安全地限制在一台机器上?
- 如何在PATH中放置~/.composer/vendor/bin目录?
- 使用Python计算目录的大小?
- 如何在命令行中将变量传递给ansible playbook ?
- 如何递归地找到一个目录中最新修改的文件?
- 为Ansible指定sudo密码
- 写入新文件时自动创建整个路径
- 使用c#从一个文件夹中获取所有文件名