Андрей
become_user пробовали прописывать?)
Sergey
Тут такое дело, это не моя прихоть.
Ну тут такое дело - кто ограничения накладывает, тот с ними и приседает. О таких ситуациях прямо написано в правилах. Если прям совсем никак - запрашивай полные права на беспарольное sudo на Python 😃. Иначе у тебя получается не автоматизация, а костылизация.
Антон
коллеги, подскажите пожалуйста, как ансиблу перечислить список exit code которые являются нормой? мне это нужно для модуля shell
Ivan
коллеги, подскажите пожалуйста, как ансиблу перечислить список exit code которые являются нормой? мне это нужно для модуля shell
- name: register version check shell: cat /root/versions.js | grep -q {{VERSION}} register: current_version failed_when: ( result.rc in [ 0, 1 ] ) https://stackoverflow.com/questions/34340562/evaluating-return-code-in-ansible-conditional
Ivan
хм, 0 это наоборот success result code
Антон
йа дятел =((( failed_when: add_server_result.rc != 0 or add_server_result.rc != 1
Антон
поэтому и падало
GithubReleases
ansible/ansible tagged: v2.9.6 Link: https://github.com/ansible/ansible/releases/tag/v2.9.6 Release notes: New release v2.9.6
Sergey
Коллеги, если кто никогда не пробовал писать custom-фильтры для Ansible, но при этом знает Python - вот пример минимального варианта: https://stackoverflow.com/questions/51450960/jinja2-ansible-filter-dictionary. Файл с кодом складывать, как обычно, в каталог filter_plugins.
inqfen
А филтры куда-то в либы ансибла надо складывать или джинджи?
inqfen
А, в шары долблюсь
Sergey
В том весь фокус со стнадартными путями и состоит, что "оно само искаропки".
Maksim
Подскажите плз, для использования вот этой строчки , а точнее ipaddr "{% for i in groups['backend'] %} host all all {{ i | ipaddr }}/32 md5 \n{% endfor %}" питоновский модуль на какой машине должен стоять?
inqfen
вопрос /10
inqfen
там где где темплейтишь, там и должен
Maksim
там где где темплейтишь, там и должен
ну т.е ансибл контроллер?
inqfen
Так а где ты это делаешь-то
inqfen
Может и на какой-то машине
Sergey
Подскажите плз, для использования вот этой строчки , а точнее ipaddr "{% for i in groups['backend'] %} host all all {{ i | ipaddr }}/32 md5 \n{% endfor %}" питоновский модуль на какой машине должен стоять?
На контроллере, потому что модуль template - это сначала плагин, который темплейтит локально, потом загрузка результата на удалённую тачку, потом сравнение - нужно менять или не нужно.
Vitaliy
Всем привет, есть ли среди нас те, кто использовал Ansible Tower кластер? Может ли он работать что-то типа как Zabbix Proxy? Суть вопроса: имеется куча площадок, доступа с вне нет. Везде есть куча серверов и идея разворачивать свой tower в каждой точке звучит не очень. Начали смотреть в сторону кластеризации, но там момент в том, что помимо общей базы, надо собрать кластер из Rabbitmq, а для этого нужна прамая связь между хостами, а это невозможно. Кто-нибудь возможно решал подобную проблему?
Vitaliy
Доступ из вне даже через бастион хост не организовать? Если можно - наверное можно попробовать накостылить
Абсолютно никак. Я единственное, что могу, наподнимать туннелей на сервер с базой, но это такое себе решение, плюс нужно будет мудрить с днс, что бы они общались между собой через туннели. Есть еще идея тупо использовать с общей базой и общий кролик, но как оно будет работать не знаю. Сейчас, заюзали общую базу, подцепили несколько хостов и прям вообще не очень, веб грузится секунд 20, и это 100% из-за кролика.
Timur
Это стандартный кейс
Timur
Tower has the ability to optionally define isolated groups inside security-restricted networking zones from which to run jobs and ad hoc commands. Instances in these groups will not have a full installation of Tower, but will have a minimal set of utilities used to run jobs. Isolated groups must be specified in the inventory file prefixed with isolated_group_.
Timur
Да это понятно, но до изолированной ноды нужен доступ по ссх...
Ну, разумеется. А как вы хотели информацию туда доставлять? Через ноосферу?
Timur
Доступ до изолированных нод будет только в рамках самого закрытого периметра
Timur
С Tower-ноды, которая находится в этом периметре
Timur
С остальных никакого доступа напрямую не будет
Vitaliy
С Tower-ноды, которая находится в этом периметре
В этом и проблема, что tower нода не находится в этом периметре, она находится на одной из площадок. В общем спасибо, направление правильное, кластеризация мне не подходит ввиду изолированности, а вот это самое оно. Возможно просто вынесу ноду-папу отдельно и при установке изолированных нод поднимать туннели =)
Timur
Она никак не завязана на раннеры в закрытом периметре
tutunak
Всем привет. В ansible-list действительно не работает исключение по конкретному тегу? https://github.com/ansible/ansible-lint/issues/547
tutunak
а нет, все валидно, так и должно быть
tutunak
внутри ansible матчит по тагам правила, а не по любому тагу указанному в конфигурации
Alexey
Коллеги, доброго. Я извиняюсь но вот есть проблема. Есть awx легаси, им пользуется много кто, в нем один старый модуль из пакета ансибла, данный модуль уже существует новый с нужными фиксами на гитлабе. Как мне использовать новый код модуля в своих ролях и буках не обновляя его у всех? Как вообще обновляются модули у ансибла, что то не понимаю? Заранее спасибо за ответ и извиняюсь за возможно нуб вопросы
inqfen
Качай модуль в своём пайплайне как зависимость
inqfen
Так же как роли
Alexey
Положи модуль прямо в проект - автозагрузчик Ансибла его подтянет.
А куда класть? Какой нейминг где про это почитать как правильно?
Alexey
Положи модуль прямо в проект - автозагрузчик Ансибла его подтянет.
Спасибо, попробую нагуглить куда именно класть модуль
Sergey
Спасибо, попробую нагуглить куда именно класть модуль
Посмотри лейаут проекта, или мой видос на ютубе (https://www.youtube.com/watch?v=LApKSi5tUYo)
Tadeusz
Посмотри лейаут проекта, или мой видос на ютубе (https://www.youtube.com/watch?v=LApKSi5tUYo)
неужели еще остались нормальные докладчики :) есть не про ansible что-то?
Andrii
всем привет, хочу что бы проверялось значение переменной и по значению ее делались дальнейшие действия, делаю shell: doctl compute droplet list | grep test | awk '{print $2}' | grep -wc {{ droplet_name }} > ./list.txt list_check: "{{ lookup('file', './list.txt') }}" получаю значение в файл и поэтому значению хочу - import_tasks: test.yml when: "{{ list_check }}" == "0" но получаю ERROR! Syntax Error while loading YAML. did not find expected key - import_tasks: droplet.yml when: "{{ list_check }}" == "0" ^ here
inqfen
В when для переменных усы не нужны
Andrii
when: list_check == '0'
ага, спасибо
Oleg
столкнулся с багой: {"msg": "The conditional check 'ansible_facts['distribution'] == "CentOS"' failed. The error was: error while evaluating conditional (ansible_facts['distribution'] == "CentOS"): 'dict object' has no attribute 'distribution' я так понял причина в кривом кешировании. в кеше (редис) по какой-то причине сохранился пустой объект с фактами. версия 2.9.1 как заставить ансибл игнрорировать кешированные факты в плейбуке?
manefesto
gather_facts: true ?
manefesto
мне кажется можно вообще передать через —extra-vars
Andrew
Всем привет, помогите пожалуйста с ошибкой (см. ниже). Я прочитал документацию, прогуглил ошибку но все что я нашел это создание отдельных ключей, но я юзаю EC2 instans на AWS и создал ключ (и скачал на свою машину) при создании инстанса. IP пингуется/ссш порт открыт/ приконектится на сам инстанс могу. Пытаюсь просто пропинговать. Питон на инстансе установлен.
Andrew
Andrew
Andrew
Хостс файл
Vladislav 👻
Хостс файл
А почему айпи разные тогда?
Andrew
Это я только что менял, другую машину пробовал
Andrew
Я что-то успускаю с ключем, но я не могу понять что. Он же есть на инстансе
Alex
Я что-то успускаю с ключем, но я не могу понять что. Он же есть на инстансе
с -vvv запусти и посмотри с каким ключом и пользоватлеем он ломится
Andrew
Andrew
Юзер есть, ключ вроде тоже видит
Alex
на aws дефолтный юзер ec2-user
Salem
не на всех AMI
Salem
может быть и centos
Andrew
В хосте имя поменять? Попробовал тоже самое
Salem
юзернейм поменяй
Salem
c ec2user -> ec2-user
Andrew
Да, поменял, тоже самое
Alex
в строке конекта не вижу ключа
Alex
<35.195.xxx.xxx> SSH: EXEC ssh -o ControlMaster=auto -o ControlPersist=60s -o UserKnownHostsFile=/dev/null -o PreferredAuthentications=publickey -o 'ControlPath=~/.ssh/master-%r@%h:%p' -o StrictHostKeyChecking=no -o 'IdentityFile="/home/alex/.ssh/ansible-jfrog.key"'
Alex
-o 'IdentityFile="/home/alex/.ssh/ansible-jfrog.key"' типа такого
Andrew
Да, такого нету. Я просто уже даже не знаю как эту ошибку искать