Chiar dacă de fapt nu ați furnizat nicio informație despre cum a eșuat codul dvs., există câteva probleme evidente. Ansible nu este shell și nu puteți accesa variabilele Ansible folosind sintaxa shell. Aveți, de asemenea, diferite nume de variabile în codul dvs. (javaurl
) și în exemplul dvs. invocarea CLI (java_url
). Am ales în mod arbitrar să folosesc java_url de mai jos.
Există mai multe moduri de a începe să remediați sarcina existentă.
# Folosiți în mod constant Jinja
- nume: Descărcați Java la cea mai recentă versiune
coajă: |
mkdir /opt/java
cd /opt/java
wget -c --header „Cookie: oraclelicense=accept-securebackup-cookie” {{ java_url }}
tar -xzvf {{ (java_url | urlsplit).cale | nume de bază }}
# Utilizați în mod constant variabilele shell
- nume: Descărcați Java la cea mai recentă versiune
coajă: |
mkdir /opt/java
cd /opt/java
wget -c --header „Cookie: oraclelicense=accept-securebackup-cookie” $java_url
tar -xzvf ${java_url##*/}
mediu inconjurator:
java_url: „{{ java_url }}”
Cu toate acestea, în loc să vă remediați scriptul shell, ar trebui să-l rescrieți folosind caracteristicile încorporate Ansible pentru a face această lucrare.
- nume: Creați /opt/java
fişier:
dest: /opt/java
stare: director
- nume: Descărcați JDK-ul Java
get_url:
url: „{{ java_url }}”
dest: /opt/java
anteturi:
Cookie: oraclelicense=accept-securebackup-cookie
înregistrare: rezultat
- nume: Extrageți JDK-ul Java
dezarhivare:
src: „{{ result.dest }}”
remote_src: adevărat
dest: /opt/java