artb1sh
Кеш почисти
Timur
Параметр users_create undefined
Timur
А, ну и ещё депрекейтнутый способ инклуда тасков замечен
Yerlan
прогнал flush-cache, тщетно
Yerlan
поправил. Спасибо
Yerlan
The task includes an option with an undefined variable. The error was: 'dict object' has no attribute
Yerlan
dict_object - что может означать?
Terry
спс, забрал стикер себе
Timur
Неправильно вызывается какая-то переменная
Yerlan
--- - name: Add lines to pg_hba.conf lineinfile: path: "{{ postgres_home }}/pg_hba.conf" insertafter: 'EOF' line: "{{ item.line }}" with_items: - { 'host postgres barman ip_addr/32 md5' } - { 'host postgres streaming_barman ip_addr/32 md5' }
Yerlan
что здесь может быть криминального?
Victor
В словаре item нету элемента line. Очевидно же
Victor
Конкретно в твоем случае убери фигурные скобки и item.line замени на просто item
Yerlan
при таком раскладе: with_items: - 'host postgres barman 172.28.5.196/32 md5' - 'host postgres streaming_barman 172.28.5.196/32 md5' The task includes an option with an undefined variable. The error was: 'ansible.utils.unsafe_proxy.AnsibleUnsafeText object' has no attribute
Victor
Лайн выкинул?
Yerlan
ептаааа
Yerlan
спасибо!!
Yerlan
заработало
Yerlan
Мозг чуть не вскипел
Yerlan
Странно однако, при просто вставке через lineinfile надо без фигурных скобок и item.line А если замена строки то это ☝️ все надо
Sergey
Например есть роль проекта, а он в свою очередь разбит на другие роли, т.к. проект разбит на микросервисы многочисленные.
В этом случае "роли проекта" не существует - ты почему-то этим выражением назвал плейбук + инвентори-файлы.
Rushan
https://rndmh3ro.github.io/ вдруг кому интересно посмотреть на callback плагины в действии :)
Александр
В этом случае "роли проекта" не существует - ты почему-то этим выражением назвал плейбук + инвентори-файлы.
Да, я тут плаваю в структуре ansible при множестве плейбуков. Везде описывают именно роли
Александр
В этом случае "роли проекта" не существует - ты почему-то этим выражением назвал плейбук + инвентори-файлы.
Т.е. сейчас у меня проблема в куче плейбуков в одном каталоге с разными задачами.
Александр
И вот я не могу пересечь черту с объединением нескольких плейбуков в отдельный подкаталог, т.к. везде предлагается в основном только каталог roles
Александр
А некоторые переменные и файл hosts расположен в основном каталоге с плейбуками.
Yerlan
Подскажите как можно сделать так: Есть роль по установке и настройке ПО на сервере, при ее отрабатывании на удаленных серверах надо еще дописать/изменить конфиги некоторые на локальной машине (откуда запущена роль на выполнение)
Yerlan
Возможно такое сделать?
Egor
delegate_to
Yerlan
спасибо, почитаю
Danis
Он ругается на внутренний item в файле.
Vadim
у меня возникла срочная необходимость попрограммировать на ямле, подскажите, как лучше всего реализовать "что-то упало, попробую собрать логи"?
Vadim
например, можно ли делать ignore_errors: true при импорте плейбука?
Sergey
например, можно ли делать ignore_errors: true при импорте плейбука?
Можно, наверное, но зачем? Ты хочешь выхлоп плейбука поймать?
Vadim
Можно, наверное, но зачем? Ты хочешь выхлоп плейбука поймать?
нет, у нас кластеры CI динамически создает, запускает тесты и сносит его. Если он не поднялся, то у меня нет никакой инфы почему всё сломалось - только что плейбук успел вывести
Vadim
да и кастомерам придется писать troubleshoot доку - так что лучше побольше в вывод плейбука сложить
Timur
Не сработало. Сначала попросил добавить loop_control с loop_var, добавил, после чего пишет item is undefined.
Правильно. Потому что вместо item нужно указывать то имя, что стоит в loop_var
Vadim
Лучше через callback plugin это делать
ага, судя по всему это наименее кривое решение будет, спасибо
Timur
Например: https://docs.ansible.com/ansible/latest/plugins/callback/log_plays.html
Timur
Можно слать в сислог или логстеш
mertv0e
split в jinja умеет в несколькео разделителей?
ℭ𝔞𝔯𝔯𝔬𝔩
mertv0e
Есть выхлоп типа ipv4_1:192.168.0.1; ipv4_2:192...
mertv0e
Вот из этой строки выцепить чисто IP адреса
mertv0e
Сплитить по : и ;
mertv0e
Сама переменная в формате string
mertv0e
А точнее ansibleunsafetext
Victor
Сплитить по : и ;
А потом натравить ipaddr https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters_ipaddr.html
Danis
Правильно. Потому что вместо item нужно указывать то имя, что стоит в loop_var
Да, оказалось и loop_var прописал не туда. Сейчас не получается переменные туда передать, которые у меня в environments, если передаю через саму таску, происходит зацикливание.
xXxSPYxXx
Можно ли на ansible выполнить insert в mysql и перезагрузить сервис на другом хосте(сначало плейбук выполняется на другом). Если да, то подскажите как.
Danis
id: "{{ id }}"
mertv0e
А потом натравить ipaddr https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters_ipaddr.html
Ipaddr возвращает булевое значение. А мне надо на выходе получить айпишники без мусора
Egor
Можно ли на ansible выполнить insert в mysql и перезагрузить сервис на другом хосте(сначало плейбук выполняется на другом). Если да, то подскажите как.
Извиняюсь за вторжение не по делу, но делать через Ansible insert в базу - плохо. Используйте логику скриптов от разрабов или что-то похожее.
Timur
Башзибл, потом delegate_to
Не надо никакого башсибла, встроенный модули умеют запросы инсертить
ℭ𝔞𝔯𝔯𝔬𝔩
Сама переменная в формате string
Конвертнуть в лист или словарь через сплит по ,
Victor
mysql_db
Типо дамп заливаешь?
Timur
- name: "Make sql job" mysql_db: name: mysql state: import target: /tmp/myrequest.sql
Timur
Как-то так
Victor
Окс.
Timur
Timur
Любой запрос можно импортнуть, если права есть
Victor
Ну формально сначала делаешь файл-патч с запросами, потом его импортишь.
Timur
У нас в роли так сброс рутового пароля делается при начальной установке
Victor
Я к тому что это три таска вместо одного для одного инсерта и, возможно, немного страдающая очевидность происходящего. Не призываю к башзиблу, если че. И в целом ряде случаев mysql_db будет явно лучше.
mertv0e
Конвертнуть в лист или словарь через сплит по ,
а можно попроднобней? я э ту строку получаю вот так old_vm_settings.vm_list.68.split(';')[0]. Криво,но все же