Что такое SaltStack и с чем его едят я описал тут
В текущей статье я опишу как установить SaltStack-master на Debian.
Устанавливаем saltstack-master
В начале начал следует подключить backports для того чтобы удовлетворить все возможные зависимости SaltStack'a.
echo deb http://backports.debian.org/debian-backports/ \ squeeze-backports main > \ /etc/apt/sources.list.d/backports.list apt-get update apt-get dist-upgrade -y
добавляем репозиторий
cat <<_eof > /etc/apt/sources.list.d/local-madduck-backports.list deb http://debian.madduck.net/repo squeeze-backports main deb-src http://debian.madduck.net/repo squeeze-backports main _eof
и настраиваем приоритеты
for i in salt-{common,master,minion,syndic,doc} sysvinit-utils; do echo "Package: $i" echo "Pin: release a=squeeze-backports" echo "Pin-Priority: 600" echo done > /etc/apt/preferences.d/local-salt-backport.pref
осталось импортировать ключ
wget -q -O- "http://debian.madduck.net/repo/gpg/archive.key" | apt-key add - apt-get update
и приступить к установке
apt-get install salt-master
небольшое отступление, для отладки и поиска неполадок вы можете запустить salt-master вручную в отладочном режиме
salt-master --log-level=debug
Как установить saltstack-minion читайте тут.
Минимальная настройка saltstack-master
По умолчанию saltstack-master слушает на всех интерфейсах, на портах 4505 и 4506.
если вам нужно изменить сей факт то вам придётся отредактировать файл /etc/salt/master
Пример:
- #interface: 0.0.0.0 + interface: 10.0.0.1
# раскоментируем соответствующую опцию в конфиге sed -i -e 's/^#max_open_files/max_open_files/g' /etc/salt/master # увеличим количество лимитов в системе cat >> /etc/security/limits.conf <<EOF # wildcard does not work for root, but for all other users * soft nofile 4096 * hard nofile 32768 # settings should also apply to root root soft nofile 100000 root hard nofile 100000 EOF # и дабы не перезапускать сессию в ожидании чуда увеличим лимиты на лету ulimit -n 100000 # осталось перезапустить демона /etc/init.d/salt-master restart Restarting salt master control daemon: salt-masterStopping salt master control daemon .... Starting salt-master daemon: :. .
Управление ключами saltstack-master
Вся коммуникация между мастером и миньёном происходит при помощи AES шифрования, путём доверия разрешенным сертификатам.
Немножко синтаксиса
salt-key -h ... -L, --list-all Отобразить все публичные ключи -A, --accept-all Разрешить все публичные ключи -R, --reject-all Запретить все публичные ключи -d DELETE, --delete=DELETE Удалить публичный ключ -D, --delete-all Удалить все публичные ключи
на данный момент к моему мастеру пытается подключиться только один миньён
Выведем полный список ключей:
salt-key -L Accepted Keys: Unaccepted Keys: saltstack-minion Rejected Keys:
Разрешим все ключи, и посмотрим что получилось:
salt-key -A Key for minion saltstack-minion accepted. salt-key -L Accepted Keys: saltstack-minion Unaccepted Keys: Rejected Keys:
После добавления вышеуказанным образом мы можем проверить как доступность всего парка миньёнов, так и конкретную машину.
Проверим доступность машин:
salt '*' test.ping saltstack-minion: True saltstack-minion2: True saltstack-minion3: True salt 'saltstack-minion' test.ping saltstack-minion: True
Попробуем обновить систему на всех Debian системах
Пример:
salt -G 'os:Debian' cmd.run 'apt-get update; apt-get dist-upgrade -y' saltstack-minion: Hit http://mirror.yandex.ru squeeze Release.gpg Ign http://mirror.yandex.ru/debian/ squeeze/main Translation-en Hit http://mirror.yandex.ru squeeze-updates Release.gpg Ign http://mirror.yandex.ru/debian/ squeeze-updates/main Translation-en Hit http://mirror.yandex.ru squeeze Release Hit http://mirror.yandex.ru squeeze-updates Release Hit http://security.debian.org squeeze/updates Release.gpg Ign http://security.debian.org/ squeeze/updates/main Translation-en Hit http://mirror.yandex.ru squeeze/main Sources Hit http://mirror.yandex.ru squeeze/main amd64 Packages Hit http://backports.debian.org squeeze-backports Release.gpg Ign http://backports.debian.org/debian-backports/ squeeze-backports/main Translation-en Hit http://debian.madduck.net squeeze-backports Release.gpg Ign http://debian.madduck.net/repo/ squeeze-backports/main Translation-en Hit http://mirror.yandex.ru squeeze-updates/main Sources/DiffIndex Hit http://mirror.yandex.ru squeeze-updates/main amd64 Packages/DiffIndex Hit http://security.debian.org squeeze/updates Release Hit http://mirror.yandex.ru squeeze-updates/main amd64 Packages Hit http://backports.debian.org squeeze-backports Release Hit http://debian.madduck.net squeeze-backports Release Hit http://security.debian.org squeeze/updates/main Sources Hit http://backports.debian.org squeeze-backports/main amd64 Packages Hit http://debian.madduck.net squeeze-backports/main Sources Hit http://security.debian.org squeeze/updates/main amd64 Packages Hit http://debian.madduck.net squeeze-backports/main amd64 Packages Reading package lists... Reading package lists... Building dependency tree... Reading state information... The following packages will be upgraded: sysvinit-utils 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 99.2 kB of archives. After this operation, 12.3 kB disk space will be freed. Get:1 http://debian.madduck.net/repo/ squeeze-backports/main sysvinit-utils amd64 2.88dsf-34~bpo60+1~madduck.1 [99.2 kB] Fetched 99.2 kB in 0s (162 kB/s) (Reading database ... 38635 files and directories currently installed.) Preparing to replace sysvinit-utils 2.88dsf-13.1+squeeze1 (using .../sysvinit-utils_2.88dsf-34~bpo60+1~madduck.1_amd64.deb) ... Unpacking replacement sysvinit-utils ... Processing triggers for man-db ... Setting up sysvinit-utils (2.88dsf-34~bpo60+1~madduck.1) ...
Полный список модулей SaltStack вы найдёте тут
Как писать свои модули, вы можете прочитать тут
Комментариев нет:
Отправить комментарий