brestows
Да, я вкурсе, я разобрался с этим.
brestows
у меня возник другой вопрос, как можно из ansible получить доступ к переменным окружения
brestows
lookup видать
brestows
но что-то не выходит :)
Denis 災 nobody
brestows
хоста
Roman
пробовал? https://docs.ansible.com/ansible/2.5/plugins/lookup/env.html
Pavel
хоста
насколько я помню, для этого нужен шелл, а по умолчанию ссх соединие без него
Denis 災 nobody
gather_facts тоже не?
brestows
подождите, я видать что-то не то делаю, вот есть моя машина, на ней я запускаю ansible
brestows
надо что бы ansible на моей машине прочитал переменную TEST и ее значение положил в шаблон
brestows
я вот это имел ввиду
Nikita
delegate_to: localhost
brestows
ну а шаблон он закинет на удаленную машину ?
brestows
или на localhost
Nikita
Сделай register и передай как переменную на удаленную машину
brestows
ну разве что так
brestows
спасибо. буду пробовать
Nikita
shell: echo $TEST delegate_to: localhost register: test_env
Nikita
Но это странно конечно, почему не определить в vars?
brestows
потому что надо что бы изменять playbook не могли, а вот управрять значениями переменных могли
bebebe
3.2 +100500
спасибо
pavel
у кого нибудь есть роль чтобы докер на убунту поставить?
Nklya
https://github.com/geerlingguy/ansible-role-docker
pavel
там хлам какой то
pavel
ок гляну
bebebe
у кого нибудь есть роль чтобы докер на убунту поставить?
я делаю так test -x ansible-galaxy || (apt update && apt install -y ansible) && test -x ansible-role || (pip install git+https://github.com/larsks/ansible-toolbox) && ansible-galaxy install geerlingguy.docker && ansible-role --gather geerlingguy.docker
bebebe
онлайнер
pavel
онлайнер
не плохо, спаисбо
Artur
подскажет кто в чём беда FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'local_item' is undefined"}
Artur
срабатывает на - name: copy drush aliases settings template: src: 'drush_aliases.php' dest: '{{ outer_item.docker_path }}/drush_aliases.php'
Nazar
что такое other_item ?
Sergey
подскажет кто в чём беда FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'local_item' is undefined"}
Подскажет. переменная local_item не определена. Судя по всему, она живёт внутри шаблона drush_aliases.php
Nazar
может просто item ?
DiNGeR
Добрый день. Читаю как управлять Windows (в данном случае 2016) с Ansible. AD нет, учетки только локальные. Получается что самый лучший вариант для Authentication Options это CredSSP. Так? Или нет?
Vladimir
Господа есть у кого роль для dnscrypt-wrapper (это их сервер)
Vladimir
На Гелакси нет, а докер я не хочу не буду -____-
bebebe
3.2 +100500
если у вас время, то подумайте пожалуйста: я сделаю dynamic inventory который будет выгребать все из мониторинга, эта идея да мне нравится. но возникает вопрос, допустим что у меня постоянно 90% железа живое, и в течение 2 дней, я так или иначе имею доступ к 100% железа. каким образом мне сделать оркестрацию, что бы мне запустить "плейбуку" против 100% хостов. запускать её по кронтабу да, что-то вроде LCM (life cycle management) получится. таскать за собой везде .retry файл что бы он уменьшался? при условии что у меня это все запускается из CI/CD в k8s подах, автоматизация есть и с ней нет проблем.
Vladimir
Мне кажется где k8s там ансибл не нужен ...
Vadim
Vladimir
И когда 1200 хостов, то истори с push ну как бы намекает что нужно pull система
Vladimir
Это очевидно же, push схема будет ОЧЕНЬ долгой
bebebe
А почему не прометеус если у Вас k8s ? :)
Я не правильно выразился, 1200 хостов вне k8s. Сами плейбуки запускаются в подах против внешнего железа
Nklya
а что прямо вот по всем хостам нужно ходить?
Vladimir
Мне кажется при очень большом кол-ве хостов, push (ansible) работает плохо, нужен pull (salt)
bebebe
перейти на тот же saltstack?
Нет возможности, на половине железа нету python. Ansible в этом плане выглядит удобнее. Железо очень ограниченное по ресурсам.
Denis 災 nobody
Нет возможности, на половине железа нету python. Ansible в этом плане выглядит удобнее. Железо очень ограниченное по ресурсам.
значит эмулировать. Самое простое - через тот же rabbit, или сервер вычитывает набор хостов и запускает задачу (при неуспехе возвращаем хост в конец очереди), или сами ноды к нему подключены и выстаскивают задачи для себя
Denis 災 nobody
первое накладнее
Denis 災 nobody
а если они так и не появятся за 3 дня?
bebebe
а если они так и не появятся за 3 дня?
давайте упростим задачу, и они за 3 дня точно появятся
Nikita
Извините, что влезаю, а что если все хосты разбить на группы и запускать параллельно ?
bebebe
Извините, что влезаю, а что если все хосты разбить на группы и запускать параллельно ?
они и так разбиты на группы, проблема в том что за первый прогон CI/CD, я покрою 80% всего окружения за второй (через 5 часов) уже 85%, третий 91% (например)
bebebe
и так далее. мой вопрос как это сделать более красиво чем перетаскивать за собой файл .retry как артифакт от выполнения джоб что бы ансибл проходил только по НЕ окученным хостам
Denis 災 nobody
Нет проблем с перфомансом. Есть проблема в том чтобы гарантированно за три дня изменимся применились на всем окружении
с запросом задачи с самого хоста - применится. Но это уже agent на хосте, и снова - почему тогда не солт. А с сервера - поставить задержку на повтор например пол часа, выполнится
bebebe
с другой стороны мой мониторинг генерит событие, железка появилась, возможно мне нужно на это событие реагировать и натравливать во время появление железки в online свои плейбуки
Denis 災 nobody
но рэббит тут как-то громоздко смотрится, с retry получается тупо проще, без лишних сервисов, причем его можно динамически инклудом и цеплять
bebebe
спасибо коллеги
bebebe
я отпишусь когда введу этот механизм, что получилось в итоге и какие подводные камни всплыли на практике
aborche
всем добра! отцы а ни у кого нету посвежее скриптов ansible для генерации через ansible кластера pgpool-II ? а вдруг ? в сети что-то грусть какая-то 3-5 летней давности
bebebe
А вообще - прометеус + алерты в AWX
а вы пробовали AWX? мне он ДЮЖЕ не понравился, все хорошо, но оркестрацию воркеров (будь до докер контейнеры, или запуск pod'ов в k8s) приходится брать на себя, не хотеть я решил это через nagios + алерты которые создают pod'ы с плейбуками
bebebe
даже в девичьм CI gitlab CE воркеры в сто раз лучше
bebebe
вместо AWX уж лучше взять jenkins и настроить там ansible-plugin и k8s-pipeline (в моем случае) и радоваться
Sergey
если у вас время, то подумайте пожалуйста: я сделаю dynamic inventory который будет выгребать все из мониторинга, эта идея да мне нравится. но возникает вопрос, допустим что у меня постоянно 90% железа живое, и в течение 2 дней, я так или иначе имею доступ к 100% железа. каким образом мне сделать оркестрацию, что бы мне запустить "плейбуку" против 100% хостов. запускать её по кронтабу да, что-то вроде LCM (life cycle management) получится. таскать за собой везде .retry файл что бы он уменьшался? при условии что у меня это все запускается из CI/CD в k8s подах, автоматизация есть и с ней нет проблем.
В принципе, со мной можно на "ты" - так удобнее. Здесь всё же интернет 😊 По сути вопроса - это типичная проблема stateful vs stateless. По дизайну Ансибл - stateless. Ты вводишь некое внешнее по отношению к Ансиблу состояние хоста - "обработан/не обработан". Понятное дело, что "искаропки" в Ансибле такого нет. Как только ты решишь, где будешь хранить состояние "этот хост уже обработан", тогда же ты сам себе дашь и ответ на вопрос "как это сделать". Кстати, при таких занятных исходных данных, возможно, что-то другое подойдёт вместо Ансибла, агентом оборудованное.