передача параметров из внешнего файла (шаблона) в кукольный скрипт

Привет, я пытаюсь запустить исполняемый файл с помощью скрипта puppet. Мой исполняемый файл принимает 3 параметра, таких как param1, param2 и param3. Все, что я хочу, это передать эти параметры через внешний файл. Как я могу это сделать?

Вот мой пример кода:

exec { "executing exe file":
  command => 'copyfile.exe "DestinatoinPath" "sourcefilename" "destinationfilename" ',
}  

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

Может ли кто-нибудь помочь мне решить это

Вот мой след:

Вот моя структура каталогов:

puppet\modules\mymodule\manifests\myfile.pp and 
puppet\modules\mymodule\templates\params.erb 

and my erb file is having a value of path ex: d:\test1.txt e:\test1.txt testfilename 

$myparams = template("mymodule/params.erb") 

exec { "executing exe file":
  command => '$myparams',
} 

person jestges    schedule 26.11.2013    source источник


Ответы (1)


ИЗМЕНИТЬ:

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


Есть 2 основных способа сделать это:

Объявить переменные в области видимости

#acceptable for a throwaway manifest
$path = "DestinationPath"
$source = "sourcefilename"
$destination "destinationfilename"

exec { "executing exe file":
    command => 'copyfile.exe ${path} ${source} ${destination}',
}

Оберните его в параметризованный класс/определенный тип

# parameterized class, included only once
class executing_exe_file ($path, $source, $destination) {
    exec { "executing exe file":
        command => 'copyfile.exe ${path} ${source} ${destination}',
    }
}

OR

# defined resource, can be repeated multiple times
define executing_exe_file ($path, $source, $destination) {
    exec { "executing exe file":
        command => 'copyfile.exe ${path} ${source} ${destination}',
    }
}

ПОТОМ

executing_exe_file { "executing exe file":
    path: "DestinationPath",
    source: "sourcefilename",
    destination: "destinationfilename",
}

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

person xiankai    schedule 28.11.2013
comment
Привет, спасибо за ответ. Здесь я хочу сохранить эти значения назначения, источника и пути в отдельном файле вместо того, чтобы вставлять один и тот же сценарий и получать доступ оттуда (например, файл .erb). Так что я могу изменить этот файл каждый раз, когда это потребуется. Таким образом, нет необходимости открывать настоящий кукольный сценарий. Я попытался поместить эти значения в папку шаблона и попытался получить доступ. Но это терпит неудачу. - person jestges; 28.11.2013
comment
@jestges Где вы размещаете нужные вам значения? Можете ли вы обновить свой вопрос с помощью кукольного кода, который извлекает значение? - person xiankai; 28.11.2013
comment
Я помещаю свои значения в папку шаблона, например params.erb, и пытаюсь получить доступ, например $myparams = template(mymodule/params.erb) - person jestges; 28.11.2013
comment
Это... интересный способ передачи параметров. Рассматривали ли вы вместо этого использование hiera? В любом случае, можете ли вы обновить свой вопрос со всем кукольным кодом и структурой каталогов модулей для дальнейшего изучения? - person xiankai; 28.11.2013
comment
Вот моя структура каталогов: puppet\modules\mymodule\manifests\myfile.pp и puppet\modules\mymodule\templates\params.erb, и мой файл erb имеет значение пути ex: d:\test1.txt e:\ test1.txt имя тестового файла - person jestges; 28.11.2013
comment
Можете ли вы отредактировать свой вопрос с помощью предоставленной вами информации? Попытка избежать расширенного обсуждения в комментариях - person xiankai; 28.11.2013
comment
давайте продолжим это обсуждение в чате - person jestges; 28.11.2013