Артём
Пеняю. Прихожу к коллегам спросить, сталкивался ли кто-нибудь с проблемой и как обходил.
Oleksandr
Спасибо. Использую. Вернёмся к стартовому вопросу треда тогда?
какой вопрос? ссш в докере или бинд посгреса на конкретный адрес?
Timur
Ок. Тогда для чего там факт ansible_default_ipv4?
Опциональный факт, который работает в некоторых окружениях, и который можно использовать для диагностики и дебага
Артём
Опциональный факт, который работает в некоторых окружениях, и который можно использовать для диагностики и дебага
Хорошо. Есть ли в ансибле ещё «опциональные» элементы, котрые работают иногда и не везде, и которых стоит избегать?
Oleksandr
его просто может не быть
cent
напиши ишью
Если не сложно можешь пушнуть, пожалуйста? У меня на рабочей тачке нет учетки от github. А потом забуду.
Andrey
уйди
ушёл 😊
George
ушёл 😊
спасибо
Timur
Логика роли от них зависеть не должна
Timur
Как только вы это осознаете - множество проблем исчезнет само собой
Andrey
а если зависит - должна проверять наличие этих фактов и выдавать вменяемую ошибку
Артём
Ну, как минимум, это консистентная позиция.
Andrey
типа "на хосте нет внешки, идите чините"
George
хорошо. Давайте обсудим - а зачем тогда нужны факты?
cent
Все факты, собираемые ансиблом, опциональны
Если они в доке прописаны как опциональные, то да. Но там такого нет
Timur
Если вы обращаетесь к переменной, которой нет, ансибл об этом скажет
Timur
хорошо. Давайте обсудим - а зачем тогда нужны факты?
Для диагностики и дебага, в основном
cent
Если вы обращаетесь к переменной, которой нет, ансибл об этом скажет
Когда?) Когда уже понаставил 100500 зависимых ролей, а потом что-то где-то прилегло с непонятной ошибкой, потому что ip ansible не нашел?) Ну, такое....)))
cent
Для диагностики и дебага, в основном
Типа, я сейчас пишу динамические роли, и завязываюсь на факты, чтобы через башсибл не доставать самому эти факты, а потом мои роли оказываются невалидными, потому что факты - это только для дебага?)))
Andrey
ещё факты можно использовать для конфигурации. Например количество памяти на хосте может определять всякие -Xmx для jvm
George
ещё факты можно использовать для конфигурации. Например количество памяти на хосте может определять всякие -Xmx для jvm
ты не находишь, что это нужно только в том случае, когда ты вписываешь ансибл в существующую инфру?
Andrey
или listen_address для публичных сервисов 😊
George
потому что если ты сам заказываешь виртуалки, то у тебя впереди всего - описание самих серверов в манифестах
Andrey
ты не находишь, что это нужно только в том случае, когда ты вписываешь ансибл в существующую инфру?
а можно вписывать ансибл в несуществующую инфру? Не понял вопроса
George
а можно вписывать ансибл в несуществующую инфру? Не понял вопроса
можно, когда он сам ее формирует (например, ходит в амазон и создает ВМки)
Andrey
не вижу связи между происхождением хостов и их конфигурацией
Timur
Если они в доке прописаны как опциональные, то да. Но там такого нет
Все факты опциональны, вообще-то. Если у вас не включен сбор фактов с хоста при подключении, они и не будут собираться
cent
потому что если ты сам заказываешь виртуалки, то у тебя впереди всего - описание самих серверов в манифестах
Нет. Я не хочу, чтобы ansible роли зависили от terraform, например? Почему бы просто не зависить от самой машины?
Timur
Когда?) Когда уже понаставил 100500 зависимых ролей, а потом что-то где-то прилегло с непонятной ошибкой, потому что ip ansible не нашел?) Ну, такое....)))
Вот вы прекрасно описали ситуацию, что бывает когда изначально идешь по неверному пути. Именно от этого тут и пытаются предостеречь, когда говорят про #странное и #ненадотак
George
Нет. Я не хочу, чтобы ansible роли зависили от terraform, например? Почему бы просто не зависить от самой машины?
в теории можно, но если условный ансибл зависит от терраформ, то у тебя уходит куча головной боли
cent
Да, спор НИ О ЧЕМ... iproute2 в доке нет - это баг. И точка. По поводу того, что "факты опциональны" - это может длиться вечно. И больше напоминает как и наличие модулей опционально. Вроде пилите на raw и не завязывайтесь на модули.
George
"iproute2 в доке нет - это баг. И точка." согласен
George
на ансибл или модуль
George
очевидно же
Nikolay
Можно ли использовать в ансибл счетчик, не задавая лимит на каунт? Я пока вижу только конструкцию with_sequence с заданным лимитом
Nikolay
Как в этом примере vars: image: ubuntu-14.04-x86_64 network: example-net key_name: example-key flavor: c1.c1r1 security_groups: example-sg count: 3 tasks: - name: Connect to the Catalyst Cloud # assume RC file has already been sourced os_auth: - name: Launch web instances os_server: name: test0{{ item }} flavor: "{{ flavor }}" image: "{{ image }}" key_name: "{{ key_name }}" state: present wait: true network: "{{ network }}" security_groups: "{{ security_groups }}" auto_ip: true register: newnodes with_sequence: count={{ count }}
George
а как ты хочешь без лимита?
Nikolay
хз, я поэтому и спрашиваю, нет ли переменной счетчика встроенной
cent
Можно ли использовать в ансибл счетчик, не задавая лимит на каунт? Я пока вижу только конструкцию with_sequence с заданным лимитом
with_sequence - может быть скоро deprecated Лучше юзать loop https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-sequence
Timur
Кто говорит? Боги конфигурационных систем?) Кто сказал, что именно так нужно? Ну, смешно же...
Говорят опытные люди, набившие немало подобных шишек. Не верите и хотите попрыгать на всех этих граблях самостоятельно - ради бога. Но вас предупреждали
Timur
"iproute2 в доке нет - это баг. И точка." согласен
Вам никто не мешает хоть сейчас поднять пулл-реквест и добавить нужные строчки с описанием в модуль фактов. Но, вангую, что вы этого делать не будете, а будете продолжать ныть о несовершенстве мира
cent
Говорят опытные люди, набившие немало подобных шишек. Не верите и хотите попрыгать на всех этих граблях самостоятельно - ради бога. Но вас предупреждали
Ну, и пусть себе говорят) А кто уверен в том, что эти люди более опытные люди, чем тот, кто говорит иначе?)
Timur
Timur
Ну, и пусть себе говорят) А кто уверен в том, что эти люди более опытные люди, чем тот, кто говорит иначе?)
Да никто. Вы сами пришли в чат за советом. Вам ответили. Как поступать с полученными ответами - ваше личное дело
cent
Да никто. Вы сами пришли в чат за советом. Вам ответили. Как поступать с полученными ответами - ваше личное дело
Я спросил конкретный вопрос. Но если речь уже обо мне, то откуда инфа, о том, что у меня мало опыта в ansible, чтобы знать как хорошо, а как нет?
Timur
"Вы" в данном контексте - это абстрактный лирический герой, с которым я веду диалог во втором лице
Timur
хз, я поэтому и спрашиваю, нет ли переменной счетчика встроенной
Встроенной нет. А зачем? Что вы хотите сделать?
Nikolay
Встроенной нет. А зачем? Что вы хотите сделать?
каунтер для ec2, с учетом того, что инстансы будут создавать не сразу в количестве 5-10, а поштучно
Nikolay
в теге инстанса чтоб был, "instance_{{ counter }}"
Timur
И почему инстансы создавать поштучно, а не сразу все?
Nikolay
руководство хочет поштучно)
George
глупости какие-то
Nikolay
согласен, ну а че делать то)
Timur
в теге инстанса чтоб был, "instance_{{ counter }}"
Создайте инстансы, посчитайте, а потом навесьте теги в следующем цикле
Timur
Делов-то
Oleksandr
или listen_address для публичных сервисов 😊
Пускай трафик через лоад балансер
Andrey
зачем?
Nikolay
Создайте инстансы, посчитайте, а потом навесьте теги в следующем цикле
Не совсем то, что нужно. Короче, почему я вообще решил каунтер использовать - при создании инстансов, через ансибл в слак шлется сообщение о создании инстанса с public_dns_name, при его завершении тоже шлется сообщение, что инстанс остановлен, но, почему-то в json выхлопе об остановке ec2 public_dns_name не указывается, есть только id, tag name, и т.п, поэтому выход - это слать в слак tag name вместо public dns name
Nikolay
Создайте инстансы, посчитайте, а потом навесьте теги в следующем цикле
Вот исходя из этого предложения, следует, что я должен знать конечное число инстансов, а я их не знаю. Может их будет 2, а может 5. И создаются они не сразу, а может быть так, что один будет создан сейчас, второй через 20 минут.
Timur
Или вы имеете в виду, что инстансы у вас создаются независимо разными прогонами плейбука в разное время, а назначать им теги вы хотите в рамках единой последовательности?