Estou tentando executar um único módulo como este:
puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'
No entanto, recebo esse tipo de erro, indicando que o caminho não está definido
Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.
Não quero especificar explicitamente o caminho em todos os locais e funciona bem quando executado como parte de uma marionete completa. Como posso especificar o caminho ao executar um único módulo?
Respostas:
Os comandos em um
Exec
recurso precisam ser totalmente qualificados (ou seja, em/usr/bin/test
vez detest
) ou opath
atributo desseExec
recurso deve ser definido.Se você pode modificar o (s) manifesto (s) Puppet, você pode simplesmente adicionar a seguinte definição para definir um
path
atributo padrão para todos osExec
recursos/bin
:Como uma solução alternativa (mais ou menos) suja, você também pode definir o padrão
path
para qualquerExec
recurso na linha de comando:Ponteiros de documentação:
fonte
Isso .. não deve funcionar como parte de uma execução completa. Ele precisa de um caminho completo para o executável no
unless
comando. Talvez você tenha definido um caminho em um arquivo global que faz parte de suas execuções completas?Tente
unless => '/usr/bin/[ -e "${logfile}" ]'
, em vez disso.fonte
Concordo com Shane que o caminho padrão provavelmente está definido em um manifesto com escopo global. Você pode fazer o mesmo, mas não pode passar isso como argumento, então use stdin:
ou coloque o Exec e inclua linhas
example.pp
e depois usepuppet apply -v ... example.pp
.fonte
Você precisa usar o caminho completo.
Por exemplo:
ou:
fonte