Влад 🇺🇦
Спасибо
Степан
С какого нафиг сайта? Из файла и импортируется. url - это адрес самой графаны, куда api запросы шлются, а не сайт графаны
- name: import grafana dashboards uri: url: "{{ grafana_url }}/api/dashboards/db" user: "{{ grafana_security.admin_user }}" password: "{{ grafana_security.admin_password }}" force_basic_auth: true method: POST body_format: json body: '{ "dashboard": {{ lookup("file", item) }}, "overwrite": true }' no_log: true with_fileglob: - /tmp/dashboards/* Вроде нашёл :) Но не в доке на сайте а в примерах cloudalchemy
Степан
ага
Timur
А модуль grafana_dashboard делает то же самое более лаконично, вот и все
GithubReleases
ansible/ansible tagged: v2.8.0 Link: https://github.com/ansible/ansible/releases/tag/v2.8.0 Release notes: New release v2.8.0
Timur
Прикольно
Timur
Added experimental support for connecting to Windows hosts over SSH using ansible_shell_type=cmd or ansible_shell_type=powershell
Vladislav 👻
А где глянуть changelog?
Timur
https://github.com/ansible/ansible/blob/stable-2.8/changelogs/CHANGELOG-v2.8.rst
Timur
* win_get_url - Add idempotency check if the remote file has the same contents as the dest file. * win_get_url - Add the checksum option to verify the integrity of a downloaded file. Вот эти фичи конкретно мы добавляли
Nikolay
втф, вроде таск не выполняется, падает с еррором, но по факту отрабатывается ( таск на уведомление, уведомление приходит) fatal: [localhost]: FAILED! => {"msg": "The conditional check 'state = 'running' or 'restarted'' failed. The error was: template error while templating string: expected token 'end of statement block', got '='. String: {% if state = 'running' or 'restarted' %} True {% else %} False {% endif %}\n\n
Nikolay
использую when: state = 'terminated'
Timur
Оператор сравнения ==
Timur
А у вас =
Nikolay
Не, я уже все пробовал
Timur
Не, я уже все пробовал
Тогда покажите сам код
Nikolay
- name: Send notification message via Slack all options slack: token: ' xxxx ' msg: " xxxxx " channel: '#alerts' username: 'Ansible' when: state != 'running' or 'restarted'
Nikolay
я говорю, странно, что сообщение в слак присылается не смотря на ошибку
Vladislav 👻
А state чего?
Nikolay
передаваемой переменной в строке запуска
Nikolay
ansible-playbook test.yml -e "state=running"
Vladislav 👻
Это вроде зарезервированое слово
Vladislav 👻
И опять таки, условие странное, второе сравнение что с чем? Там истина априори
Nikolay
Не, в доке про переменную state ни слова. Ну попробую ее по другом обозвать сейчас
Nikolay
а что не так со вторым сравнением?
Timur
Там просто строка, а не логическое сравнение
Sergey
Nikolay
FAILED! => {"msg": "The conditional check 'status!==running or status!==restarted' failed. The error was: template error while templating string: unexpected '='. String: {% if status!==running or status!==restarted %} True {% else %} False {% endif %}\n\n Исправил, все так же
Vladislav 👻
Почему два знака равно?
Nikolay
сравнение со значением переменной
Sergey
when: - A != 'shit' - A != 'omg'
Sergey
Хватит уже фигнёй заниматься, доки есть, их нужно читать.
Vladislav 👻
Это не PHP, и я не шучу
Это вроде в java такая херня
Terry
а = для переменных
Terry
http://qaru.site/questions/677183/compare-two-variables-in-jinja2-template
Sergey
- name: Send notification message via Slack all options slack: token: ' xxxx ' msg: " xxxxx " channel: '#alerts' username: 'Ansible' when: state != 'running' or 'restarted'
или делай в две строчки или в одну строку в скобках (state != 'running') or (state != 'restarted')
Nikolay
Хватит уже фигнёй заниматься, доки есть, их нужно читать.
если б я не читал доку, я бы сюда не обращался
Алексей
Пару часов назад вышел релиз Ansible v2.8.0 🎉🎉🎉 Из основного: * Нормальное определение дефолтного питона вместо ожидания /usr/bin/python * Экспериментальная поддержка ansible collections and content namespacing * Удалили полностью старые опции --sudo, которые были заменены --become И много других улучшений Полный ченжлог: http://amp.gs/ULF4 #ansible #news
Terry
влепите github release бота
Nikolay
главный прикол: - debug: msg: "Ansible when or example" when: status != 'running' or status != 'restarted' - name: Send notification message via Slack all options slack: token: 'xxx' msg: " xxx " channel: '#alerts' username: 'Ansible' when: status != 'running' or status != 'restarted
Sergey
влепите github release бота
дак он есть тут
Nikolay
дебаг отрабатывает
Nikolay
слак падает
Sergey
если б я не читал доку, я бы сюда не обращался
Я, кстати, со списком ошибся - это соответствует логическому И.
Sergey
+1
https://t.me/pro_ansible/91345
Nikolay
TASK [1 : debug] ************************************************************************************************************************************************ ok: [localhost] => { "msg": "Ansible when or example" } TASK [1 : Send notification message via Slack all options] ****************************************************************************************************** fatal: [localhost]: FAILED! => {"msg": "The conditional check 'status != 'running' or status != 'restarted' failed. The error was: template error while templating string: unexpected char u\"'\" at 39. String: {% if status != 'running' or status != 'restarted %} True {% else %} False {% endif %}
Timur
слак падает
Кавычки закрывающей не хватает в конце
Timur
'restarted
Nikolay
да, кавычки не хватало, но это, как ни странно, не помогло тоже
Nikolay
Вот сейчас условие отработало, собщение пришло, но все равно с ошибкой падает таск
Vladislav 👻
Жги
Vladislav 👻
Что за ошибка?
Nikolay
жгу, ошибка та же)
Nikolay
fatal: [localhost]: FAILED! => {"msg": "The conditional check 'status != 'running' or status != 'restarted' failed. The error was: template error while templating string: unexpected char u\"'\" at 39. String: {% if status != 'running' or status != 'restarted %} True {% else %} False {% endif %}\n\nThe error appears to have been in
Timur
Попробуй поменять одинарные кавычки на двойные
Nikolay
when я скопировал с дебага спецом, чтоб уж наверняка, и все ранво дебаг отрабатывает - второй таск нет
Timur
Да, версия ансибла какая?
Nikolay
2.7.10
Vladislav 👻
Пробелы, скобки и вот это вот все
Vladislav 👻
И кавычки
Vladislav 👻
По ошибке даже вроде на кавычки ругается, засунь в двойные
Nikolay
перебил заново, все норм
DiNGeR
Добрый день. Обновил ansible до 2.7.10, и на хостах где нет питона стало падать на шаге Gathering Facts. Оно как бы там и не надо, решил отключить. Но кроме как в playbook/role не нашел куда можно вставить gather_facts: no. Хочу отключить для целой группы, но ни inventory ни в vars я так понял оно не работает. Вопрос: как отключить сбор фактов для группы хостов?
DiNGeR
[WARNING]: Skipping unexpected key (gather_facts) in group (vbox), only "vars", "children" and "hosts" are valid Инвентори в yaml формате.
DiNGeR