Команда Ansible Unarchive вызывает ошибку «Не удалось найти обработчик» - PullRequest
0 голосов
/ 10 ноября 2019

Я управляю AmazonLinux2 на EC2, используя Ansible.
Однако, когда команда Unarchive выполнена, появляется следующая ошибка.

"Failed to find handler for \"/tmp/hoge.db.gz\".   
Make sure the required command to extract the file is installed.  
Command \"/usr/bin/unzip\" could not handle archive. Command \"/usr/bin/gtar\" could not handle archive."

Содержимое PlayBook:

- name: Unarchive hoge
  become: yes
  unarchive:
    src: /tmp/hoge.db.gz
    dest: /root/fuga/
    remote_src: yes

Ниже приведена информация, которую я изучил, чтобы определить причину ошибки.

  • Разархивировать Требуется Command
[root@ip- ~]# which gtar
/usr/bin/gtar
[root@ip- ~]# which unzip
/usr/bin/unzip
[root@ip- ~]# which zipinfo
/usr/bin/zipinfo
  • PATH
- debug:
    var: ansible_env.PATH
"ansible_env.PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

Я буду ждать вашего ответа

1 Ответ

1 голос
/ 11 ноября 2019

Модуль unarchive не может обрабатывать файлы gzip, если они не являются сжатыми tar-шарами (см. https://docs.ansible.com/ansible/latest/modules/unarchive_module.html).

. Вам потребуется использовать модуль copy, чтобы сначала скопировать файл gzip, а затемМодуль shell для его распаковки с использованием gunzip.

Пример:

- copy:
    src: /tmp/hoge.db.gz
    dest: /root/fuga/hoge.db.gz
- shell: gunzip /root/fuga/hoge.db.gz

Возможно, вам придется сначала установить gunzip на управляемом хосте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...