bebebe
no filter named 'array'.
вы просто так что-ли копипастите
Nikita
Да я уже почитал доку про фильтры
Nikita
Я думал вы пример кинули
Nikita
- debug: msg: "OK" when: ansible_default_ipv4.network.find('192.168') == -1 - debug: msg: "OK" when: ansible_default_ipv4.network.find('192.168') != -1
Nikita
Вот так в итоге сделал
bebebe
как вариант
Старый
плейбуки с применением ооп это как?
Alexander
Народ, я что-то туплю и невдопонимаю. Создал роль, заполнил, в гит не выкладывал, хочу ипортировать в Galaxy, - как это можно сделать? Или только вначале в гит, а потом через $ ansible-galaxy import github_user github_repo ?
Nklya
гит или гитхаб?
Nklya
сам по себе галакси это просто каталог, он не хранит роли
Alexander
сам по себе галакси это просто каталог, он не хранит роли
как всегда, вопрос был задан некорретно: я хотел использовать уже имеющуюся роль, но в ней мне нужно было поменять параметры по умолчанию и добавить свой темплейт. я это сделал прям внутри этой готовой роли, а так нельзя. я забыл твои учения. не меняем саму роль: просто добавляем в плейбуке то, что хотим в ней поправить (а моём случае добавить таску с копированием определённого темплейта) и в секции варс переопределяем переменные. спасибо тебе ещё раз!
bebebe
кстати, коллеги, если тут есть ценители tmux'a и ansible то я пользуюсь таким вот методом что бы дебажить окружения https://github.com/metacoma/tmuxinator-jinja2 исходя из ansible переменных, генерируется темплейт для tmuxinator'а который генерирует tmux с нужными окнами
bebebe
годнота, спасибо
я буду рад любому фидбеку (можно в ЛС)
Ivan
я буду рад любому фидбеку (можно в ЛС)
Добавьте usage pattern в README.md пожалуйста, сходу не явно для чего инструмент
bebebe
Добавьте usage pattern в README.md пожалуйста, сходу не явно для чего инструмент
если вы оформите это ишуем на гитхаб, я точно не забуду это сделать. заранее спасибо
Vadim
я буду рад любому фидбеку (можно в ЛС)
А зачем tmuxinator? Можно проще - что-то вроде https://gist.github.com/hdknr/222067185374f4ff6626
Vadim
(оно не работает на свежих энсиблах, но подход вроде проще некуда)
bebebe
А зачем tmuxinator? Можно проще - что-то вроде https://gist.github.com/hdknr/222067185374f4ff6626
Я в том или ином виде советую ознакомиться с возможностями tmuxinator'а. У него уже есть богатая интеграция и богатая оркестрация tmux'a. Желаемая конфигурация уже абстрагирована и описывается в yaml файлах. То что я увидел по ссылке - скажем так маленький частный случай, который реализован в tmuxinator'e. что бы темплейтить переменные в тмуксинаторе, сначала использовал vanila jinja2, но уже работающая система переменных в ansible (group/host/inventory vars) http://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html позволяет существенно раскрыть всю красоту идеи
bebebe
хмм, попробую реализовать через чистый ansible API
вот не то что бы не советую, но если есть упорное желание "пописать"...
Vadim
вот не то что бы не советую, но если есть упорное желание "пописать"...
тащемта не хочется тащить tmuxinator еще в контейнер, вряд ли он получится такой же гибкий как tmuxinator
bebebe
тащемта не хочется тащить tmuxinator еще в контейнер, вряд ли он получится такой же гибкий как tmuxinator
это же в общем случае дешево, при этом что рендеринг темплейта и генерация конфигурации может происходить отдельно, тмуксинатор может выплевывать набор shell команд который можно выполнинть удаленно, собственно как в примере и описано: cat tmuxinator-example.yml | tj2 | ssh hw2 bash - это может выполняться рабочией станции, это может вызываться из CI и через какой-нибудь shell in box, или другой webui terminal emulation шариться команде разработки. ну вы поняли
bebebe
коллеги, скажите когда я утомлю. мой юзкейс: на разных проектах, CI, мне приготоавливает большое количество окружений, начиная от k8s, и заканчивая очень специфичными plan9 когда возникает проблема, я запускаю эту тулзу с нужным мне темплейтом, который открывает на части машин ping, на других (в том числе и коммутаторах) что то вроде tcpdump при этом эта система предполагает подставления переменных, например если мне нужно отдебажить в "сложной системе", k8s + calico + contrail + bgp + openwrt что-либо делаю что-то вроде cat k8s-contrail-stage3.yml | tj2 | ssh bastion-host bash - темплейт рендирится на моей машине, команды запускаются на хосте bastion tmux открывает 4 window, с 9 panes, где-то запущен ping, и по пути этого пинга открыто четыре tcpdump
bebebe
как это использовать системным администраторам, или devops'ам и прочим SRE можно только фантазировать.
bebebe
и наверное последнее по этой теме - я буду рад услышать ваши пожелания через github, и немного подпилить под ваши нужды, если что смело форкайте на этом этот оффтопик я прекращу. если хотите мы его продолжим в более другом месте
Vadim
нет, ну идея отличная, я просто не вижу смысла тащить tmuxinator
Vadim
кстати, у tmux есть питоновское апи, имхо проще немного потащить заразы из пипа, чем передавать всё через пайпы
Vadim
впрочем, с бастионом так просто не получится
Andrey
кто бы собрал tmux для rhel 6
Andrey
современный всмысле
bebebe
@admins мы можем тут дальше продолжать эту тему?
S
@admins мы можем тут дальше продолжать эту тему?
их тут вроде сейчас нет) как и других ,пишуших по теме, в данный момент.. не вижу проблемы) или кто-то ограничивает число символов? =)
bebebe
кстати, у tmux есть питоновское апи, имхо проще немного потащить заразы из пипа, чем передавать всё через пайпы
я немного отвечу не в тему, но надеюсь вы поймете к чем я веду сам этот прототип как вы видите занимает меньше 100 строк, оригинального контента в виде еще_как_нибудь_заюзать_api на golang/ruby/python/haskell там нет. заняло у меня заделиверить на гитхаб - около 40 минут. + тмуксинатор это руби в котором уже с tmux'ом научились экспертизно общаться вплоть до того, что нужная конфигурация открываемых окон и запуск команд описывается в .yml + для таргет аудитории, я думаю это решение ближе, т.к. его можно разобрать на "квадратики" и модернизировать её любую часть не производя origin content, в виде использования еще N библиотек что бы склеить это правильно с api ansible и чего-нибудь еще.
bebebe
кто бы собрал tmux для rhel 6
да,там где tmux'a нет, это немного больно. как вариант, можно генерировать такой же код для screen'а - если для него есть что-нибудь вроде screenator. так же можно генерировать конфигурацию для других терминл мультиплексоров, но это если комьюнити подхватит.
Andrey
и screen там дреееееевний
Andrey
но tmux лучше
bebebe
впрочем, с бастионом так просто не получится
вы про случай если пилить свое? то да. tmuxinator debug выплевывает на stdout последовательность shell команд которые нужно выполнить на удаленной машине или где-либо еще, с самим тмуксом идет общение через tmux сокет, в который прописывается "сценарии" поведения, открыть window, ввести команду, ввесли следующую, создать дополнительней tmux pane и т.д.
bebebe
собственно это был основной аргумент не "рожать свое", а использовать готовое, это идеально подошло.
Vadim
пусть цветут сотни цветов
bebebe
да, форкайте с удовольствием, если что вмержу.
Nklya
Там бы в ридми бы добавить зачем все это нужно, а то что то я не очень улавливаю
Nklya
и гит криво настроен, коммиты серые
bebebe
Там бы в ридми бы добавить зачем все это нужно, а то что то я не очень улавливаю
пролестните на пару сообщений вверх, я там описал один из юзкейсов (букв много, форвард выйдет большой)
bebebe
и да, я дополню README реальными примерами.
Anonymous
Всем доброго времени суток, кто знает как дописать строку в файл не стерая при этом ту информацию котора уже имееться в моем случаи файл squid.conf содержит строки acl localnet src айпи acl localnet src айпи acl localnet src айпи сюда нужно дописать
Vadim
lineinfile с insertafter
yakimka
Парни, подскажите: нужно, с помощью плейбука генерировать случайную строку, записывать ее в файл на удаленном хосте (на разных хостах - на каждом уникальное значение) а по окончанию выполнения плейбука иметь файлик в формате - имя хоста: случайная строка, или хотябы такой выхлоп в терминал Такое возможно?
Alexander
да
bebebe
@vrutkovs ^^^^
Vadim
https://asciinema.org/a/W6uz52dy1nT1gy1w1ObE7BDSR вместо тысячи слов
выглядит круто, я начал тестировать свой велосипед, но у меня в контейнере tmux не поднимался
bebebe
выглядит круто, я начал тестировать свой велосипед, но у меня в контейнере tmux не поднимался
я могу помочь, но сильно не советую, причины выше (фломастеры)
Vadim
я могу помочь, но сильно не советую, причины выше (фломастеры)
если тебе это не интересно, зачем помогать? :)
bebebe
мне интересен фидбек от пользователей (если они есть)
bebebe
там нужно еще ansible vault прикрутить, вомзожно shellinabox, что бы автоматически делать маленький web сервер с tmux'ом внутри (чтобы через браузер смотреть) типа такого https://github.com/shellinabox/shellinabox/raw/master/misc/preview.gif?raw=true
Vadim
а вообще было бы интересно реализовать это чистым ansible'ом - благо все параметры и так в инвентори, пусть оно и генерит shell script и запускает его где надо
Nikita
Привет, скажите, а если я в playbook определяю vars я могу потом через -e переопределить их?
Artur
да
Artur
-e имеет самый высокий приоритет
Asten
Привет, скажите, а если я в playbook определяю vars я могу потом через -e переопределить их?
Cтаршинство переменных по убыванию: ----------------------------------- * внешние vars (из командной строки) * vars задач (указанные в `/roles/<some_name>/tasks/main.yml`) * vars ролей (`/roles/<some_name>/vars/main.yml`) * создаваемые set_fact vars * vars, создаваемые при помощи директив register * факты хоста * host_vars окружения (`inventory/{dev/prod/stage}/host_vars/<some_name>`) * group_vars окружения (`inventory/{dev/prod/stage}/group_vars/<some_name>`) * общие vars окружения (`group_vars`) * Значения по умолчанию роли (`/roles/<some_name>/defaults/main.yml`)
Asten
из README своего проекта...
Nklya
в принципе то же самое написано в доке
Aleksey
но тут ин рашен
Asten
Странно былобы если бы я другое написал)
Nklya
А вот в шефе 15 уровней приоритетов переменных, так что в ансибле все просто))
Aleksey
ну тут тоже +-
Asten
тут не все кстати, я еще повырезал то что совсем не юзаю
Pavel
А вот в шефе 15 уровней приоритетов переменных, так что в ансибле все просто))
та ладна: http://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable
Nklya
Nikita
Подскажите, а можно в awx / tower как-то логин, под которым вошел пользователь, получить и вставить в survey?