Ansible playbook 创建相对链接

问题描述 投票:0回答:2

有人可以让我知道如何创建相对符号链接吗?

我在以下文件夹下有文件。

/usr/share/aws/hive/encryption/test-1.2.3.jar 

我要在这个文件夹中创建指向这个 jar 的链接。类似的东西

test.jar -> test-1.2.3.jar 

但是,使用以下 ansible 代码,它需要绝对路径。

  - name: create soft link
    file:
        src: "/usr/share/aws/hive/encryption/test-1.2.3.jar"
        dest: "/usr/share/aws/hive/encryption/test.jar"
        state: link
        force: yes

输出

test.jar -> /usr/share/aws/hive/encryption/test-1.2.3.jar 
ansible
2个回答
4
投票

试试这个


  - name: create soft link
    file:
      src: test-1.2.3.jar
      path: /usr/share/aws/hive/encryption/test.jar
      state: link
      force: true

引用参数src

相对路径是相对于正在创建的文件(路径)而言的,这就是 Unix 命令 ln -s SRC DEST 处理相对路径的方式。


注意:参数force需要在以下情况下使用:

  • 路径文件不存在
  • src存在并且是一个文件

不幸的是,文档中的措辞具有误导性:

在两种情况下强制创建符号链接: 源文件不存在(但稍后会出现); 目标存在并且是一个文件(因此,我们需要取消路径文件的链接并创建指向 src 文件的符号链接来代替它)。


1
投票

您可以尝试使用 shell 模块。在您的情况下,如果采用绝对路径,因为这就是给出源和目的地的方式。

- name: Create a Symlink
  shell:
    cmd: ln -s test-1.2.3.jar test.jar
    chdir: /usr/share/aws/hive/encryption/
© www.soinside.com 2019 - 2024. All rights reserved.