如何使用Ansible playbook在基于Debian的系统上的www
创建目录/srv
?
答案 0 :(得分:545)
您想要文件模块。要创建目录,您需要指定选项state=directory
:
- name: Creates directory
file:
path: /src/www
state: directory
查看其他选项
答案 1 :(得分:178)
您甚至可以扩展文件模块,甚至可以设置所有者,组和通过它的许可。 (参考:Ansible file documentation)
- 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
这样,如果它们不存在,它将创建两个目录。
答案 2 :(得分:13)
你可以使用:
创建- name: Create Folder
file:
path: /srv/www/
owner: user
group: user
mode: 0755
state: directory
- name: Create Folder
file:
path=/srv/www/
owner=user
group=user
mode=0755
state=directory
答案 3 :(得分:12)
目录只能使用文件模块创建,因为目录只是一个文件。
# create a directory if it doesn't exist
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: foo
group: foo
答案 4 :(得分:7)
- file:
path: /etc/some_directory
state: directory
mode: 0755
owner: someone
group: somegroup
这就是你实际上还可以设置权限,所有者和组的方式。最后三个参数不是强制性的。
答案 5 :(得分:6)
您可以创建目录。使用
# create a directory if it doesn't exist
- file: path=/src/www state=directory mode=0755
你也可以咨询 http://docs.ansible.com/ansible/file_module.html 有关详细信息,请参阅regaridng目录和文件系统。
答案 6 :(得分:3)
您可以使用声明
- name: webfolder - Creates web folder
file: path=/srv/www state=directory owner=www-data group=www-data mode=0775`
答案 7 :(得分:2)
我们有可用的模块来创建目录,ansible文件
示例
- name: Creates directory
file:
path: /src/www
state: directory
答案 8 :(得分:2)
这里除了提供所有答案外,在很多情况下,您需要创建多个目录而不是一个目录,因此最好使用循环而不是为每个目录创建单独的任务。
- name: Creates directory
file:
path: "{{ item }}"
state: directory
with_items:
- /srv/www
- /dir/foo
- /dir/bar
答案 9 :(得分:2)
只需要为特定分发执行任务的条件
- name: Creates directory
file: path=/src/www state=directory
when: ansible_distribution == 'Debian'
答案 10 :(得分:1)
---
- hosts: all
connection: local
tasks:
- name: Creates directory
file: path=/src/www state=directory
上面的playbook将在/ src路径中创建www目录。
在上面的剧本之前运行。请确保您的ansible主机连接已设置,
“localhost ansible_connection = local”
应该出现在/ etc / ansible / hosts
中了解更多信息,请告知我们。
答案 11 :(得分:1)
创建目录
gapLevel count # row number, column name of each gap
11 2 # (1, InLevel_02 - 1, InLevel_01), (3, InLevel_02 - 3, InLevel_01)
10.5 1 # (2, OutLevel_02 - 2, OutLevel_03)
10 1 # (4, InLevel_02 - 4, InLevel_01)
9.5 1 # (4, InLevel_02 - 4, InLevel_01)
答案 12 :(得分:0)
您可以直接运行命令并使用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
答案 13 :(得分:0)
如果要在Windows中创建目录:
- 名称:创建目录结构
win_file:
路径:C:\ Temp \ folder \ subfolder>
状态:目录
答案 14 :(得分:0)
使用文件模块创建目录,并使用“ ansible-doc文件”命令获取有关文件模块的详细信息
这里是一个选项“状态”,它说明:
如果
directory
,将创建所有不存在的直接子目录,因为从1.7开始,将使用提供的权限来创建它们。
如果为file
,则如果文件不存在,则不会创建该文件,如果需要该行为,请参见[copy]或[template]模块。
如果为link
,则将创建或更改符号链接。将hard
用于硬链接。
如果为absent
,则将递归删除目录,并且将取消链接文件或符号链接。请注意,如果路径不存在(状态不变),
file
不会失败。如果
touch
(1.4中的新功能),如果路径不存在,将创建一个空文件 存在,而现有文件或目录将接收更新的文件 访问和修改时间(类似于touch
从 命令行)。
答案 15 :(得分:0)
在这种情况下,您可以使用“文件”模块,您可以为新创建的目录传递太多的参数,例如所有者,组,位置,模式等.....
有关文件模块的详细说明,请参阅此文档...
https://docs.ansible.com/ansible/latest/modules/file_module.html#file-module
请记住,此模块不仅用于创建目录!!!
答案 16 :(得分:0)
在Ansible中建立目录的最简单方法。
OR
您要向该目录授予 sudo权限。
答案 17 :(得分:0)
我看到了很多Playbooks示例,我想提到Adhoc命令示例。
$ ansible -i库存-m文件-a“ path = / tmp / direcory state = directory(代替目录,我们可以提到用touch创建文件)
答案 18 :(得分:0)
在这种情况下,您需要使用文件模块。您可以在以下剧本中作为参考。
---
- 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
答案 19 :(得分:0)
要检查目录是否存在,然后运行某些任务(例如,创建目录),请使用以下
- name: Check if output directory exists
stat:
path: /path/to/output
register: output_folder
- name: Create output directory if not exists
file:
path: /path/to/output
state: directory
owner: user
group: user
mode: 0775
when: output_folder.stat.exists == false
答案 20 :(得分:0)
你好,下午好。
我与您分享以下内容。
# Plot 10 random points with the heptagon
set.seed(69)
tibble(x = rnorm(10), y = rnorm(10), shape = list(heptagon)) %>%
ggplot() +
geom_grob(aes(x, y, label = shape))
通过它可以在创建目录之前验证目录是否存在
答案 21 :(得分:0)
enter code here
- name: creating directory in ansible
file:
path: /src/www
state: directory
owner: foo
答案 22 :(得分:0)
- name: Create a directory
ansible.builtin.file:
path: /etc/some_directory
state: directory
mode: '0755'
答案 23 :(得分:-7)
这是更简单的方法。
- name: create dir
command: mkdir -p dir dir/a dir/b