Невозможно использовать модуль разархивации для распаковки папки file.tar.gz также при ошибке используемого модуля оболочки
Моя книга с модулем оболочки
- name: Unarchive macports from local machine
shell: |
tar -xvf MacPorts-2.6.2.tar.gz
cd MacPorts-2.6.2
./configure
make
make install
Ошибка [ПРЕДУПРЕЖДЕНИЕ]: рассмотрите возможность использования модуля разархивирования вместо запуска tar. Если вам нужно использовать команду из-за того, что разархивирования недостаточно, вы можете добавить 'warn: false' в эту командную задачу или установить 'command_warnings=False' в ansible.cfg, чтобы избавиться от этого сообщения. фатальный: [XXXX]: НЕ ПРОШЛО! => {"изменено": true, "cmd": "tar -xvf MacPorts-2.6.2.tar.gz\ncd MacPorts-2.6.2\n./configure\nmake \nmake install\n", "delta": "0:00:00.026259", "end": "2020-06-03 15:54:26.259407", "msg": "ненулевой код возврата", "rc": 2, "start": "2020-06-03 15:54:26.233148", "stderr": "tar: Ошибка при открытии архива: Не удалось открыть 'MacPorts-2.6.2.tar.gz'\n/bin/sh: строка 1: cd: MacPorts-2.6.2:Нет такого файла или каталога \n/bin/sh: line 2: ./configure: Нет такого файла или каталога \nmake: * Цели не указаны и make-файл не найден. Стоп. \ Nmake: * Нет правила делать цель install'. Stop.", "stderr_lines": ["tar: Error opening archive: Failed to open 'MacPorts-2.6.2.tar.gz'", "/bin/sh: line 1: cd: MacPorts-2.6.2: No such file or directory", "/bin/sh: line 2: ./configure: No such file or directory", "make: *** No targets specified and no makefile found. Stop.", "make: *** No rule to make target
установить '. Стоп."], " Stdout": "", "stdout_lines": []}
Но у меня есть файл tar.gz на целевой машине, когда я использую модуль разархивирования, чтобы распаковать, столкнувшись с проблемой ниже
ЗАДАЧА [Разархивировать macports с локального компьютера] *********************************************************************************************************************** фатальный: [XXX]: НЕ УДАЛОСЬ! => {"changed": false, "msg": "Не удалось найти обработчик для \"/Users/pru5/Documents/ansible/MacPorts-2.6.2.tar.gz\". Убедитесь, что указана необходимая команда для извлечения файла файл установлен. Команда \"/usr/bin/tar\" определена как tar типа bsd. Требуется GNU tar. Команда \"/usr/bin/unzip\" не может обработать архив."} может кто-нибудь помочь мне распаковать файл в Mac??
2 ответа
Я установил jnu-tar, но не уверен, что это помогло. Разархивируйте работу dint и без выбора выбрали оболочку
name: extract tar
shell: |
cd <file_path>
tar -xvf <file_path/file_name>
Первый пункт - использовать полные пути с плейбуками Ansible. Я бы порекомендовал сделать как две части, сначала будет разворачивать файл с помощью собственного модуля Ansible.unarchive
, вторая часть настроит и установит с помощью command
или shell
модуль
- name: Extract TAR
unarchive:
src: /Users/pru5/Documents/ansible/MacPorts-2.6.2.tar.gz
dest: /tmp/MacPorts
- name: Install software
command: cd /tmp/MacPorts && ./configure && make && make install