Кукольный - как передать аргументы в командную строку - PullRequest
0 голосов
/ 11 июня 2018

Я новичок в марионетке, и мне интересно, как я могу передать аргументы в командной строке.Я объясню себе:

Это команда, которую я запускаю (применяется марионетка):

C:> применяется марионетка --environment test -l C: \ Puppet_logs \ log.logC: \ ProgramData \ PuppetLabs \ code \ environment \ test \ manifts \ site.pp

Site.pp:

File { backup => false }
node default {
include 'tn'
}

Это означает, что я запускаю 'tn', который является одним измодули в моем кукольном проекте.

Например, у меня есть эти модули в моем кукольном проекте:

tn

ps

av

Итак, чтобы запустить каждый модуль, мне нужно перейти в этот файл site.pp и изменить его на

include 'ps'

или

include 'av'

У меня такой вопрос -

Как передать эти модули в качестве аргументов в команду Puppet apply?

Я знаю, что яможет создать 3 .pp файла, каждый из которых содержит один модуль (ps, av, tn)

И тогда моя команда будет выглядеть так:

применить куколку --environment test -l C: \Puppet_logs \ log.log C: \ ProgramData \ PuppetLabs \ code \ environmentments \ test \ manifest \ ps.pp

применение кукол - тест среды -l C: \ Puppet_logs \ log.log C: \ ProgramData \ PuppetLabs \ code \ environment \ test \ manif \ \ av.pp

применяется кукольный - тест среды -l C: \ Puppet_logs \ log.log C: \ ProgramData \ PuppetLabs \ code \ environment \ test \ manifes \ tn.pp

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

спасибо !!!

1 Ответ

0 голосов
/ 14 июня 2018

Я знаю, что могу создать 3 файла .pp, каждый из которых содержит один модуль (ps, av, tn)

[...]

Но я думаю,это не хорошее решение.

Почему это не хорошее решение?Мне кажется совершенно разумным, что если у вас есть три разные вещи, которые вы хотите сделать, то у вас есть отдельный файл, который можно использовать для выполнения каждой из них.

Тем не менее, если ваши модули не используют друг друга,тогда вы могли бы, вероятно, выполнить то, что вы описываете, полагаясь на теги.Пусть манифест вашего сайта включает все три модуля:

File { backup => false }
node default {
  include 'tn'
  include 'ps'
  include 'av'
}

Затем используйте опцию --tags, чтобы выбрать только один из этих модулей и все остальные классы, которые он вводит:

puppet apply --tags ps --environment test -l C:\Puppet_logs\log.log C:\ProgramData\PuppetLabs\code\environments\test\manifests\site.pp
...