我需要使用Ansible剧本删除文件和文件夹。我将文件/文件夹路径作为变量从Groovy脚本传递给Ansible剧本。
变量在一个名为 delete.properties 的 properties 文件中。我将文件/文件夹路径分别存储在一个变量中,以便将来需要时可以更改路径。
- 删除.属性 *:
delete_files=/home/new-user/myfolder/dltfolder1 /home/new-user/myfolder/dltfolder2 /home/new-user/myfolder/dltfolder3
Groovy脚本:
stage("Read variable"){
steps{
script{
def propertifile = readFile(properti file path)
deleteParams = new Properties()
deleteParams.load(new StringReader(propertifile))
}
}
}
stage("Delete files/folders"){
steps{
script{
sh script: """cd ansible code path && \
export ANSIBLE_HOST_KEY_CHECKING=False && \
ansible-playbook delete.yml \
--extra-vars"dete_files=${deleteParams.delete_files}" --user user"""
}
}
}
Ansible行动手册:
---
- name: delete files
hosts: localhost
tasks:
- name: delete files
file:
path: "{{ delete_files }}"
state: absent
由于上述代码,只有 delete.properties 文件中delete_files
(*/home/new-user/myfolder/dltfolder 1 *)变量中的第一个文件路径被删除。
我还需要删除delete_files
变量中包含的其他文件/文件夹路径。
2条答案
按热度按时间utugiqy61#
将文件的路径放入额外的变量中。例如,
然后,鉴于树
,文件
,以及行动手册
gives,在 --check --diff 模式下运行
rqqzpn5f2#
一种解决方案是解析Ansible剧本中的 properties 文件,如果你确实在
localhost
上操作,就像剧本中显示的那样,使用ini
lookup: