Nariman
Ну * же не понимает Ansible
Nariman
synchronize
Nariman
Вопрос закрыт
Nariman
Прошу простить что отвлек
Отделение Bereke Bank
synchronize
https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html еще такое есть
Starikov
Поздравьте меня с первым деплоем докер сварм стека используя Ansible скрипты. Из Jenkins. Искусство запуска Devops. Том первый. 300 страниц
Артём
звучит как бред шизика
Артём
Но чо уж там, мои поздравления!
Starikov
Я джва дня искал способ запуска. Да, девопс это зоопарк покруче чем у Full Stack Java. Итак стек типичного немецкого банка: Jenkins, Docker, Docker swarm, portainer, Kubernetes, traefik и если хотите я могу продолжить.
Starikov
И основная проблема - понять связи
Starikov
поздравляю, но со свармом ты опоздал немного
Сварм жил, жив, будет жить. Кроме того это не мой стек. Но я так понимаю, начинать нужно именно со сварма. А на кубер потом переходить
Starikov
Я разбираюсь в том, что сделали ушедшие девопс инженеры
Starikov
Docker swarm, …, Kubernetes хмм. зачем первое, когда есть второе?
Опять вы задаёте глупые вопросы. Я вот в девопсе очень мало, но знаю, что у сварм есть одно преимущество: он проще
Отделение Bereke Bank
Docker swarm, …, Kubernetes хмм. зачем первое, когда есть второе?
по моему опыту - если в инфру затащили первое, от него потом сложно избавиться
Pit
мне кажется он троллет. предлагаю расходиться
Alex
А при использовании pyenv/venv и т.п. вещей на управляемых хостах достаточно указать ansible_python_interpreter или надо еще что то дополнительно делать?
Starikov
Ибо нет понимания зачем?
Кстати да. Самый главный вопрос: Зачем? Более Ынтырпрайзно? Больше возможностей? А если раньше работало - то зачем нужно переходить на что то "более" лучшее?
inqfen
Кстати да. Самый главный вопрос: Зачем? Более Ынтырпрайзно? Больше возможностей? А если раньше работало - то зачем нужно переходить на что то "более" лучшее?
Деревянный сортир тоже работает, пока не рухнет вместе с юзером. Сворм плохо не тем что просто - а тем, что остановилось в развитии года 3 назад, имеет кучу геморроя с сетью и если нужно нечто простое - прекрасно тем же номадом заменяется
Anonymous
Привет, помогите разобраться как лучше сделть, взять из json только тот елемент string который соответствует значению или abc или def 1. есть json "myjson" { "results": [ {"test": "abc", "string": "123"}, {"test": "def", "string": "456"} ] } 2. то как сейчас это работает - debug: msg: '{{ myjson.result[my_index] }}' loop: - abc - def loop_control: loop_var: my_index Хочется что то в роде: - debug: msg: '{{ myjson.results | selectattr('test', item) }}' loop: - abc - def
Anonymous
https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#json-query-filter не ?
уже наизусть выучил, спасибо не нашел там даже selectattr опции
Starikov
В этом и состоит проблема - все видео и курсы ориентированы на отдельные инструменты, а не на их интеграцию.
Anonymous
через json_query не хотелось бы решать так как это дополнительный модуль к питону
Starikov
Мне страшно
Мне тоже было страшно, когда мне сказали запустить Ansible без доступа к консоли
Starikov
Я приводил выше список
George
Я приводил выше список
Троллить хватит ?
George
@tnt4brain
Sergey
@enterprisemob предупреждений не будет, дальше только RO, ещё дальше - бан.
Anonymous
Не вижу в этом проблемы
возможно есть другие сопсобы? вроде такого {{ myjson.results where "test"==item }} уверен есть более правильные решения на я их не вижу
Alex
должно быть достаточно, если решение без сильной внутренней магии
Просто в самом bash надо дополнительно соурсить файл, чтобы оно работало. Отсюда и вопрос
Alex
через json_query не хотелось бы решать так как это дополнительный модуль к питону
А в чем проблема поставить jmespath и не выдумывать костыли и велосипеды с квадратными колесами
George
возможно есть другие сопсобы? вроде такого {{ myjson.results where "test"==item }} уверен есть более правильные решения на я их не вижу
Мне кажется, что jmespath практически стал промышленным стандартом. Примерно как regex. Поэтому это выглядит как reinventing wheel
George
Одну зависимость поменяли на другую :-/
Anonymous
Мне кажется, что jmespath практически стал промышленным стандартом. Примерно как regex. Поэтому это выглядит как reinventing wheel
хорошо, это тоже опция, мне казалось и до сих пор кажется, что есть более простое решение
Alex
Ну кстати в jmespath некоторые вещи реализовать намного сложнее того же jq
George
@tnt4brain вызываю эксперта
Sergey
Sebor▂▅▇█▓▒░
Sergey
Одну зависимость поменяли на другую :-/
Ну там всё равно страдать. Или тупо накидать свой фильтр :-)
Sergey
Чтобы там выросло что-то типа [{i['name']['$']: {k: v['$'] for k, v in i.items() if k != 'name'}} for i in domain_list_pre]
Sergey
😆😂
Sergey
Форк бомба?)
Не, кусок самопального Ansible-модуля для DNSmanager :-) чтобы онтопик
Anonymous
какой стандарт предпочтитльнее для использования var.test или var['test'] ?
George
Второй.
Аргументы ?
Я и твой кот
Аргументы ?
However, if you choose to use dot notation be aware that some keys can cause problems because they collide with attributes and methods of python dictionaries. You should use bracket notation instead of dot notation if you use keys which start and end with two underscores (Those are reserved for special meanings in python) or are any of the known public attributes.
Я и твой кот
https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html
Я и твой кот
Простой вывод - не называйте ключи зарезервированными словами
Осталось только запомнить списки зарезервированных слов, да.
inqfen
почему прокрутка чата наверх меня вводит в уныние?(
Sergey
какой стандарт предпочтитльнее для использования var.test или var['test'] ?
Второй. Первый располагает к выученной беспомощности в контексте ключей, задаваемых через переменные.
Nariman
Всем привет. Могу ли я в ансибле сравнить переменную (name) пришедшую при помощи prompt поэлементно со списком и если она входит в список определить то есть then определить новую переменную foo как bar foo=bar в противном случае переопределить foo
Nariman
?
Nariman
то есть foo=bar if name in array then foo=baz
Vlad
foo=“{{ name in array | ternary(bar, baz) }}”
Starikov
Что такое inventory?
zEvilz
всем привет. у меня все хосты прописаны в /etc/ansible/hosts примерно в таком виде test ansible_ssh_port=1234 ansible_ssh_host=1.2.3.4 ansible_ssh_user=root как-то можно в плейбуке переопределить ansible_ssh_port?
zEvilz
мне первый коннект нужен по 22 порту
George
мне первый коннект нужен по 22 порту
Первое подключение - перенастройка ссш на другой порт - донастройка сервера ?
zEvilz
Первое подключение - перенастройка ссш на другой порт - донастройка сервера ?
первое подключение - настройка сервера. в идеале бы после сделать ребут и дождаться перезагрузки через wait_for_connection и подключиться уже по нужному порту
zEvilz
- name: System reboot shell: sleep 5 && reboot async: 1 poll: 0 ignore_errors: true register: reboot - name: Wait for server to restart wait_for_connection: connect_timeout: 20 sleep: 5 delay: 5 timeout: 300 when: reboot.changed
George
всем привет. у меня все хосты прописаны в /etc/ansible/hosts примерно в таком виде test ansible_ssh_port=1234 ansible_ssh_host=1.2.3.4 ansible_ssh_user=root как-то можно в плейбуке переопределить ansible_ssh_port?
Я вижу вариант какой - сделать два набора хостов под разными группами. Условная группа «до настройки ссш» и группа «ссш после настройки» с уже изменённым портом. И где-то посередине wait_for_connection. Или ты по одному узлу за раз делаешь ? Возможно, тогда есть вариант красивее
UglyKoyote
а две записи в инвентори с разными портами? и таски разделить соотвественно? не прокатит?
zEvilz
а две записи в инвентори с разными портами? и таски разделить соотвественно? не прокатит?
хотелось бы продолжить работу с серваком после ребута, но тут получается же ансибл работает с одним узлом и юзает один порт
UglyKoyote
так ты его уводишь в ребут таской, следующей таской уже цепляешься ко второй записи по новому порту и работаешь с ним же дальше