citius
у меня 2.7.
я просто тот еще мамкин питонист, видимо просто не знаю куда смотреть )
citius
В чем конкретно проблема-то?
да тупо не знаю как сослаться на переменную в инвентаре. если в том примере что я показал, то print (project) в плагине падает с ошибкой что переменная не определена
Sashko
Ставлю ансиблом на CentOS7 ius и epel и не проходит изза конфликта maria db((( кто сталкивался?
MRY
Модуль vmware_guest все равно выполняется локально у вас
Да но он берет информацию о виртуалках которые нужно создать через данный параметр
citius
Как именно код выглядит?
https://pastebin.com/n9ZKXnkS вот так
Timur
Ну, или как вариант, можете не менять hosts, но добавить к таску с модулем delegate_to: localhost
Sashko
А подробнее можно?
да сложно(( ну я постараюсь
Timur
https://pastebin.com/n9ZKXnkS вот так
Переменные в дочерних свойствах entity находятся
Timur
Свойство project без entity никак не задано
Timur
Так что плагин правильно ругается
Timur
Посмотрите на код vars плагина
Timur
https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/vars/host_group_vars.py
Sashko
в общем запускаю packer build для плейбука ansible, где у меня --- - hosts roles - ius - packages (все необходимые пакеты из груп варс) - php соответственно закидывается все через yum роли по ius и тд прописаны верно ругается на конфликт с maria_db
citius
Переменные в дочерних свойствах entity находятся
блин, я тормоз. выдернул, спасибо. говорю же мамкин питонист )
Sashko
Кто ругается? yum?
пакер на то что в ансибл конфликт
Timur
Ну, без деталей, что там у вас в ролях делается, мы можем только гадать
Sashko
в ролях репохи энеблятся и нужные пакеты подтягивает через packages
Timur
в ролях репохи энеблятся и нужные пакеты подтягивает через packages
Хороший шаблон для формулировки проблемы: «Доброе утро, для решения поставленной задачи я применил типовое решение (ссылка), но в результате получил (ссылка на пэйстбин). Нагуглив этот выхлоп, я обнаружил, что данную проблему до меня решали вот таким способом (ссылка на решение), однако в моём случае это не помогло. Прошу поделиться опытом в решении этой проблемы или помочь найти способ, как можно решить мою задачу»
Timur
А сейчас у вас формулировка выглядит как "товарищи уч0ные, объясните, пожалуйста, причину странного стука у меня в подвале"
MRY
Сделал в первом таске register: deploy_vm - debug: var: deploy_vm Второй таск не видит переменную deploy_vm
Asten
Не var а msg же?
Timur
hostvars[localhost][‘deploy_vm’]
Timur
Не var а msg же?
Туда тоже можно (с)
MRY
The full traceback is: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 140, in run res = self._execute() File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 539, in _execute self._task.post_validate(templar=templar) File "/usr/lib/python2.7/site-packages/ansible/playbook/task.py", line 267, in post_validate super(Task, self).post_validate(templar) File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 364, in post_validate value = templar.template(getattr(self, name)) File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 540, in template disable_lookups=disable_lookups, File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 495, in template disable_lookups=disable_lookups, File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 717, in do_template data = _escape_backslashes(data, myenv) File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 141, in _escape_backslashes for token in jinja_env.lex(d2): File "/usr/lib64/python2.7/site-packages/jinja2/lexer.py", line 739, in tokeniter name, filename) TemplateSyntaxError: unexpected char u'\u2018' at 72 line 2 fatal: [sg2anstest01a]: FAILED! => { "msg": "Unexpected failure during module execution.", "stdout": "" }
Timur
The full traceback is: Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 140, in run res = self._execute() File "/usr/lib/python2.7/site-packages/ansible/executor/task_executor.py", line 539, in _execute self._task.post_validate(templar=templar) File "/usr/lib/python2.7/site-packages/ansible/playbook/task.py", line 267, in post_validate super(Task, self).post_validate(templar) File "/usr/lib/python2.7/site-packages/ansible/playbook/base.py", line 364, in post_validate value = templar.template(getattr(self, name)) File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 540, in template disable_lookups=disable_lookups, File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 495, in template disable_lookups=disable_lookups, File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 717, in do_template data = _escape_backslashes(data, myenv) File "/usr/lib/python2.7/site-packages/ansible/template/__init__.py", line 141, in _escape_backslashes for token in jinja_env.lex(d2): File "/usr/lib64/python2.7/site-packages/jinja2/lexer.py", line 739, in tokeniter name, filename) TemplateSyntaxError: unexpected char u'\u2018' at 72 line 2 fatal: [sg2anstest01a]: FAILED! => { "msg": "Unexpected failure during module execution.", "stdout": "" }
На каком таске это вылезло?
MRY
2-й таск
Timur
Может, ещё и доступ корпоративный дадите тогда?
Sashko
Может, ещё и доступ корпоративный дадите тогда?
куда код заливать лучше для шера?
Sashko
Может, ещё и доступ корпоративный дадите тогда?
да это просто чат в слаке а не корпоративка
Timur
да это просто чат в слаке а не корпоративка
А в слаку как попадают по-вашему? :)
Timur
Слака к корпоративным аккаунтам привязана
Anonymous
Ребята помогите решить задачку. inventory [test] ntc53 ansible_ssh_host=10.0.1.53 till=ntc53 ntc54 ansible_ssh_host=10.0.1.54 bt=ntc54 safe=ntc54 для j2 выполняю цикл {% for h in groups['test'] %}{{ hostvars[h].['till'] }},{% endfor %} выподаю в ошибку. Задача отрабатывать один цикл для хостов у которых есть till и отдельно для хостов у которых есть bt. Пока неудачно.
Terry
Слака к корпоративным аккаунтам привязана
нет, есть паблик чаты, там просто рег если это для вас новость😎
Timur
Terry
Dr. L.S.Dee
Timur
Что, я ещё и должен дополнительный аккаунт в слаке регить, чтобы чужой лог прочитать?
Nklya
Это укропс, просто групповой чят, только не в телеге, а слаке. Есть еще hangops например или про голанг
Timur
Don't have an account on this workspace yet? Contact the workspace administrator for an invitation
MRY
Никак не получается вытащить в другой таск параметры
MRY
К примеру task1:
MRY
- set_fact: vminfo: hostvars[inventory_hostname task2: echo "{{ hostvars['vminfo'] }}"
MRY
через -debug также ничего
MRY
https://docs.ansible.com/ansible/latest/modules/set_fact_module.html
Timur
Я в курсе про модули
Timur
У вас в коде вообще синтаксически неверный вызов идёт
Nklya
Угу. Только доступа по умолчанию туда нет
Обычно это вот так работает https://slack.ukrops.club
MRY
У вас в коде вообще синтаксически неверный вызов идёт
Как не верный ? Все по документации Есть таск я из него присваиваю hostvars[inventory_hostname] в переменную vminfo Потом в другом таске пытаюсь получить к ней доступ
MRY
В коде закрыта
MRY
Может копипастой не все скопировал
Timur
В коде закрыта
А что вы сюда постите тогда?
Timur
Выложите код и выхлоп на pastebin
Timur
Трудно так, что ли?
MRY
https://pastebin.com/jFS9Rp9y
MRY
Сейчас выхлоп чистый но в файл из переменной ничего не записывается
Timur
Timur
Сейчас глянем
MRY
сотвественно вместо строки echo "{{ hostvars['vminfo'] }}" >> C:\Windows\Temp\ansible.txt будет скрипт на DNS который создаст записи.
MRY
но единственное что мне кажется дак это то что hostvars в таске 2 читает vars из сервера в группе dns, и нужно сделать чтото типа hostvars['localhost']['vminfo'].peer_ip
Timur
Конструкция вида {{ hostvars['vminfo'] }} неправильная по определению
Timur
https://pastebin.com/jFS9Rp9y
Добавьте к первому таску директиву register: vmres
MRY
Конструкция вида {{ hostvars['vminfo'] }} неправильная по определению
Такая конструкция показывает некоторую информацию но переменных внутри нет echo "{{ hostvars['localhost'] }}" >> C:\Windows\Temp\ansible.txt
Timur
А вторым таском выведите результат: - debug: var: vmres