Не удается извлечь файл tar через модуль поиска в macOS? - PullRequest
0 голосов
/ 05 февраля 2019

Я написал playbook, который загружает файл tar и извлекает его в какой-то каталог на Mac. Но когда я запускаю playbook, происходит сбой с ошибкой ниже

"msg": "Не удалось найтиобработчик для \ "/ Users / harmeet / .ansible / tmp / ansible-tmp-1549339698.75-251687957122076 / config.tar9IXAUQ.gz \". Убедитесь, что установлена ​​необходимая команда для извлечения файла. Команда \ "/ usr / bin /tar \ "обнаружен как тип tar bsd. GNU tar требуется. Команда \" / usr / bin / unzip \ "не может обработать архив.

Код для playbook

-name: Download the tar for sample config 
unarchive:
 src: http://someremoteurl/config.tar.gz 
dest: /Users/{{ansible_user}}/.myfolder/ 
remote_src: yes 
creates: /Users/{{ansible_user}}/.myfolder/config

Если на удаленном сервере используется zip-файл, такой как http://someremoteurl/config.zip, то эта задача работает, но для файлов tar она не выполняется.

Я также установил gnu tar, такой как gtar и обновленный путь в .bash_src после рассмотрения этот вопрос

1 Ответ

0 голосов
/ 19 февраля 2019

На самом деле в macOS он ищет модуль архивирования tar на основе GNU, который не был найден на mac.Поэтому, если вы используете zip-модуль для mac в ansible, он будет работать, но для этого нам может потребоваться изменить файл playbook, и это может создать проблемы, так как я использую один playbook для mac и linux.Для решения этой проблемы я использовал модуль архивирования tar на основе GNU.

Я решил эту проблему, выполнив следующие шаги:

  1. Установите gtar с помощью homebrew.brew install gnu-tar
  2. Установить путь к gtar в файле .bashsrc, иначе он не сможет использовать gtar для разархивирования.Обычно .bashsrc существует на $HOME пути.если он не существует, создайте его.

export PATH = "/ usr / local / opt / gnu-tar / libexec / gnubin: $ PATH" export MANPATH = "/ usr / local /opt / gnu-tar / libexec / gnuman: $ MANPATH "

Спасибо

...