Влад 🇺🇦
Спасибо
Степан
С какого нафиг сайта? Из файла и импортируется. 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
Степан
ага
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
Timur
https://github.com/ansible/ansible/blob/stable-2.8/changelogs/CHANGELOG-v2.8.rst
Vladislav 👻
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
Оператор сравнения ==
Timur
А у вас =
Nikolay
Не, я уже все пробовал
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
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 👻
Почему два знака равно?
Sergey
Nikolay
сравнение со значением переменной
Sergey
Sergey
when:
- A != 'shit'
- A != 'omg'
Sergey
Хватит уже фигнёй заниматься, доки есть, их нужно читать.
Terry
Terry
Terry
а = для переменных
Terry
http://qaru.site/questions/677183/compare-two-variables-in-jinja2-template
Sergey
Nikolay
Terry
Алексей
Пару часов назад вышел релиз Ansible v2.8.0 🎉🎉🎉
Из основного:
* Нормальное определение дефолтного питона вместо ожидания /usr/bin/python
* Экспериментальная поддержка ansible collections and content namespacing
* Удалили полностью старые опции --sudo, которые были заменены --become
И много других улучшений
Полный ченжлог: http://amp.gs/ULF4
#ansible #news
Terry
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
Nikolay
дебаг отрабатывает
Nikolay
слак падает
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
да, кавычки не хватало, но это, как ни странно, не помогло тоже
Sergey
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 я так понял оно не работает. Вопрос: как отключить сбор фактов для группы хостов?
Timur
DiNGeR
[WARNING]: Skipping unexpected key (gather_facts) in group (vbox), only "vars", "children" and "hosts" are valid
Инвентори в yaml формате.
Max
DiNGeR