Отделение Bereke Bank
Вопрос из серии программирования на ансибле. может кто делал. У хостов есть общая перменная с определенным значением. Например 99. Как можно и можно ли кошерно для каждого хоста увеличить ее на 1? Например, на первом хосте 100, на втором 101, на третьем 102 и т.д
Fire
Я не специалист. Но как минимум - ты же потеряешь возможность оверрайдить переменную. А это важная часть философии ансибла. И дебажить это - ты затрахаешься
Оверрайдить в самой роли? В данном случае нет необходимости в этом. А дебажить легко, получаемый файл конфига проверяется на соответствие спецификации.
Отделение Bereke Bank
Пахнет неидемпотеностью :)
я знаю 😒 но иначе много ямлострок
George
Пахнет неидемпотеностью :)
будто все плейбуки идемпотентны, кек
Valiy
Вопрос из серии программирования на ансибле. может кто делал. У хостов есть общая перменная с определенным значением. Например 99. Как можно и можно ли кошерно для каждого хоста увеличить ее на 1? Например, на первом хосте 100, на втором 101, на третьем 102 и т.д
я для таких вещей творю такую дичь в переменных для группы hosts: " {%- set ips = [] %} {%- for host in groups["имя группы"] %} {{- ips.append(dict(id=loop.index, host=host, ip=hostvars[host]['ansible_ssh_host'])) }} {%- endfor %} {{- ips -}}" а потом priority: "{{ keepalived_priority_max - hosts | selectattr('host', 'equalto', inventory_hostname)| map(attribute='id') |first}}"
Отделение Bereke Bank
воо как раз ебаный кипэлайвд
Valiy
=)))
Nick
А в чём смысл? Чтобы разные веса были?
Valiy
да
Valiy
и у первого максимальный
Nick
Может тогда дайджест делать?
Nick
Типа md5(ip)
Nick
Ааа. Ещё и «первый» есть.
Valiy
воо как раз ебаный кипэлайвд
ну и unicast_peer из этого же hosts получаю keepalived_peer_ips: "{{ hosts | rejectattr('host', 'equalto', inventory_hostname ) |map(attribute='ip') | list }}"
Отделение Bereke Bank
ну и unicast_peer из этого же hosts получаю keepalived_peer_ips: "{{ hosts | rejectattr('host', 'equalto', inventory_hostname ) |map(attribute='ip') | list }}"
с этим разобрался) там проблема еще не только в priority. впизду, пусть пока так будет. ато щас напишу потом не смогу понять...
Aleksey
Привет, что-то не могу найти нормальное решение. Мне необходимо отредактировать пару строк в файле, путь до файла имеет общий вид, но в середине присутствует случайное значение, уникальное для хоста. Очевидно, что нужен wildcard. Я пробовал lookup('fileglob', '/path/to*/file') вместо указания пути в модуле lineinfile - не работает. Как это сдлелатьправильно? Не хотелось бы использовать shell
Отделение Bereke Bank
https://docs.ansible.com/ansible/devel/collections/ansible/builtin/find_module.html
Aleksey
Да, я видел такой способ, но наделся, что я есть простой способ
Aleksey
Вот типа этого плагина https://docs.ansible.com/ansible/latest/collections/ansible/builtin/fileglob_lookup.html Но он для другой задачи
Aleksey
Ищешь файндом свой файл, регаешь результат и используешь в след таске
В моём случае тоже фигово работает. У меня в директории которая до wildcard много файлов с нужным мне именем
Aleksey
Сорян за то, что скриншотом, но нет возможности текст скопировать:
Полина
Привет. Я хочу сделать некое подтверждение (в шеле админом) перед выполнением определенной задачи - типа "1 - выполнить, 0 - нет ". Возможно ли это сделать?
Полина
СПАСИБО!!!
Полина
А vars_prompt можно вставлять между задачами?
Полина
Все, поняла. Извините за глупый вопрос
RaWqqq8
Добрый вечер! Подскажите пожалуйста как раздеплоить несколько вм с разными именами
RaWqqq8
Имею в виду как подставить разные имена
Grek 🇺🇦
with_items и передать список имен, или какой-то инкремент
RaWqqq8
А как присвоить пул ip
Grek 🇺🇦
что ты делаешь?
RaWqqq8
Задача создать 40 вм с последовательными именами и ip
RaWqqq8
Можно ли как то ренжом сделать ?
Grek 🇺🇦
ты уверен что тебе для этого нужен ансибл?
RaWqqq8
Да
Grek 🇺🇦
with_sequence: start=1 end=40 а в имя и ip подставляй item
Grek 🇺🇦
ip из фактов собирать
та я так понял что ему хардкодить надо
Vladislav
та я так понял что ему хардкодить надо
Я пока не понял что надо, но примерно
Grek 🇺🇦
так не стесняйся - опиши ее
Grek 🇺🇦
потому что секвенс решает то что ты написал, а дальше я не телепат
RaWqqq8
Ну то что осталось
RaWqqq8
Есть готовый плейбук
Grek 🇺🇦
есть 2 стула... интригующее начало
RaWqqq8
По нему нужно создать 40 вм с ip адресами из пула 192.168.1.1-41
UglyKoyote
чуток не успел поиграть в КО)
Elenhil
По нему нужно создать 40 вм с ip адресами из пула 192.168.1.1-41
https://stackoverflow.com/questions/48653092/ansible-with-items-in-range
Elenhil
ы?
Elenhil
но вообще странная задача, чем вам dhcp не угодил
Grek 🇺🇦
Grek 🇺🇦
указывай ip 192.168.1.{{ item }}
Grek 🇺🇦
а что за гипервизор, или куда вы там деплоитесь?
Anton
Коллеги, всем привет. Подскажите как стартануть только 1 таску из роли?
V
Коллеги, всем привет. Подскажите как стартануть только 1 таску из роли?
Только путем создания tag и далее когда вызываешь эту роль передашь tag
Anton
Кароче юзер стори) Есть база percona ставилась при царе горохе про ansible никто ничего не знал тогда (легаси такое) и надо туда впилить пользователя с правами, есть два пути . 1 топаем в консоль даем права (но не красиво так) 2. пишем в варсы все что надо, катим ролью, но на чеках она намеревается установить еще раз mysql, что конечно неприемлимо
Anton
как быть?
Anton
# Configure MySQL. - include_tasks: configure.yml - include_tasks: secure-installation.yml - include_tasks: replication.yml - include_tasks: databases.yml - include_tasks: users.yml tags: - mysql_users везде теги проставлять?
Отделение Bereke Bank
А про остальное забудь
Valiy
Отделение Bereke Bank
Не надо теги. Потом у тебя будет два пути. 1) рано или поздно ты и твои потомки до 7 колена уже не будете знать что произойдет если запустить без тегов 2) какая нибудь обезьяна запустит без тегов и все пойдет по пизде
Отделение Bereke Bank
Такой всратый вопрос. Через set_fact и loop создаю list dict-ов Проблема в том что некоторые элементы дикта являются multiline-ами и вместо листа я получаю AnsibleUnsafeText Кто нибудь сталкивался?
Отделение Bereke Bank
@Lamobot я знаю ты видел всякое дерьмо
道
Кто скажет, в инвентори файле название группы хостов само по себе может содержать квадратные скобки?
道
Какие символы там вообще допустимы?
Aleksey
Подскажите, как понять почему у меня в плее не отрабатывает handler с ребутом, когда у меня есть changed таски?