Sergey
task такой:
lineinfile:
dest: file.conf
regexp: '^#? ?{{ item.option }} ='
line: '{{ item.option }} = "{{ item.value }}"'
with_flattened:
- "{{ file_ini }}"
variable:
file_ini:
- option: qq
value: "33;45"
Ошибка: The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'option
Подскажите - как можно исправить
Lamobot
Sergey
если поменять на loop, то выдает ошибку: The error was: 'list object' has no attribute 'option
Timur
Timur
Просто loop:
Timur
И без дефиса в начале
Vladimir
Lamobot
Sergey
в одну строку тоже самое. Как я понимаю - нужно как-то заэкранировать ; или само здачение в поле value
Lamobot
Sergey
в defaults, это роль
Lamobot
в defaults, это роль
У тебя где-то ошибка в другом месте. Или file_ini не подхватывается из defaults или ещё что-то.
Так как вот такой плейбук выполняется отлично:
---
- hosts: localhost
vars:
file_ini:
- {option: "qq", value: "33;45"}
tasks:
- debug:
msg: "Option={{ item.option }} and value={{ item.value }}"
loop: "{{ file_ini }}"
Sergey
у меня там много значений перечислено все предыдущие заменяются, как доходит до значения с ; - падает с ошибкой
Timur
Lamobot
Lamobot
Сравни с другими значениями из того же листа
Vladislav 👻
Sergey
попробовал вывести так:
msg: '{{ item.option }} = "{{ item.value }}"'
loop: "{{ file_ini }}"
в результате так же все предыдущие выводятся, а на значении с ; так же отваливается
Timur
Sergey
пробовал менять на одинарные/двойные, вообще без кавычек - всегда одно и то же :(
Только в самом таске ничего не менял
Timur
Timur
Покажите
Sergey
value: "33;45" - тут пробовал, так же сейчас попробовал поставить %3b вместо ;
Sergey
в таске не пробовал
Sergey
все разобрался, извините за беспокойство.
Timur
Sergey
даже самому стыдно, оказывается там была опечатка, а я ее в упор не замечал :(
Timur
Sergey
Sergey
Обходиться одним набором групп мсье не позволяют городсть и предубеждение? O_o
Владислав
Sergey
^^^
George
Sergey
George
Она не наглядная, т.к. провоцирует создавать группы на каждый чих. Условно - я хотел каждый узел отнести к двум или более категориям
Sergey
Здесь я, пожалуй, соглашусь. Однако, насколько я понимаю, это больше вопрос к тому, как мы в _плоскую древовидную_ (YaML) структуру записываем закольцованный граф (спойлер: через задницу).
Sergey
То бишь если запилить годный dynamic inventory с поддержкой вот этой вот хотелки, то снова всё будет гуд.
George
Timur
George
Вообще-то да
Timur
George
Rad
подскажите пожалуйста, запутался в шаблоне jinja2 ,
вот так работает
{{ hostvars['nginx'].ansible_host }}
а вот так нет
{% for item in groups['mygroup'] %}
{{ hostvars[item].ansible_host }}
{% endfor %}
Я так понимаю потому что в
{{ hostvars[item].ansible_host }}
item передается без ' '
Alex
а никто не сталкивался с медленной скоростью работы ансибла при переходе с питона 2.х на 3.х? Переехал с 16.04 на 18.04 и скорость работы просто бросается в глаза
George
Владислав
Vlad
Alex
Rad
Timur
Кстати, если кому будет полезно, в 2.8 ветке сломан модуль package_facts
Timur
Не на всех ОС, но на дебиане и убунту точно
Отделение Bereke Bank
а как проявляется поломанность? вообще не пашет или пашет не так как нужно?
Timur
https://github.com/ansible/ansible/issues/55850
Timur
Пакет отрабатывает, но на убунте выдает пустой список
Vlad
Alex
Значит не используете
подключал так
strategy = mitogen_linear
strategy_plugins = /usr/local/lib/python3.6/dist-packages/ansible_mitogen/plugins/strategy
или надо еще что то ?
Sergey
Alex
а что значит по-человечески? Я ж вроде через strategy_plugins и указал
Sergey
Ansible умеет в автозагрузку. Если ты кладёшь плагин в ...._plugins, то он будет автомагически загружен.
JonnSmitt_\/Z
Всем доброго времени суток. Вопрос: как добавить id_rsa.pub на удалённый сервер в /root/.ssh/autorised_key имя учётку парольную на удалённом сервере с SUDO. Ах да.... Это всё в ОДИН таск\роль\команду......
Sergey
Lamobot
JonnSmitt_\/Z
Эх..........
Правила же прочитаны, да?
прочитал. Не нашол варика, что можно руту(сразу из плэйбука) добавить кей, из под учетки юзера хоть и с судо, имя только пароль(без ключа) юзера.
Alex
[task 3304] 16:06:36.549894 D ansible_mitogen.planner: BinaryPlanner() rejected 'command'
[task 3304] 16:06:36.550014 D ansible_mitogen.planner: NewStylePlanner() accepted 'command' (filename '/usr/local/lib/python3.6/dist-packages/ansible/modules/commands/command.py')
вроде как используется
Sergey
JonnSmitt_\/Z
Модуль authorized_key
Хотелось бы в один таск. и модуль юзается - если у ансибла есть уже доступ к серваку по ключу. и —extra-vars $User -k пробовал. в Одно нажатие не выходит.
Sergey
Без доступа к хосту ничег оне выйдет.
JonnSmitt_\/Z
Вооот!
Sergey
Что? А ты хочешь силой мысли ключи раскладывать?
Sergey
Так это в других чатиках.
Lamobot
При запуске добавляешь —ask-pass
В тасках дальше делаешь чего хочешь под этим юзером. Ему нужен sudo доступ на машине
Lamobot
И --ask-become-pass тоже
JonnSmitt_\/Z
checkdiff
Коллеги, кто использовал lookup/query с until, есть рабочие варианты? Задача: проверять TXT запись, пока не вернется верная.
Alex
по ходу нашел причину тормозов. Дело не в питоне, а в
# apt-get update && apt-get install mc jq unzip expect openjdk-8-jre-headless socat python-docker docker.io
Hit:1 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial-updates InRelease [109 kB]
Get:3 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial-backports InRelease [107 kB]
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [109 kB]
Get:5 http://europe-west1.gce.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [1010 kB]
0% [Connecting to archive.canonical.com (91.189.92.150)]
и так оно висит минут 5. Есть какие то воркэраунды для таких случаев? Использую модуль apt