Рейтинг:1

Как получить дополнительную ссылку vars java и загрузить ее в недоступном виде и извлечь ее

флаг in

Я хочу скачать java с http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz

затем извлеките его

tar -xzvf jdk-8u131-linux-x64.tar.gz

но не в состоянии сделать это

У меня есть приведенный ниже код ansible playbook

- имя: Загрузить Java до последней версии
      оболочка: |
              mkdir/opt/java
              компакт-диск /опт/Java
              wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{javaurl}}
              смолка -xzvf ${javaurl##*/} 
   
    - отладка:
        msg: "Java SDK: {{javaurl##*/}}"

Я передал URL-адрес из команды ansible, как показано ниже.

 ansible-playbook -i inventory.yml -k playbook.yml --extra-vars "java_url=http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux -x64.tar.gz"
Romeo Ninov avatar
флаг in
Будет разумно использовать java из вашего linux. У вас есть конкретная причина для загрузки Java с веб-сайта Oracle?
Rajarshi Das avatar
флаг in
да, нам нужно использовать этот URL, чтобы загрузить его Ромео
Michael Hampton avatar
флаг cz
В чем проблема?
Rajarshi Das avatar
флаг in
## в javaurl также не принимает wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{javaurl}} не может понять URL-адрес, который я отправляю через cli
Romeo Ninov avatar
флаг in
Почему вам нужна именно эта версия?
Michael Hampton avatar
флаг cz
Пожалуйста, будьте конкретны и опубликуйте фактические ошибки.
Rajarshi Das avatar
флаг in
спасибо за ответ, Майкл. Я получил его с помощью wget -c --header "Cookie: oraclelicense=accept-securebackup-cookie" {{javaurl}} смолка -xzvf ./jdk-*.tar.gz
Рейтинг:1
флаг th

Несмотря на то, что вы на самом деле не предоставили никакой информации о том, почему ваш код дал сбой, есть некоторые очевидные проблемы. 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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.