
Алексей
13.05.2018
10:54:49
и антона нету ?

Nklya
13.05.2018
10:55:12
там вообще 16 человек

Алексей
13.05.2018
10:55:23
а... ну ок

Wom
13.05.2018
11:14:19

Google

Sergey
13.05.2018
11:21:30
А про з можно?
Если речь о конфигурировании его с помощью ансибла - можно. А о З как явлении в Церкви метрик спроси.

Wom
13.05.2018
11:21:57

Sergey
13.05.2018
11:22:48
А, ну если знаешь, тогда сам прикинь: здесь те же люди, и канал опять не про З. Я думаю, результат очевиден ?
Хотя канеш на усмотрение админов.
Как всегда и везде.

Wom
13.05.2018
11:27:13
Засилие з-хейторов

Sergey
13.05.2018
11:29:37
Засилие з-хейторов
Полагаю, ты всегда можешь пожаловаться на это специальному человеку, который предложит прилечь на кушетку, расслабиться и рассказать, почему тебя беспокоят З-хейтеры, и что именно влечёт тебя к З.

Wom
13.05.2018
11:37:41

Sergey
13.05.2018
11:38:17

Алексей
13.05.2018
13:50:18

Nikita
13.05.2018
13:52:29
Есть. Церковь
Ну не знаю, по-моему наоборот, самый дорогой вариант. Триал конечно есть, но после нескольких использований деньги сосет как пылесос

Wom
13.05.2018
17:02:05
злые вы там

Google

Adil
13.05.2018
17:47:28

bebebe
13.05.2018
18:14:24
более того я два года подписан на ишуй для лимита параллельного запуска - и до сих пор в почту сыплется +1 от проекта на гитхабе
да, счетчик rundeck job перевалил за 120k (sic!), в него (rundeck) по api ходит мониторинг, когда определяет что проблему можно починить запуском плейбуки

Alexey
13.05.2018
18:57:55
Народ, я тут наткнулся на то, что мне надо начинать изучать Jinja2, ибо это крайне полезная штука. Вопрос в чём: с чего лучше начать изучение? Оф. мануала более чем хватает?

Wom
13.05.2018
18:59:09
а что там изучать-то? 20 минут на чтение доки

Alexey
13.05.2018
19:32:38
Хм... Недавно я сталкнулся с подобной конструкцией:
{% set cluster_members = [] -%}
{%- for node in groups["percona"] %}
{%- set _ = cluster_members.append(hostvars[node].ansible_ssh_host) -%}
{% endfor -%}
Так вот, мне понадобилось, чтобы во второй строке название группы было динамическим. И что-то я не дошёл до того, как это реализовать. Вот и начал думать, откуда начать изучение =)
Так что, думаю, там 20 минутами не обойдётся =)

bebebe
13.05.2018
19:33:37

Alexey
13.05.2018
19:34:23

bebebe
13.05.2018
19:34:37

Alexey
13.05.2018
19:35:49
Бл... Я пытался так:
groups["{{variable}}"]
Вот так
groups[{{variable}}]
Но вот что-то в пятницу вечером до правильного варианта не дошёл... Завтра с утра затестим. Спасибо ^^

Wom
13.05.2018
19:36:23
ты внутрь {} ещё одни пихал?

Alexey
13.05.2018
19:36:47
Именно. Я не просто так про изучение Jinja2 спрашиваю =)

Roman
13.05.2018
19:38:08
В Jinja применимы многие вещи из Python, хотя и не все, что дополнительно упрощает изучение.

Alexey
13.05.2018
19:51:36

Алексей
13.05.2018
22:11:20

bebebe
13.05.2018
22:15:26
Чем ходит? Как оно понимает зачем ходить?
ходит curl'ом через api token.
на определенные проблемы в мониторинге заведены хуки на recovery.
при деградации сервиса, если это можно починить автоматически запускается recovery hook, он лезет в rundeck который запускает уже ansible с правильными параметрами.

Алексей
13.05.2018
22:16:32
А мониторинг кто?

Google

bebebe
13.05.2018
22:17:01

Алексей
13.05.2018
22:18:16
Я пытался такое собрать на проме. Провал. Ибо кастомизировать хук нельзя а вызов в cli пром не умеет
Нужна поддержка со стороны рандека

Vadim
13.05.2018
22:21:51

Алексей
13.05.2018
22:22:35
Отдельный сервис ясненько. Но не цепочка итак уже длинна

