有没有办法在 Ansible 中拆分现有文件路径目录并在任务的后面使用它?

Is there a way of splitting the existing file path directory in Ansible & using that later in the task?

我是 Ansible 的新手,正在尝试解决拆分目录路径的问题,以便我可以将新路径存储在新变量中并稍后使用。我将我的剧本草稿放在下面。

---
- name: new directory path
  hosts: servers
  become: true
  become_user: root
  gather_facts: true
  tasks:
    - name: directory path1
      file:
        path: /home/usr/Desktop/hello/hello1
      register: path1
    
    - name: splitting path
      file:
        path: path1.split('/')
      register: path2

我想要的是从/home/usr/Desktop/hello/hello1 中提取:/home/usr/Desktop/hello 并将其存储在一个新的变量path2 中,以便我以后可以使用path2。 请建议我应该遵循什么?

您可以使用 dirname 过滤器从路径中获取目录。下面的代码片段会将 /home/usr/Desktop/hello 设置为 dir

注意,不要在给定路径中添加尾随 /,否则 ansible 将认为该目录与 return 相同的路径。

- set_fact:
    dir: "{{ '/home/usr/Desktop/hello/hello1' | dirname }}"