Как исправить «IPAM Infoblox неправильно настроен?»

#ansible #reserved-ip-addresses

#ansible #зарезервированные IP-адреса

Вопрос:

Я вызываю infoblox из ansible, используя следующую инструкцию:

 - hosts: localhost
  gather_facts: false
  tasks: 
    - name: Include infoblox_vault
      include_vars: 
        file: 'infoblox_vault.yml'
    - name: Install infoblox-client for DDI
      pip:
        name: infoblox-client
      environment:
        HTTP_PROXY: http://our_internal_proxy.net:8080
        HTTPS_PROXY: http://our_internal_proxy.net:8080
      delegate_to: localhost
    - debug:
        msg: can I decrypt username?--> "{{ vault_infoblox_username }}"

    - name: Check if DNS Record exists
      set_fact:
        miqCreateVM_ddiRecord: "{{ lookup('nios', 'record:a', filter={'name': 'infoblox-devtest.net' }, provider={'host': 'ddi-qa.net', 'username': vault_infoblox_username, 'password': vault_infoblox_password }) }}"
    - debug: 
        msg: check var miqCreateVM_ddiRecord "{{ miqCreateVM_ddiRecord }}"
    - debug:
        msg: test to see amazing vm_name!  "{{ vm_name }}"
... code snipped
  

Когда задание выполняется, я получаю:

 Vault password: 
PLAY [localhost] ***************************************************************
TASK [Include infoblox_vault] **************************************************
ok: [127.0.0.1]
TASK [Install infoblox-client for DDI] *****************************************
ok: [127.0.0.1 -> localhost]
TASK [debug] *******************************************************************
ok: [127.0.0.1] => {
    "msg": "can I decrypt username?--> "manageiq-ddi""
}
TASK [Check if DNS Record exists] **********************************************
fatal: [127.0.0.1]: FAILED! => {"msg": "An unhandled exception occurred while running the lookup plugin 'nios'. Error was a <type 'exceptions.Exception'>, original message: Infoblox IPAM is misconfigured: infoblox_username and infoblox_password are incorrect."}
PLAY RECAP *********************************************************************
127.0.0.1                  : ok=3    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0   
  

Вот основная часть: "An unhandled exception occurred while running the lookup plugin 'nios'. Error was a <type 'exceptions.Exception'>, original message: Infoblox IPAM is misconfigured: infoblox_username and infoblox_password are incorrect."

Раньше этот сборник работал. Я не работал над этим несколько месяцев. Не уверен, почему он сломан.

Я подтвердил, что могу войти в infoblox client вручную, используя учетные данные. Я также попытался вручную ввести имя пользователя, чтобы убедиться, что оно расшифровывает учетные данные из файла ansible-vault. Это сработало нормально. Так что это не учетные данные, а не расшифровка хранилища. Это что-то другое.

Я нашел в Интернете следующие три связанные темы, но ни одна из них, похоже, не решает проблему: Эта (которая ссылается на добавление сертификатов в запрос. Кто-нибудь знает, как это сделать? Я не могу найти инструкции) Этот (в котором упоминаются проблемы с обновлением. Я показал версии, упомянутые в этом сообщении, нашим сетевым пользователям, и они сказали, что номера версий вообще не коррелируют с тем, что у нас есть в нашей среде, поэтому трудно оценить, имеет ли это значение.) Последний (который требует использования свойства 'http_request_timeout' : None , которое не кажется мне проблемой, поскольку я вообще не могу заставить его работать.)

Какие-либо теории? Спасибо!

Комментарии:

1. Возможно, вы захотите попробовать увеличить детализацию ansible (или даже big hammer env ANSIBLE_DEBUG=1 ansible-playbook ... ), чтобы посмотреть, сможете ли вы вывести реальное сообщение об ошибке, и / или попробуйте запустить ansible с env https_proxy=http://our_internal_proxy.net:8080 ansible-playbook -c local ... помощью, если этот lookup подпроцесс не получает доступ к прокси

2. Спасибо @mdaniel! Я попробую это.

3. Я ставлю на вариант 2 (обновление infoblox-client). Вы сказали, что это работало несколько месяцев назад, но в вашем playbook вы устанавливаете последнюю версию infoblox-client локально перед запуском фильтра. Это то, что было обновлено, ничего на стороне сервера. Попробуйте конкретно установить версию 0.4.21 в своей pip задаче.

4. Спасибо @guido, это поучительно, хотя исправление было чем-то другим. Я просто перестроил файл хранилища ansible и создал новые учетные данные в ansible, чтобы использовать его и viola, это работает.

Ответ №1:

Это может не решить проблему для других, но это решило ее для меня:

  1. Получен новый пароль для Ansible для входа в Infoblox.
  2. Создайте новый файл ansible vault, содержащий новый пароль infoblox. Я также ввел новый пароль для шифрования файлов хранилища.
  3. Я создал новый объект учетных данных в ansible, чтобы ansible мог читать новый файл хранилища.
  4. Я обновил playbook, чтобы использовать новое хранилище.

Теперь это работает. Что-то было не так с шифрованием.