2016-08-26 5 views
1

Я пытался скопировать и выполнить скрипт, проживающий в главной машине кукольной на мой кукольный агентВыполнения Баш скрипт из марионетки не удается

Это мой код

[[email protected]****** manifests]# cat site.pp 
class mymodule::myklass{ 
    file {'my_bash_script': 
     ensure => 'file', 
     source => '/etc/puppet/modules/mymodule/my_bash_script.sh', 
     path => '/home/ec2-user/my_bash_script.sh', 
     owner => 'root', 
     mode => '755', 
     notify => Exec['run_my_script'], 
    } 
    exec { 'run_my_script': 
    command => '/home/ec2-user/my_bash_script.sh', 
    } 
} 
include mymodule::myklass 

моего сценарий:

[[email protected]********* mymodule]# cat my_bash_script.sh 
#!/bin/sh 
mv /usr/bin/node /usr/bin/bnode 
ln -s /usr/local/bin/node /usr/bin/node 
mv /usr/bin/npm /usr/bin/bnpm 
ln -s /usr/local/bin/npm /usr/bin/npm 

Я получаю следующее сообщение об ошибке:

[[email protected]*********** /]# puppet agent -t 
Info: Retrieving pluginfacts 
Info: Retrieving plugin 
Info: Loading facts 
Info: Caching catalog for ip*****************8 
Info: Applying configuration version '1472235841' 
Error: /Stage[main]/Mymodule::Myklass/File[my_bash_script]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/mymodule/my_bash_script.sh 
Notice: /Stage[main]/Mymodule::Myklass/Exec[run_my_script]: Dependency File[my_bash_script] has failures: true 
Warning: /Stage[main]/Mymodule::Myklass/Exec[run_my_script]: Skipping because of failed dependencies 
Notice: Finished catalog run in 0.08 seconds 

Может кто-нибудь, пожалуйста, помогите мне решить эту ошибку?

ответ

1

Вы должны использовать модуль кукольного URI на источник ваших file ресурсов, если они находятся в ваших module/files каталогах:

file {'my_bash_script': 
    ensure => 'file', 
    source => 'puppet:///modules/mymodule/my_bash_script.sh', 
    path => '/home/ec2-user/my_bash_script.sh', 
    owner => 'root', 
    mode => '755', 
    notify => Exec['run_my_script'], 
} 

Примечания документация здесь: https://docs.puppet.com/puppet/latest/reference/types/file.html#file-attribute-source

Если он все еще терпит неудачу с этой ошибкой , то это означает, что файл отсутствует в вашем $modulepath/mymodule/files/my_bash_script.sh, поэтому вам нужно его поместить.

Кроме того, ваш скрипт bash может быть преобразован в встроенный DSL-класс, и странно, что вы включаете в себя класс внутри себя в конце.

+0

Ошибка:/Stage [main]/Mymodule :: Myklass/File [my_bash_script]: не удалось оценить: не удалось получить информацию из источника (ов) среды производства puppet: ///modules/mymodule/my_bash_script.sh – nadish

+0

спасибо , удаление строки 'include mymodule :: myklass' разрешило ошибку. но команды, упомянутые в сценарии bash, не выполняются в агенте. есть ли что-нибудь, чего я не вижу? дайте мне знать – nadish

+0

@Ishwarya Используйте этот https://docs.puppet.com/puppet/latest/reference/types/exec.html#exec-attribute-logoutput в своем ресурсе 'exec', чтобы помочь отладить, увидев, что' exec' ресурс выход фактически. –

Смежные вопросы