SaltStack: можно ли применить состояния к мастеру, и если да, то как?

Я новичок в SaltStack, но мне удалось настроить некоторые состояния на машине и запустить их на миньоне.

То, что у меня есть сейчас, - это установка машины Debian с использованием солевого мастера, а также еще одна установка Debian как солонка.

Так как я использую мастер солей также как машину разработки, я хотел бы знать, могу ли я каким-то образом применить состояния к самому хозяину. И если да, то как?

Есть ли команда, которую я могу запустить для применения состояний на главном компьютере? (пока я не смог его найти)

Должен ли я установить соль-миньон на той же машине, чтобы это сделать, и просто зарегистрировать тот же самый компьютер, что и сам миньон?

Спасибо!

Ответы

Ответ 1

Так как я использую мастер солей также как машину разработки, я хотел бы знать, могу ли я каким-то образом применить состояния к самому хозяину. И если да, то как?

Вы можете сделать это, выполнив следующие шаги:

  • Установите соль-миньон на вашу машину разработки.
  • Измените /etc/salt/minion, чтобы указать на своего хозяина (vi/etc/salt/minion и изменить следующее: master: salt → master: 127.0.0.1)
    • (необязательно) Измените /etc/salt/minion _id на то, что имеет для вас значение
  • Запустите свою соль-миньон.
  • Используйте соль-ключ, чтобы принять свой ключ миньона.
  • Используйте своего соляного мастера, чтобы контролировать своего миньона, как если бы это был любой другой солонник.

Есть ли команда, которую я могу запустить для применения состояний на главном сервере?

Соль-мастер на самом деле не запускает файлы состояния, как это делают соляные миньоны. Если вы следовали вышеуказанным шагам, вы можете настроить таргетинг на своего соляного мастера, чтобы запустить highstate с помощью следующей команды:

salt 'the_value_of_/etc/salt/minion_id' state.highstate

Должен ли я установить соль-миньон на той же машине, чтобы это сделать, и просто зарегистрировать тот же самый компьютер, что и сам миньон?

Угу. Я думаю, у вас есть идея относительно того, что вам нужно делать, и просто нужно толчок в правильном направлении.

Ответ 2

Установите как Minion, так и Master на одиночный node

Я называю такой node Мастер-миньон. Никаких шагов не предусмотрено - вы уже знаете это на основе вопроса.

Некоторая концептуальная информация:

  • Короче говоря, Учитель никогда не применяет состояния. Вместо этого он запускает Minions (локальный мастер Minion в этом случае).
  • Solt Minion и Master - это две отдельные службы с независимым временем выполнения и конфигурацией.
  • В то время как экземпляры используют общее программное обеспечение, время выполнения разговаривает по сети (не зависит от местоположения).
  • Если вы можете применить состояния на удаленном Minion, , тот же механизм будет использоваться и для локального Minion.

Дополнительная информация

Существует два способа применения состояний:

  • Командная строка salt для состояния "push" для нескольких удаленных миньонов.

    rpm -qf $(which salt)
    salt-master-2015.5.3-4.fc22.noarch
    
  • Команда salt-call команды " тянуть" на одном локальном миньоне.

    rpm -qf $(which salt-call)
    salt-minion-2015.5.3-4.fc22.noarch
    

Пока задействовано более одного миньона, лучше использовать salt-call для того же эффекта:

salt-call state.highstate

Minion-side salt-call обеспечивает преимущества, особенно для тестирования, изоляции, устранения неполадок:

  • Это делает проблемы сети (если они есть) более очевидными.
  • Он безопасно применяет состояния только к одному локальному миньону (не указывая более одного).
  • Он показывает вывод отладки непосредственно в локальном терминале:

    salt-call -l debug test.ping
    

Последняя точка, salt-call --local также может использоваться в без мастеров, используя без сети.

Ответ 3

Теперь он близок к концу 2015 года. Давайте рассмотрим еще несколько возможностей для самоконтроля соли:

  • Установите миньона в сторону с солевым мастером в том же окне

Этот вопрос широко обсуждался как два ответа.

  1. Использовать соль-ssh + соленое состояние state.orchestrate

Шаги настройки:

Шаг 1: установите salt-ssh

Шаг 2: измените файл реестра (например,/etc/соль/реестр в CentOS 6). Установка по умолчанию уже предоставляет вам пример. Так как вы, вероятно, ssh в солевом хозяине, конечно, настройка имени пользователя/пароля/личного ключа не должна быть проблемой для вас. Например, для контроля брандмауэра с солью, этот образец должен делать:

localhost:
  host: 127.0.0.1
  user: vagrant
  passwd: vagrant
  sudo: True

Теперь, украсть из официальный учебник с небольшим завихрением:

# /srv/salt/orch/cleanfoo.sls
cmd.run:
  salt.function:
    - tgt: 'localhost'
    - ssh: 'true'
    - arg:
      - touch /tmp/test.txt

И запустите его с помощью

salt-run state.orchestrate orch.cleanfoo

Проверьте, есть ли в вашем файле test.txt каталог соляной мастер-бродяга/tmp.

Этот подход должен также работать для государства. В любом случае вам нужно что-то установить. Я предпочитаю второй способ, так как в общем случае вызов самоконтроля солярия (для обеспечения некоторой работы) - это всего лишь шаг, прежде чем я на самом деле вызову minion для обработки других состояний.