У меня очень странная проблема с Ansible playbook.
Я использую ansible с Flask API, поэтому я использую ansible -runner для передачи моих переменных в мою playbook.
Моя книга игр - просто отладка моего словаря и его атрибута ip:
- hosts: localhost
connection: local
any_errors_fatal: no
tasks:
- debug:
msg: '{{ device }}'
- debug:
msg: '{{ device["ip"] }}'
И вот тогда я больше ничего не понимаю. Мое приложение находится в docker контейнере, и это ошибка, которую я получаю при запуске своей книги воспроизведения:
deploy okay [WARNING]: Unable to parse /etc/ansible/hosts as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [shell] *******************************************************************
changed: [localhost]
TASK [Set date and time] *******************************************************
ok: [localhost]
TASK [Define log filepath] *****************************************************
ok: [localhost]
TASK [Create staging folder] ***************************************************
ok: [localhost]
TASK [begin of logging file] ***************************************************
changed: [localhost]
TASK [debug] *******************************************************************
ok: [localhost] => {
"msg": {
"admin_password": "",
"admin_user": "user",
"dns1_server_ip": "0.0.0.0",
"equipement_name": "NEW_EQUIPMENT",
"hostname": "EQUIPMENT",
"ip": "127.0.0.1",
"port": 80
}
}
TASK [debug] *******************************************************************
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'str object' has no attribute 'ip'\n\nThe error appears to have been in '/path/main.yml': line 59, column 9, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - debug:\n ^ here\n"}
PLAY RECAP *********************************************************************
localhost : ok=7 changed=2 unreachable=0 failed=1
За исключением случаев, когда я запускаю свою книгу игр за пределами docker, у меня нет ошибок, и я использую те же версии python не возможны локально или на моем docker.
У вас есть идеи, что это такое?
Ansible 2.7.4
Python 3.5.3
Если вам нужна дополнительная информация, не стесняйтесь спрашивать.
[РЕДАКТИРОВАТЬ]
Я пробовал новые вещи об этой проблеме, и это, кажется, проблема формата. Итак, я сделал более полный пост ЗДЕСЬ