我下面有一部剧本:
- hosts: localhost
vars:
folderpath:
folder1/des
folder2/sdf
tasks:
- name: Create a symlink
shell: "echo {{folderpath}} | awk -F'/' '{system(\"mkdir \" $1$2 );}'"
register: result
#- debug:
# msg: "{{ result.stdout }}"
with_items:
- " {{folderpath}} "
但是,当我运行剧本时,会得到2个文件夹。第一个是:
1- folder1des (as expected)
2- folder2 (this should ideally be folder2sdf )
我尝试了许多组合,但仍然不想工作。我需要什么才能使其正常工作。
答案 0 :(得分:0)
我目前没有一个痛苦的环境。但是以下方法应该起作用:
- hosts: localhost
tasks:
- name: Create a symlink
shell: "echo {{item}} | awk -F'/' '{system(\"mkdir \" $1$2 );}'"
register: result
#- debug:
# msg: "{{ result.stdout }}"
with_items:
- folder1/des
- folder2/sdf
说明: 您正在向with_items添加一个列表对象。因此,在您的with_items中,它仅找到一个要迭代的对象(属于列表类型)。因此,它只运行一次。所以现在我要做的是将项目列表传递给with_items,这样它就可以遍历with_items中存在的多个项目。
希望这会有所帮助!
答案 1 :(得分:0)
也许
- hosts: localhost
vars:
folderpath:
folder1/des
folder2/sdf
tasks:
- name: Create a symlink
file:
state : link
path : "{{ item | regex_replace('[0-9]/','_') }}"
src : "{{ item }}"
with_items: " {{ folderpath }} "
给定代码中的任何内容都不会创建符号链接。那真的就是你的本意吗?