Несмотря на то, что вы на самом деле не предоставили никакой информации о том, почему ваш код дал сбой, есть некоторые очевидные проблемы. Ansible не является оболочкой, и вы не можете получить доступ к переменным Ansible, используя синтаксис оболочки. У вас также есть разные имена переменных в вашем коде (javaurl
) и в вашем примере вызова CLI (java_url
). Я произвольно решил использовать java_url ниже.
Существует несколько способов начать исправление существующей задачи.
# Постоянно используйте Jinja
- имя: Загрузить Java до последней версии
оболочка: |
mkdir/opt/java
компакт-диск /опт/Java
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{ java_url }}
tar -xzvf {{ (java_url | urlsplit).path | базовое имя }}
# Постоянно используйте переменные оболочки
- имя: Загрузить Java до последней версии
оболочка: |
mkdir/opt/java
компакт-диск /опт/Java
wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" $java_url
смолка -xzvf ${java_url##*/}
среда:
java_url: "{{ java_url}}"
Однако вместо того, чтобы исправлять свой сценарий оболочки, вы должны переписать его, используя встроенные функции Ansible для выполнения этой работы.
- имя: Создать /opt/java
файл:
место назначения: /opt/java
состояние: каталог
- имя: Загрузите Java JDK
get_url:
URL-адрес: "{{java_url}}"
место назначения: /opt/java
заголовки:
Файл cookie: oraclelicense=accept-securebackup-cookie
регистрация: результат
- имя: Извлечь Java JDK
разархивировать:
источник: "{{результат.назначение}}"
remote_src: правда
место назначения: /opt/java