Как добавить зависимость для пользовательских фактов -Facts ['name'], выполняемых в первую очередь перед всеми командами exec - PullRequest
0 голосов
/ 19 июня 2019

На самом деле я загружаю список файлов с ftp, а по загруженному пути я читаю весь список имен файлов для обработки.

В exec{"download from ftp ${value}" Я загружаю каталоги и подкаталоги с файлами с ftp на локальный. С этого пути я получаю список с использованием пользовательских фактов $facts['listdirectory']

Моя проблема в том, что Facts['listdirectory'] выполняется перед загрузкой с ftp.

Как добавить зависимость к $datadir=$facts['listdirectory'] или как заставить эти факты выполняться после загрузки?

class classname{
    exec{"download from ftp ${value}":
        command => "wget -r --user=${ftp_username}  -- 
        password=${ftp_password}  ${value}/* -P ${patch_download_path}",
        path    => ['/usr/bin', '/usr/sbin',],
        timeout => 1800,
        user    =>'root',
    }
    $datadir=$facts['listdirectory']
}

1 Ответ

0 голосов
/ 21 июня 2019

Моя проблема в том, что Facts ['listdirectory'] выполняется перед загрузкой с ftp.

Похоже, вы имеете в виду, что значение факта определяется до каталогасодержимое (не факт реализации) загружается.Конечно, это то, что произойдет в любом случае.

Все факты, которые сообщат о данном прогоне построения каталога, сначала оцениваются, а затем передаются в виде группы в сборщик каталога (который обычно выполняетсядистанционно на марионеточного мастера).Это дает разработчику каталога непротиворечивый снимок состояния машины для работы, поскольку он вычисляет желаемое целевое состояние, оценивая ваши манифесты в свете представленных фактов.Результат доставляется в виде каталога классов и ресурсов, который затем применяется локальной Puppet.

Только на этапе приложения каталога будет выполняться команда, указанная вашим Exec ресурсом.Это после того, как весь каталог был построен, и долго после оценки факта.Если вы хотите динамически адаптироваться к тому, что было загружено, вы должны либо сделать это при следующем запуске Puppet *1014*, либо создать сценарий и запустить сценарий через тот же или другой ресурс Exec, либо написать пользовательскийтип и поставщик, охватывающий весь процесс (возможно, включая загрузку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...