
Sergey
08.05.2018
11:13:43

bebebe
08.05.2018
11:14:32

Pavel
08.05.2018
11:28:24
у кого нибудь есть роль чтобы докер на убунту поставить?

Kirill
08.05.2018
11:32:38

Google

Nklya
08.05.2018
11:32:56
https://github.com/geerlingguy/ansible-role-docker

Pavel
08.05.2018
11:32:59
там хлам какой то
ок гляну

bebebe
08.05.2018
11:35:01
у кого нибудь есть роль чтобы докер на убунту поставить?
я делаю так
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
онлайнер

Pavel
08.05.2018
11:36:23

Artur
08.05.2018
11:40:55
подскажет кто в чём беда
FAILED! => {"changed": false, "msg": "AnsibleUndefinedVariable: 'local_item' is undefined"}
срабатывает на
- name: copy drush aliases settings
template:
src: 'drush_aliases.php'
dest: '{{ outer_item.docker_path }}/drush_aliases.php'

Nazar
08.05.2018
11:41:30
что такое other_item
?

Sergey
08.05.2018
11:41:42

Nazar
08.05.2018
11:41:44
может просто item ?

Artur
08.05.2018
11:43:00

Sergey
08.05.2018
11:43:22

Google

Сергей
08.05.2018
11:43:40
Добрый день. Читаю как управлять Windows (в данном случае 2016) с Ansible. AD нет, учетки только локальные. Получается что самый лучший вариант для Authentication Options это CredSSP. Так? Или нет?

Vladimir
08.05.2018
11:43:50
Господа есть у кого роль для dnscrypt-wrapper (это их сервер)
На Гелакси нет, а докер я не хочу не буду -____-

Ilia
08.05.2018
11:46:02

bebebe
08.05.2018
11:47:11
3.2 +100500
если у вас время, то подумайте пожалуйста:
я сделаю dynamic inventory который будет выгребать все из мониторинга, эта идея да мне нравится.
но возникает вопрос, допустим что у меня постоянно 90% железа живое, и в течение 2 дней, я так или иначе имею доступ к 100% железа.
каким образом мне сделать оркестрацию, что бы мне запустить "плейбуку" против 100% хостов.
запускать её по кронтабу да, что-то вроде LCM (life cycle management) получится.
таскать за собой везде .retry файл что бы он уменьшался?
при условии что у меня это все запускается из CI/CD в k8s подах, автоматизация есть и с ней нет проблем.

Vladimir
08.05.2018
11:49:04
Мне кажется где k8s там ансибл не нужен ...

Vadim
08.05.2018
11:51:32

Vladimir
08.05.2018
11:51:38
И когда 1200 хостов, то истори с push ну как бы намекает что нужно pull система

Denis 災 nobody
08.05.2018
11:54:14

Vladimir
08.05.2018
11:54:40
Это очевидно же, push схема будет ОЧЕНЬ долгой

bebebe
08.05.2018
11:54:43

Nklya
08.05.2018
11:55:18
а что прямо вот по всем хостам нужно ходить?

Vladimir
08.05.2018
11:55:23
Мне кажется при очень большом кол-ве хостов, push (ansible) работает плохо, нужен pull (salt)

bebebe
08.05.2018
11:56:06
перейти на тот же saltstack?
Нет возможности, на половине железа нету python. Ansible в этом плане выглядит удобнее. Железо очень ограниченное по ресурсам.

Denis 災 nobody
08.05.2018
11:56:48
первое накладнее

bebebe
08.05.2018
11:58:06

Denis 災 nobody
08.05.2018
11:58:43
а если они так и не появятся за 3 дня?

Google

bebebe
08.05.2018
11:59:52

Nikita
08.05.2018
12:00:04
Извините, что влезаю, а что если все хосты разбить на группы и запускать параллельно ?

bebebe
08.05.2018
12:01:19
и так далее.
мой вопрос как это сделать более красиво чем перетаскивать за собой файл .retry как артифакт от выполнения джоб что бы ансибл проходил только по НЕ окученным хостам