bebebe
13.05.2018
22:24:05
мониторинг дергает этот скрипт с нужными параметрами (с нотификацией в телеграмм)

Алексей
13.05.2018
22:26:21
Вау. Какой интересный стиль написания шел скриптов. Спасибо сохранил
Рандек сам умеет в нотификацию в телегу

bebebe
13.05.2018
22:28:00

Алексей
13.05.2018
22:28:35
Ок да

bebebe
13.05.2018
22:31:32

Алексей
13.05.2018
22:32:30
Ну я пока не видел такого подхода инлайнить питон в скрипт на sh. Для меня это чуток дико

mandrivaman
13.05.2018
22:53:04
мне принцип непонятен =(
то, что нужно прикручивать переменную я понял

bebebe
13.05.2018
22:55:17
в with_items вам нужно подставить список из хостов которые вы нагрепали в netstat .....stdout_lines

mandrivaman
13.05.2018
22:57:30
а, вариант вида
when {{ netstat_result }} != ""
?

Google

mandrivaman
13.05.2018
22:57:50
я слишком молод, чтобы ко мне на "Вы" =)

bebebe
13.05.2018
22:58:27

mandrivaman
13.05.2018
23:01:17
огромное спасибо
а список из хостов только руками собирать?

bebebe
13.05.2018
23:04:35

mandrivaman
13.05.2018
23:08:11

bebebe
13.05.2018
23:08:41

mandrivaman
13.05.2018
23:09:05
netstat -lptn | grep 443
если строка не пустая - это мой клиент, и к нему нужно применять следующий плей

bebebe
13.05.2018
23:09:45
а, вы по всем хостам проходите и создаете список, где кто-то слушает на 443?

mandrivaman
13.05.2018
23:09:46
если пустая - не трогать
именно

bebebe
13.05.2018
23:25:33
именно
я все таки порекоменодвал вам dynamic inventory
поместите вот это в ваш скрипт для аргумента --list
docker run --rm uzyexe/nmap --open -p 443 -n 10.0.20.0/24 | awk '/report for/ {printf("\"%s\"\n", $NF)}' | docker run --rm -i realguess/jq sh -c 'jq -r --slurp "{\"hosts\": ., \"vars\": {}}"'

mandrivaman
13.05.2018
23:26:18

bebebe
13.05.2018
23:26:45
мне кажется вы облегчите себе жизнь и сократите время работы плейбуки.
nmap --open -p 443 -n 10.0.20.0/24 | awk '/report for/ {printf("\"%s\"\n", $NF)}' | jq -r --slurp '{"target_hosts": {"hosts": ., "vars": {}}}'

mandrivaman
13.05.2018
23:30:15
не взлетит. хосты с внешними адресами, и их список в первоначальном инвентори
поэтому с плейбуком и заморочился

Google

mandrivaman
13.05.2018
23:30:49
пойду по более сложному пути - через
add_host
за советы все равно спасибо


bebebe
13.05.2018
23:33:22
не взлетит. хосты с внешними адресами, и их список в первоначальном инвентори
почему не получится?
вы можете получить список хостов запустив:
ansible-playbook -i ./path/to/inventory --list-hosts sample.playbook
это команда сгенерирует вам список хостов
этот список хостов можно передать nmap через stdin
выйдит примерно следующее:
ansible-playbook -i ./invnetory.yml --list-host playbook.yml | nmap --open -p 443 -n -iL - | awk '/report for/ {printf("\"%s\"\n", $NF)}' | jq -r --slurp '{"target_hosts": {"hosts": ., "vars": {}}}'
впрочем я не настаиваю
конечно слушать :443 порт и проверять через netstat, или получить этот список через nmap это несколько разные вещи (например firewall между ними)
@mandrivaman и последний вариант который можно рассмотреть: добавить в список собираемых фактов открытые tcp порты, и уже исходня из фактов обходить хосты после ansible all -m setup
см:
https://medium.com/@jezhalford/ansible-custom-facts-1e1d1bf65db8
это при условии что на всех хостах, которвые вы менеджите, установлен python


mandrivaman
13.05.2018
23:47:21
#custom_facts

bebebe
13.05.2018
23:52:56
кстати. кто-нибудь использовал https://github.com/fboender/ansible-cmdb ?

Алексей
13.05.2018
23:54:36

bebebe
14.05.2018
08:14:12

Cloned
14.05.2018
09:07:53
Im trying to use ansible to configure my linux system to use gdm instead of lightdm, how do you execute dpkg-reconfigure and choose gdm in the promt through Ansible ?