SALTStack · 2 min read · Jan 04, 2026

Установка и использование SALTStack в смешанной среде - Страница 4

ДЕРЕВО СОСТОЯНИЙ SALT

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

Давайте сделаем еще один шаг вперед. Речь идет о том, чтобы управлять сложными задачами в сложной среде одной командой.

Более подробная информация об этом по ссылке -> http://docs.saltstack.com/ref/states/highstate.html

Для того чтобы иметь эту функцию, вам нужно немного настроить ваш salt в папке /etc/salt

На вашем SALT MASTER у вас должен быть файл с названием: master

Чтобы избавиться от закомментированных строк, он выглядит так:

root@salt-master:/etc/salt# grep -E -v '^#|^ *$' /etc/salt/master

Отредактируйте его, пока результат не должен быть:

state_top: top.sls
file_roots:
  base:
    - /srv/salt
log_file: /var/log/salt/master
key_logfile: /var/log/salt/key
log_level: debug

На следующем шаге мы создаем три файла состояния:

/srv/salt/top.sls       -> Это необходимо
/srv/salt/motd.sls      -> Это необязательно
/srv/salt/line6svn.sls  -> Это необязательно

Файл top.sls является точкой входа, определенной в /etc/salt/master

Он дает имя SaltStateFiles без “.sls”

Файлы состояния содержат команды и директивы конфигурации.

Вы также можете использовать фильтр в именах серверов или другие фильтры зерен везде, где есть дерево состояний.

cat /srv/salt/top.sls
base:
  '*':
    - motd
    - line6svn

Он проверяет репозиторий Subversion:

root@salt-master:/srv/salt# cat /srv/salt/line6svn.sls
https://svn.code.sf.net/p/line6linux/code/driver/trunk/:
  svn.latest:
    - target: /opt/Line6.SVN

Вы можете управлять текстовым файлом:

root@salt-master:/srv/salt# cat /srv/salt/motd.sls
motd_perms:
  file.managed:
    - name: /etc/motd
    - mode: 644
motd_quote:
  file.append:
    - name: /etc/motd
    - text: "Из всех запахов, хлеб; из всех вкусов, соль."

Мы можем активировать дерево состояний следующей командой:

root@salt-master:/srv/salt# salt '*' state.highstate
salt-minion2.test.local:
----------
    State: - file
    Name:      /etc/motd
    Function:  managed
        Result:    True
        Comment:   Файл /etc/motd в правильном состоянии
        Changes:   
----------
    State: - file
    Name:      /etc/motd
    Function:  append
        Result:    True
        Comment:   Добавлено 0 строк
        Changes:   
----------
    State: - svn
    Name:      https://svn.code.sf.net/p/line6linux/code/driver/trunk/
    Function:  latest
        Result:    True
        Comment:   На ревизии 1072.
        Changes:   
Summary
------------
Succeeded: 3
Failed:    0
------------
Total:     3
salt-centos:
----------
    State: - file
    Name:      /etc/motd
    Function:  append
        Result:    True
        Comment:   Добавлено 0 строк
        Changes:   
----------
    State: - file
    Name:      /etc/motd
    Function:  managed
        Result:    True
        Comment:   Файл /etc/motd в правильном состоянии
        Changes:   
----------
    State: - svn
    Name:      https://svn.code.sf.net/p/line6linux/code/driver/trunk/
    Function:  latest
        Result:    True
        Comment:   На ревизии 1072.
        Changes:   
Summary
------------
Succeeded: 3
Failed:    0
------------
Total:     3

Вы можете сделать запрос StateTree к серверу SaltMaster от Minion, вот так:

[root@salt-centos ~]# salt-call state.highstate -l debug

Выключение всех миньонов:

root@salt-master:~# salt '*' cmd.run "poweroff"
salt-centos:   
salt-minion2.test.local:    
salt-minion1.test.local:

Удачи!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.