Denis 災 nobody
08.05.2018
12:01:58

Vladimir
08.05.2018
12:02:43

bebebe
08.05.2018
12:02:54
с другой стороны мой мониторинг генерит событие, железка появилась, возможно мне нужно на это событие реагировать и натравливать во время появление железки в online свои плейбуки

Denis 災 nobody
08.05.2018
12:03:02
но рэббит тут как-то громоздко смотрится, с retry получается тупо проще, без лишних сервисов, причем его можно динамически инклудом и цеплять

Vadim
08.05.2018
12:03:16

Denis 災 nobody
08.05.2018
12:03:36

bebebe
08.05.2018
12:03:38
спасибо коллеги
я отпишусь когда введу этот механизм, что получилось в итоге и какие подводные камни всплыли на практике

aborche
08.05.2018
12:04:56
всем добра!
отцы а ни у кого нету посвежее скриптов ansible для генерации через ansible кластера pgpool-II ? а вдруг ? в сети что-то грусть какая-то 3-5 летней давности

Vadim
08.05.2018
12:06:29

bebebe
08.05.2018
12:07:28
А вообще - прометеус + алерты в AWX
а вы пробовали AWX? мне он ДЮЖЕ не понравился, все хорошо, но оркестрацию воркеров (будь до докер контейнеры, или запуск pod'ов в k8s) приходится брать на себя, не хотеть
я решил это через nagios + алерты которые создают pod'ы с плейбуками
даже в девичьм CI gitlab CE воркеры в сто раз лучше
вместо AWX уж лучше взять jenkins и настроить там ansible-plugin и k8s-pipeline (в моем случае) и радоваться


Sergey
08.05.2018
12:10:47
если у вас время, то подумайте пожалуйста:
я сделаю dynamic inventory который будет выгребать все из мониторинга, эта идея да мне нравится.
но возникает вопрос, допустим что у меня постоянно 90% железа живое, и в течение 2 дней, я так или иначе имею доступ к 100% железа.
каким образом мне сделать оркестрацию, что бы мне запустить "плейбуку" против 100% хостов.
запускать её по кронтабу да, что-то вроде LCM (life cycle management) получится.
таскать за собой везде .retry файл что бы он уменьшался?
при условии что у меня это все запускается из CI/CD в k8s подах, автоматизация есть и с ней нет проблем.
В принципе, со мной можно на "ты" - так удобнее. Здесь всё же интернет ?
По сути вопроса - это типичная проблема stateful vs stateless. По дизайну Ансибл - stateless. Ты вводишь некое внешнее по отношению к Ансиблу состояние хоста - "обработан/не обработан". Понятное дело, что "искаропки" в Ансибле такого нет. Как только ты решишь, где будешь хранить состояние "этот хост уже обработан", тогда же ты сам себе дашь и ответ на вопрос "как это сделать".
Кстати, при таких занятных исходных данных, возможно, что-то другое подойдёт вместо Ансибла, агентом оборудованное.

Google

Sergey
08.05.2018
12:11:15
В последнем случае именно агент и следит за тем, чтобы всегда быть обработанным.

Vadim
08.05.2018
12:11:37

bebebe
08.05.2018
12:12:09
я просто не могу это применять, но если даже и вкорячу, то все логи будут в job runner'e - дженкинс пайплайнах или логах pod'ов
и в таком случае AWX немного теряет смысл

Vadim
08.05.2018
12:13:48


bebebe
08.05.2018
12:14:40
В принципе, со мной можно на "ты" - так удобнее. Здесь всё же интернет ?
По сути вопроса - это типичная проблема stateful vs stateless. По дизайну Ансибл - stateless. Ты вводишь некое внешнее по отношению к Ансиблу состояние хоста - "обработан/не обработан". Понятное дело, что "искаропки" в Ансибле такого нет. Как только ты решишь, где будешь хранить состояние "этот хост уже обработан", тогда же ты сам себе дашь и ответ на вопрос "как это сделать".
Кстати, при таких занятных исходных данных, возможно, что-то другое подойдёт вместо Ансибла, агентом оборудованное.
да все верно,если глобально подходить к проблеме, то это licecycle management окружения. и весь ворох вопросов который с ним связан
иначе приходится выпиливать такое
https://github.com/jow-/hfbk-ansible/blob/master/tasks/network-discover-ipv6ll.yml
поймите мою боль


Sergey
08.05.2018
12:19:52

bebebe
08.05.2018
12:20:54
а чем стандарт TR-069 плох?
как раз недавно о нем читал, и все бы ничего
но как там в поговорке, у меня очень извращенные желания. я так понял что tr-069 не покроет все мои хотелки

Sergey
08.05.2018
12:21:19

bebebe
08.05.2018
12:22:13

Vadim
08.05.2018
12:23:14

bebebe
08.05.2018
12:25:41
Нутк k8s_raw
я понимаю, мне эти излишние примитивы не нужны, мне надо запускать по 30-60 подов в k8s, который я просто скейлю. моя хотела натраивать AWX на k8s кластер что бы он там все плейбуки в подготовленных окружениях запускал, а не допиливать этот функционал притом, что он явно релизнится через пару релизов.
там много возни в которой я не вижу смысла если честно, даже при условии что оно все взлетит (а оно взлетит)

Vadim
08.05.2018
12:26:48

bebebe
08.05.2018
12:27:44
впрочем, в эту полемику я не хотел бы вступать, за что платят редхату дяди
от лица всех западно-восточных инженеров

Google

bebebe
08.05.2018
12:30:57
тут работяги тоже удивляются почему нет:
https://github.com/ansible/awx/issues/592
https://github.com/ansible/awx/issues/159
вот тут уже теплее
https://github.com/ansible/awx/pull/938

Nklya
08.05.2018
12:31:52
потому что в кубер обычно деплоят из ci/cd, при чем здесь awx?

Vadim
08.05.2018
12:31:57

Антон
08.05.2018
12:31:58
t

bebebe
08.05.2018
12:34:20
потому что в кубер обычно деплоят из ci/cd, при чем здесь awx?
у меня все workflow завернуты в k8s, когда мне не хватает мощностей для обслуживания инфрастуктуры анслиблом, я просто добавляю еще ноду, две в k8s кластер, что позволяет запускает еще больше ансибл плейбук параллельно.
притом что кластеров у меня несколько, и соответственно проблемы масштабирования в этом плане нет.
Так там же прям ямлы есть
я же писал, что это вопрос времени, если редхат это не запилит в awx, то awx будет неприменим на большом количестве юз-кейсов

Vladimir
08.05.2018
12:40:11
Мне кажется им не плохо для такой задачи будет redis, https://docs.ansible.com/ansible/latest/plugins/cache.html продолжение этой темы
там они смогут хранить retry
А так же можно будет делать что то с этим состоянием, и будет стейтфулл

bebebe
08.05.2018
12:45:23
я вообще рассматривал возможность хранить факты об окружении в etcd/redis/чем-нибудь еще.
пока до конца в голове не сложилась картина, но поводных камней как мне кажется должно быть мало

Vladimir
08.05.2018
13:02:42
именно
у них есть же плагин для этого
и это отлично подойдет когда у тебя единое хранилище а не отдельный файлик
просто надо будет понять как он хранит там свои данные и делать локал екшены если надо будет
Cache plugin implement a backend caching mechanism that allows Ansible to store gathered facts or inventory source data
Он уже сейчас это может делать, вопрос просто как мержить это, для этого надо запустить 2 параллельно и посмотреть, и можно будет мержить для него

bebebe
08.05.2018
13:06:03
да, у меня собственно так на другом проекте и так и сделано
есть 8 анслибл плейбук, которые запускаясь поочередно создают в облаке vm'ки и деплоят туда k8s. каждая плейбука запускается в отдельном pod'e на миникубе.
каждая из этих плейбук после себя обновляет в redis фактах стейт и передает дальше, это очень удобно
правда я накостылил это через pre и post хуки, но картины архитектурно это не меняет.