Вы когда-нибудь задумывались, как выполнять классы, определенные в манифестах Puppet, в определенном порядке ❓❓

Puppet позволяет пользователям изменять порядок развертывания классов с помощью этапов.

К каждому классу может быть прикреплен определенный этап. Порядок выполнения классов можно определить, изменив порядок этапов. Это позволит вам запускать свои классы в соответствии с вашими предпочтениями.

Этапы и порядок выполнения этапов можно указать в site.pp следующим образом.

Например, предположим, что у нас есть 4 класса как custom.pp, init.pp, params.pp и startserver.pp как 4 разных манифеста Puppet. Теперь предположим, что нам нужно запустить класс custom.pp перед классом startserver.pp.

Поскольку нам нужно установить приоритеты в порядке выполнения этих двух классов, нам нужно определить два этапа. Мы определили два этапа: «заключительный» и «средний». Этапы и порядок выполнения этапов определены в site.pp следующим образом.

# Run stages
stage { 'final': }
stage { 'custom': }
# Order of stages
Stage['main'] -> Stage['middle'] -> Stage['final']

Согласно приведенному выше фрагменту кода порядок выполнения этапов следующий.

main stage 👉 middle stage 👉 final stage

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

node default {
  class { "::${::profile}": }
  class { "::${::profile}::custom":
    stage => 'middle'
  }
  class { "::${::profile}::startserver":
    stage => 'final'
  }
}

Класс «custom» назначается «среднему» этапу, а класс «startserver» назначается «конечному» этапу. Это изменит порядок выполнения по мере необходимости.

Теперь вам может быть интересно, что такое «главный» этап. 🤔🤔🤔

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

Таким образом, теперь вы можете определить любое количество этапов в Puppet и изменить порядок выполнения ваших классов Puppet. ✔️

Ура 👏👏👏 !!!!!!