首页 > 解决方案 > 有没有办法在 Ansible 中拆分现有文件路径目录并在任务后期使用它?

问题描述

我是 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 。请建议我应该遵循什么?

标签: splitansiblestrip

解决方案


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

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

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

推荐阅读