Salt — продолжение

    image
    Некоторое время назад я писал о замечательном продукте: Salt.

    Время не стоит на месте, и Salt тоже развивается.

    Из последних изменений могу отметить:
    — Попытка монетизации проекта (Проект переехал на .com и обзавелся платной поддержкой)
    — Over States
    — Node Groups
    — Очень много нового в документации
    — Субъективно более качественная поддержка windows


    А теперь обо всем чуть подробнее


    Over States

    Практически всегда настройка системы требует выполнения ряда последовательных действий и соблюдение порядка очень важно.
    Еще в старых версиях можно было организовывать некоторую последовательность внутри одного стейта. Over State же позволяет организовать последовательность действий между стейтами.
    Более подробно можно посмотреть тут.
    Node Groups

    Выборка машин подверженных определенному состоянию возможна по:
    1. minion_id
    [root@control salt]# salt 'dc-nl2' test.ping
    dc-nl2:
    True

    2. регулярному выражению
    [root@control salt]# salt -E 'dc-nl\d?' test.ping
    dc-nl:
    True
    dc-nl2:
    True

    3. списку
    salt -L 'web1,web2,web3' test.ping
    4. Grains Подробнее (гранулам, наверное. Так и не придумал как правильно)
    salt -G 'os:CentOS' test.ping
    Гранулы — это статические свойства миньона, которые он получает в момент старта автоматически. Так же можно прописывать свои гранулы в конфиге миньона
    5. Node Groups Подробнее
    Node Groups позволяет статически определить в конфигурационном файле мастера некоторые группы хостов.
    nodegroups:
    group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com'
    group2: 'G@os:Debian and foo.domain.com'

    Документация

    Тут и говорить нечего, она реально растет вместе с проектом.
    Вот полное оглавление.
    Советую почитать учебник по стейтам, он расширился
    Поддержка Windows

    На момент написания прошлой статьи была где-то 0.12 версия Salt.
    Могу сказать что, если на linux все работало замечательно, на Windows оно хотело каких-то зависимостей, так и не понял точно каких. VCredist какой-то версии кажется.
    Сейчас оно замечательно ставится инсталлятором.
    Ссылки

    сам Salt
    Примеры состояний

    Собственно это небольшая обзорная статья.

    Если увижу в комментариях желание посмотреть примеры — готов взяться написать еще пару статей-примеров о том как всем этим пользоваться. Сейчас как раз вплотную занят автоматизацией некоторых процессов на Windows через Salt.

    P.S. Комментарии по качеству статьи и ошибкам/опечаткам с радостью приму(Желательно в личку), ошибки исправлю. Сильно не пинать: только учусь.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 15

      0
      С удовольствием бы почитал про примеры применения!
        0
        Знакомый ник, вы никогда не работали в компании ПСС?
        Ок. приятно слышать. Я в процессе написания состояний для одного windows сервера и комплекта из nginx, php-fpm, mysql, redis под линукс. Вот это и опишу тогда. С копией стейтов на github
          0
          Нет не работал!
            0
            Просто не отказался бы одного человека найти))) С таким же ником в аське годах в 2000х общались. Хотя кажется я Вас уже об этом спрашивал
      • UFO just landed and posted this here
          0
          Я уже пол года использую в бою их систему. Доволен. Если бы хуже в ней разбирался — может и купил бы.
          +1
          Увидел Python в списке блогов, обрадовался, зашел почитать… Так и не понял что это за штука. Я правильно понял, что это типа fabric что-то?
            0
            Это система централизованного управления парком компьютеров любой величины. Написана полностью на python. Очень быстро развивается. Уже написана куча модулей и плагинов.
            Если коротко, то она позволяет достаточно большом количестве серверов развернуть какую-нибудь связку php-fpm+nginx со всеми настройками минут за 15.
              +1
              нененееектро пост:

              Допустим есть org.project нода. На ней крутится nginx. В конфиге nginx написано куда данные слать (org.project.{app1, app2}). Потребовалось поднять еще одну ноду (org.project.app3). Теперт надо, чтобы org.project подцепил изменения. Это возможно без ручного вмешательства?
                0
                Какой-то очень теоретический вопрос. По хорошему их бы выделить каким-то образом в отдельную группу. Сделать универсальный конфиг через jinja2 шаблон. А дальше сколько нод ты не подключишь — просто добавляй в эту группу.
                  0
                  В группу надо руками добавлять. Через ректор и Mine это делается оказывается.
              0
              Да, скорее fabric с кучей пренаписанных рецептов.
                +2
                Если я правильно понял fabric, то идеалогия другая.
                Фабрик для того что бы разом что-то сделать на нескольких серверах.
                Salt — для того что бы поддерживать «состояние» определенных служб.

                То есть например у тебя есть пачка сервисов на сервере. Ты описываешь какие у них должны быть конфиги, что установлено и что запущено. (в принципе описывается достаточно просто и понятно).
                Далее ты выполняешь salt highstate и salt миньон проверяет это состояние. Если что-то не в порядке (конфиг изменился, служба не запущена, порт закрыт и тд) исправляет только нужное.
                  0
                  А отличия от подобных — chef, puppet, cfengine?
                    0
                    Для меня ключевыми отличиями было:
                    1. легкое понимание процесса работы. За 1 час сделал первый стейт для fail2ban и применил.
                    2. python — то есть я смогу залезть в код и понять почему что-то идет не так.
                    3. Не ruby (да простит меня сообщество ruby, но не нравится мне этот язык. )
                    4. Кросплатформенность, хотя последние версии chef тоже вроде как windows умеют.
                    5. темплейты конфигов на jinja2, просто и понятно.

            Only users with full accounts can post comments. Log in, please.