根据符号链接设置Ansible事实

时间:2020-01-28 14:46:47

标签: ansible

我有一个Ansible任务来安装Anaconda:

---
- name: "Set variables"
  set_fact:
    package: "/software/anaconda/Anaconda3-2019.07-Linux-x86_64.sh"

- set_fact:
    anadir: "/opt/anaconda/anaconda3-2019.07"

- name: "Check existence"
  stat:
    path: "{{ anadir }}"
  register: anaconda

- debug:
    msg: "{{ anadir }} already exists."
  when: anaconda.stat.exists == True

- name: Install Anaconda
  shell: "/bin/bash {{ package }} -b -p {{ anadir }}"
  when: anaconda.stat.exists == False

但是我不想在文件中进行硬编码。我什至都不想要任何变量。

如果我在目录/software/anaconda中有一个像latest -> Anaconda3-2019.07-Linux-x86_64.sh这样的链接,我可以确定我可以设置值为Anaconda3-2019.07-Linux-x86_64.sh的事实。但是我找不到一种优雅的方法。

1 个答案:

答案 0 :(得分:0)

针对您的stat链接运行latest模块,注册结果并进行探索。

您应该找到一个指向原始文件的lnk_source键。

参考:stat module return value specification