Назад | Перейти на главную страницу

конфигурация saltstack «Не найдено совпадений данных верхнего файла или внешних узлов»

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

У меня есть 3 проекта, которые я назову project1, project2 и project3. Моей целью было создать настройку master / minion, в которой мой каталог srv / salt выглядел так:

/srv/salt
        |top.sls
        |/project1
                 |__/postgresql
                         |__init.sls
                         |__config.sql
                 |__/iptables
                         |__init.sls
                         |__config.sh
        |/project2
                 |__/tomcat
                         |__init.sls
                         |__config.sh
                 |__/java
                         |__init.sls
                         |__config.sh
        |/project3
                  |__/serverconfig
                         |__init.sls
                         |__config.sql
                 |__/conky
                         |__init.sls
                         |__config.sh

Для этого я отредактировал / etc / salt / master, чтобы читать

#/etc/salt/master
file_roots:
  base:
    - /srv/salt
  project1:
    - /srv/salt/project1
  project2:
    - /srv/salt/project2
  project3:
    - /srv/salt/project3

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

Я начал с редактирования / etc / salt / master, чтобы показать свои группы узлов

#/etc/salt/master
nodegroups:
  project1: 'L@project1_server1,project1_server2,project1_server3'
  project2: 'L@project2_server1,project2_server2,project2_server3'
  project3: 'L@project3_server1,project3_server2,project3_server3'

При запуске, когда он был настроен, я попытался применить состояние project1 к его серверам, используя следующую команду:

salt -N project1 state.highstate

Это выполняется правильно для project1_server2, project1_server3, но не работает на project1_server1.

Ошибка для project1_server1: «Не найдено совпадений данных верхнего файла или внешних узлов».

Я открыт для предложений о том, как эту настройку можно было бы более легко реализовать, но я хотел бы знать причину, по которой это не работает. Спасибо за любую помощь.

РЕДАКТИРОВАТЬ1

добавление моего файла top.sls

#/srv/salt/top.sls
project1:
  project1:
    - match: nodegroup
    - postgresql
    - iptables
project2:
  project2:
    - match: nodegroup
    - tomcat
    - java
project3:
  project3:
    - match: nodegroup
    - serverconfig
    - conky

РЕДАКТИРОВАТЬ2

Вывод из salt -N project1 grains.item id

project1_server1:
    ----------
    id:
        project1_server1
project1_server2:
    ----------
    id:
        project1_server2:
project1_server3:
    ----------
    id:
        project1_server3:

РЕДАКТИРОВАТЬ3

Правильный ответ предоставил ChrisV.

Проблема заключалась в синтаксических ошибках для узла в / etc / salt / master. Мне нужно было это изменить, а затем перезапустить соль-мастер

pkill salt-master
salt-master -d

Определения группы узлов должны быть следующими:

project1: 'L@project1_server1,project1_server2,project1_server3'

Документация по соли: Группы узлов и Составные сопоставители

Также обратите внимание, что требуется перезапуск демона мастера соли.