在Vagrant設置中,我使用Ansible來調配虛擬機。Ansible角色:更改文件擴展名
在Ansible角色之一,我有一個副本文件夾裏面的一些文件的任務:
~/bin/one.sh
~/bin/two.sh
我要那麼最終的結果看起來像創建這些文件的符號鏈接:
~/bin/one.sh
~/bin/two.sh
~/bin/one
(syml墨~/bin/one.sh
)
~/bin/two
(符號鏈接指向~/bin/two.sh
)
我怎樣才能做到這一點?到目前爲止,我已經試過,但它不工作:
- name: Common tasks =>Create symlinks for utilities
file: src=~/bin/{{ item }} dest=~/bin/ mode=755 state=link
with_fileglob:
- bin/*
我需要把一個正則表達式中dest=~/bin/
,是以文件名(如one.sh
)和刪除的擴展名(one.sh
變得one
),但我不知道該怎麼做。
更新
我終於用這個任務:
- name: Copy common files to ~/bin
copy: src={{ item }} dest=~/bin/ mode=755
with_fileglob:
- bin/*
- name: Ensure symlinks for utilities exist
file: src=~/bin/{{ item | basename | regex_replace('(\w+(?:\.\w+)*$)', '\1') }} dest=~/bin/{{ item | basename | regex_replace('\.sh','') }} mode=755 state=link
with_fileglob:
- bin/*
@techraf我更新了我的問題,謝謝! – numediaweb