Заставить модули общаться друг с другом

В настоящее время я работаю над профилем, чтобы заблокировать сервер, убедившись, что службы и пользователи отключены. Например, Apache.

Это вызывает проблемы, когда другой профиль хочет управлять ресурсом, потому что тогда у меня будет два ресурса Service [apache].

Теперь я мог бы использовать что-то вроде определения, но мой предпочтительный метод был бы некоторым способ, которым profile :: apache может общаться с profile :: lockdown и сообщать ему, чтобы он оставил apache в покое.

1
задан 16 October 2017 в 11:50
1 ответ

Я думаю, что вам нужно использовать hiera для архивирования того, что вы хотите.

class profiles::apache {
  class { '::apache': }
}

Теперь, если мой класс profiles :: apache будет использоваться для 1000 узлов, а я хотите остановить службу на одном конкретном сервере, в hiera я могу использовать что-то вроде этого.

Пример конфигурации hiera 3 hiera.yaml

---
:backends:
  - yaml
  - json
:yaml:
  :datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:json:
  :datadir: "/etc/puppetlabs/code/environments/%{::environment}/hieradata"
:hierarchy:
  - "nodes/%{::trusted.certname}"
  - "virtual/%{::virtual}"
  - "common"

Теперь в / etc / puppetlabs / code / environments / production / hieradata / node / servername.domain.local.yaml вставьте этот apache :: service_ensure: Stop

С помощью hiera вы можете управлять параметрами классов по узлам или чему-то еще

1
ответ дан 3 December 2019 в 23:25

Теги

Похожие вопросы