Установить Ansible факт на основе символьной c ссылки - PullRequest
0 голосов
/ 28 января 2020

У меня есть задача 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 голосов
/ 31 января 2020

Запустите модуль stat по вашей ссылке latest, зарегистрируйте результат и изучите его.

Вы должны найти ключ lnk_source, указывающий на ваш исходный файл.

Ссылка : stat спецификация возвращаемого значения модуля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...