通过将文件夹列表作为参数传递,在ansible中创建多个目录 目标:通过在ansible中传递列表作为参数来创建目录 我可以在本地主机上运行playbook时执行此操作 但是,当我在远程主机上运行它时,它会失败,因为查找发生在我的机器上,而不是远程机器上 我希望能够通过传递列表var\u list\u dirs来创建目录,我可以在剧本中设置该列表。这样,无论有多少剧本想要创建目录,我的角色都不需要改变

通过将文件夹列表作为参数传递,在ansible中创建多个目录 目标:通过在ansible中传递列表作为参数来创建目录 我可以在本地主机上运行playbook时执行此操作 但是,当我在远程主机上运行它时,它会失败,因为查找发生在我的机器上,而不是远程机器上 我希望能够通过传递列表var\u list\u dirs来创建目录,我可以在剧本中设置该列表。这样,无论有多少剧本想要创建目录,我的角色都不需要改变,ansible,Ansible,任何帮助都将不胜感激 playbook-create-directory.yaml 样本用法################################################################################# #ansible playbook playbook-create-directory.yaml--tags=“设置用户,创建目录” #######################################################

任何帮助都将不胜感激

playbook-create-directory.yaml
样本用法#################################################################################
#ansible playbook playbook-create-directory.yaml--tags=“设置用户,创建目录”
###############################################################################################################
-名称:创建目录
主持人:gcp
变成:真的
变量:
###创建用户
var_用户:“测试”
var_组:“测试”
###创建目录
var_上下文:“测试”
变量装入路径:“/data”
上下文:“{var_context}}”
var_context_opt_dir:“/opt/{{{context}”
var_context_config_dir:“{{var_context_opt_dir}}/config”
var_context_log_dir:“{{var_mount_path}/log/{{context}”
var_context_data_dir:“{{var_mount_path}/var/lib/{{context}”
var_context_backup_dir:“{{var_mount_path}/var/{{context}}-backup”
var_list_dirs:“{{var_context_opt_dir}”
{{var\u context\u config\u dir}}
{{var\u context\u log\u dir}}
{{var\u context\u data\u dir}}
{{var\u context\u backup\u dir}}”
角色:
-{角色:用户,标记:['user']}
-{角色:目录,标记:['目录']}
梅因·亚马尔
---
## https://stackoverflow.com/questions/1271222/replace-whitespace-with-a-comma-in-a-text-file-in-linux
-名称:获取目录列表
外壳:|
echo“{var_list_dirs}}”|tr”““\n”>/tmp/dirs.txt
标签:
-创建目录
-名称:创建目录
文件:
路径:{{item | safe | trim}}”
状态:目录
所有者:“{var_user}}”
组:{{var_group}}”
模式:0777
递归:是的
带_行:cat/tmp/dirs.txt
标签:
-创建目录

要使用
var\u list\u dirs
中的值,请将
与\u项一起使用
循环使用
var\u list\u dirs中的所有值。这将对列表中的每个值执行
create dirs
操作

- name: create dirs
  file:
    path: "{{ item|safe|trim }}"
    state: directory
    owner: "{{ var_user }}"
    group: "{{ var_group }}"
    mode: 0777
    recurse: yes
  with_items: "{{ var_list_dirs }}"
  when:
    - inventory_hostname in groups['node-hostname']
  tags:
    - create-dir
通过以下列表:

var_list_dirs:
  - directory1
  - directory2
  - directory3

谢谢@aru_sha4,但实际上我的问题是通过传递我可以在剧本中设置的列表
var_list_dirs
来创建目录。这样,无论有多少剧本想要创建目录,我的角色都不需要改变。好的。因此,您希望传递
var\u list\u dirs
,并且应该为
var\u list\u dirs
中存在的所有值执行创建该目录的操作?正当我添加了另一个更新。如果这是你想要的,请告诉我。嗨@aru_sha4,它给了我这个错误/bin/sh:1:/data:notfound致命:[35.232.170.16]:失败!=>{“msg”:“lookup_plugin.lines(/data/opt/elasticsearch server/opt/elasticsearch server/config/data/log/elasticsearch server/data/var/lib/elasticsearch-server_01/data/var/lib/elasticsearch-server_02/data/var/lib/elasticsearch-server_03/data/var/elasticsearch-server-server-backup)返回127”}`oh我传递的列表不正确。哦,上帝。让我再试一次。这是有道理的,当然。希望能有帮助。