Ansible get_url истекает - PullRequest
       20

Ansible get_url истекает

0 голосов
/ 14 февраля 2020

У меня проблемы с загрузкой файла jar из Artifactory в экземпляре CentOs7 с Ansible. Это первый раз, когда я делаю это на экземпляре Linux.

Я использую модуль win_get_url на каждом экземпляре Windows, и он работает нормально

   - name: download artifacts
     win_get_url:
       url: '{{ some_url }}'
       username: '{{ jfrog_username }}'
       password: '{{ jfrog_password }}'
       dest: '{{ some_dest }}'
       force: no
       proxy_url: {{ some_proxy }}

Когда я использую модуль get_url это время ожидания. Я заметил, что модуль Linux не поддерживает параметр "proxy_url". поэтому я попытался запустить задачи с некоторыми другими параметрами, такими как

   - name: download artifacts
     get_url:
       url: '{{ some_url }}'
       username: '{{ jfrog_username }}'
       password: '{{ jfrog_password }}'
       dest: '{{ some_dest }}'
       force: no
       use_proxy: yes
       http_agent"{{ proxy }}
       checksum: {{ checksum }}

Но это всегда дает мне эту ошибку:

  "status": -1,
  "url": "https://some_url/installer.jar",
  "msg": "Failed to connect to www.jfrog.io at port 443: [Errno 110] Connection timed out",
  "invocation": {

Я проверил настройки брандмауэра и https открыта из / на этот сервер.

Любая помощь будет признательна.

ОБНОВЛЕНИЕ:

Если я использую curl, основываясь на подсказке, упомянутой Zeitounator, это работает! я могу скачать файл с:

     curl -O -u --user user:password 'https://some_url/installer.jar' 

Я не использую пароль прокси. Когда curl спросил пароль прокси-сервера, я просто нажал enter и curl загрузил файл без проблем.

Но с Ansible все равно не повезло.

Ответы [ 4 ]

1 голос
/ 16 февраля 2020

Следуя нашим комментариям: вам необходимо объявить прокси, который вы используете, в разделе environment, либо на уровне задания, либо на уровне игры.

environment:
  http_proxy: http://my_proxy:8080
  https_proxy: http://my_proxy:8080
  no_proxy: 127.0.0.1,localhost,.my_local_domain.com

Если ваш прокси-сервер нуждается в аутентификации Вам нужно будет передать аутентификацию в URI:

http://user:password@my_proxy:8080
0 голосов
/ 17 февраля 2020

ОБНОВЛЕНИЕ ОТВЕТА:

Установка окружения в игре только на https:xxx и в задаче get_url добавлено "становиться: да" решило проблему.

Еще раз спасибо всем

0 голосов
/ 17 февраля 2020

Я перепробовал все упомянутые советы, но безуспешно. Из-за приоритета этой пьесы я пока воспользуюсь модулем 'команда' с Curl для загрузки файла вместо модуля 'get_url'.

Спасибо всем за внимание к этому посту.

0 голосов
/ 16 февраля 2020

, если прокси-сервер настроен, @Zeitounator ответил на него правильно.

Но все же можно попробовать добавить ниже:

- name: download artifacts
 get_url:
   url: '{{ some_url }}'
   username: '{{ jfrog_username }}'
   password: '{{ jfrog_password }}'
   dest: '{{ some_dest }}'
   force: no
   use_proxy: yes
   http_agent"{{ proxy }}
   checksum: {{ checksum }}
   timeout: 30

По умолчанию время ожидания для модуля get_url составляет 10 секунд

...