Начав использование SaltStack я столкнулся с проблемой "Как узнать какие из машин мне не ответили?"
Конечно может быть я плохо искал, но ничего полезного не обнаружил.
Зато все знают как узнать какие машины доступны, это просто:
Это может решить проблему в случае у вас меньше 10-ка управляемых хостов.
salt '*' test.ping
Но если их несколько 10-тков или 100-тен то быть уверенным в том что при деплое проекта на все машины будет залит код, и всё будет корректно настроено.
Таким образом я дошел до bash'ового скрипто-ложества.
Вообще есть мысль оформить это модулем к Salt'y и запушить в проект, но отложим это на то время когда будет время.
На выходе должен появиться список хостов(ключей) которые не доступны в данный момент.
#!/bin/bash - #title :salt_dead_spirits.sh #description :The script for search a dead spirits in SaltStack #author :Artem Chekunov <scorp.dev.null@gmail.com> #date :20130529 #version :0.1 #usage :./salt_dead_spirits.sh #notes : #bash_version :4.2.37(1)-release #============================================================================ _Tfile=$(tempfile) salt '*' test.ping | grep -v True | sed -e 's/://g' > ${_Tfile} salt-key -L | grep -v Keys >> ${_Tfile} cat ${_Tfile} | sort | uniq -c | sort -n | awk '{ if($1 ~ 1) print $2 }' rm -f ${_Tfile}
ВАЖНО: Удалять мёртвые души поскольку их наличие заметно замедляет групповое управление нодами
ЕЩЁ ВАЖНО: Кстати говоря, заметил такую вещь.
Иногда миньоны анонсируют свои ключи и для имени хоста и для полного имени хоста с доменом пример(myhost1, myhost1.mycompany.ltd) в таких случаях миньоны будут отвечать только при запросе на myhost1.mycompany.ltd Соответственно чтобы не путаться необходимо удалить ключи привязанные к хостнэйму без домена, пример(salt-key -d myhost1)
Комментариев нет:
Отправить комментарий