Ansible: Глупое сообщение об ошибке «Ошибка дешифрования»

Созданный на 5 февр. 2016  ·  9Комментарии  ·  Источник: ansible/ansible

$ vagrant provision                                                                                                                                                                                                                        
==> default: Running provisioner: ansible...
    default: Running ansible-playbook...
PYTHONUNBUFFERED=1 ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false ANSIBLE_SSH_ARGS='-o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --connection=ssh --timeout=30 --limit='default' --inventory-file=/Users/bob/src/ansible-devops/.vagrant/provisioners/ansible/inventory -v playbook.yml
No config file found; using defaults
ERROR! Decryption failed
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

Я новичок в Ansible, но не припомню, чтобы когда-либо что-то шифровал, поэтому сообщение «Ошибка дешифрования» больше похоже на случай «Нам не удалось предоставить полезное сообщение об ошибке или программа не работает».

Несмотря на то, что говорить «Ошибка дешифрования» без указания того, что программа пыталась расшифровать, довольно ... глупо.

Я использую ansible 2.0.0.

Исправьте Ansible так, чтобы его можно было использовать.

Самый полезный комментарий

@ 0xABAB это второй грубый комментарий, который ты оставил. Мы рады помочь, но если вы продолжите оскорблять тех, кто пытается помочь (особенно членов сообщества, которые даже не являются сотрудниками Ansible), у нас не будет другого выбора, кроме как запретить вам публиковать сообщения о проблемах.

Все 9 Комментарий

Итак, можете ли вы предоставить бродячий файл и доступный файл, чтобы кто-нибудь мог воспроизвести и изучить проблему?

Я думаю, тебе не стоит со мной разговаривать, если ты задаешь такие вопросы новичку, извини. Любой серьезный разработчик может решить эту проблему за 5 минут; Я знаю что могу. Я просто не чувствую особой мотивации делать это, и у меня нет доступа к этому проекту. Если бы я это сделал, я, возможно, уже исправил это. При этом я предпочитаю даже не использовать программное обеспечение, написанное людьми с такими низкими стандартами качества.

@ 0xABAB это второй грубый комментарий, который ты оставил. Мы рады помочь, но если вы продолжите оскорблять тех, кто пытается помочь (особенно членов сообщества, которые даже не являются сотрудниками Ansible), у нас не будет другого выбора, кроме как запретить вам публиковать сообщения о проблемах.

@ jimi-c Вы имеете в виду, что счастливы бесплатно признать каждую ошибку, о которой я сообщил, и что вы счастливы, если новички исправят ошибки в вашем низкокачественном продукте бесплатно, и что если я объясню новичку, что он / она новичок что это не соответствует вашей корпоративной стратегии бесплатного труда?

Я думаю, что такие люди, как ты, Джими-c, худшие из худших ... или тебе просто не хватает ума, чтобы понять собственное поведение, и в этом случае я бы любезно посоветовал тебе просто бросить свою работу; вы сделаете всем одолжение.

@ 0xABAB Ты

PS «Новичок», который пытался вам помочь, за несколько лет внес более сотни коммитов в Ansible.

Я не использую Vagrant, и я не новичок в использовании возможности, но я сталкиваюсь с той же ошибкой - добавление -vvv , похоже, не дает никакой дополнительной информации. К сожалению, кажется, что комментарии до сих пор отвлекали людей от помощи в этом, но я рад предоставить информацию (или открыть новую проблему). Ansible вполне можно использовать без исправления этой проблемы.

Мой экземпляр vsphere использует самоподписанный сертификат, но работает с SSL, и я действительно не вижу никакой возможности отключить проверку сертификата, поэтому мой первый вопрос: возможно, это проблема. Я также могу полностью использовать модуль неправильно - вот что у меня:

playbook (vm_provision.yml):

- hosts: all
  gather_facts: false
  connection: local

  vars_prompt:
    - name: "vcenter_username"
      prompt: "VCenter Username: "
      private: no
    - name: "vcenter_password"
      prompt: "VCenter Password: "
      private: yes

  tasks:

    - vsphere_guest:
      vcenter_hostname: REDACTED
        username: "{{ vcenter_username }}"
        password: "{{ vcenter_password }}"
        guest: "{{ vm_name }}"
        from_template: yes
        template_src: "{{ vm_template }}"
        cluster: "{{ vm_cluster }}"
        vm_extra_config:
          notes: "{{ vm_note }}"
          folder: "{{ vm_folder }}"

Инвентарь (отредактированные элементы - это все строки):

[vmtest]
REDACTED vm_name='testvm'

[vmtest:vars]
vm_datastore='REDACTED'
vm_network='REDACTED'
vm_memory='4096' cpucount='2'
vm_template='REDACTED'
vm_note='Testing'
vm_folder='REDACTED'

доступный запуск:

ansible-playbook playbooks/vm_provision.yml -i inventory -l vmtest -vvv
SSH password:
SUDO password[defaults to SSH password]:
ERROR! Decryption failed

информация о доступной версии

ansible --version
ansible 2.1.0
  config file = /Users/aaron.nichols/projects/cba-deploy/ansible.cfg
  configured module search path = Default w/o overrides

@adnichols сообщение является результатом того, что ansible-vault не смог расшифровать файл vars, убедитесь, что вы либо передаете пароль хранилища, либо не включаете файл из хранилища.

Ошибка была сделана более ясной в текущей версии через 0f73fb0d6fce6c01e79a68267d184290408b429d, поэтому закрытие этого билета должно сделать очевидным, какой файл вызвал проблему.

Было бы неплохо сделать напоминание о необходимости использовать --vault-password-file , --ask-vault-pass или что-то в этом роде, если расшифровка не удалась, потому что пароль не был указан.

«Расшифровка не удалась» немного загадочна.

Я знаю, что эта проблема решена, и я использую ansible 2.1.1.0, но это сообщение об ошибке все еще появляется и требует от Google надежды исправить это. Он даже не упоминает файл хранилища в сообщении об ошибке.
Хотя этот пост заставил меня решить проблему, в моем случае причина заключалась в том, что пароль, используемый в .vault.passwd, не был тем паролем, который создал vault.yml. Гораздо лучшей ошибкой было бы:
"Невозможно расшифровать {путь к vault.yml}"

Была ли эта страница полезной?
0 / 5 - 0 рейтинги