Почему Ansible get_url выдает ошибку о контрольных суммах? - PullRequest
1 голос
/ 17 февраля 2020

У меня есть задача в моей ansible пьесе, которая загружает архив java с URL-адреса github. Задача здесь:

- name: Download Jar Plugin
  get_url:
    url: https://GitHub-URL/plugins-1.0.5.jar
    dest: /app/plugins/

Там нет упоминания о контрольной сумме, но она выдает эту ошибку:

fatal: [host]: FAILED! => {"changed": false, "msg": "attempted to take checksum of directory: /app/plugins/plugins-1.0.5.jar"}

Кто-нибудь есть какие-либо идеи по этому поводу? Есть ли обходной путь, чтобы заставить его загрузить этот java архив?

Ответы [ 2 ]

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

Попробуйте добавить аргумент контрольной суммы, как показано ниже:

- name: Download Jar Plugin
  get_url:
   url: https://GitHub-URL/plugins-1.0.5.jar
   dest: /app/plugins/
   timeout: 200
   checksum: <yourchecksum>

Надеюсь, это поможет согласно вашей ошибке.

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

Во-первых, GitHub не является подходящим местом для хранения двоичных файлов. Github не позволяет нам хранить один файл размером более 100 МБ в большинстве случаев. Вы должны хранить двоичные файлы на физическом сервере или в любом облачном хранилище и извлекать их оттуда.

Теперь, если вы действительно склонны следовать этой плохой практике, я предлагаю вам сначала создать эквивалент unix curl, чтобы сделать это. Если у вас есть существующая команда curl, поделитесь ею с нами или просто используйте модуль ansible shell в качестве отправной точки. Вы также можете попробовать увеличить время ожидания, так как по умолчанию оно составляет всего 10 секунд. Вот фрагмент кода, в котором время ожидания равно 200 секундам.

- name: Download Jar Plugin
  get_url:
    url: https://GitHub-URL/plugins-1.0.5.jar
    dest: /app/plugins/
    timeout: 200
...