温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Set Ansible fact based on symbolic link
ansible

其他 - 根据符号链接设置Ansible事实

发布于 2020-03-29 12:50:00

我有一个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但是我找不到一种优雅的方法。

查看更多

查看更多

提问者
lanes
被浏览
106
Zeitounator 2020-01-31 16:09

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

您应该找到一个lnk_source指向原始文件密钥。

参考:stat模块返回值规范