将shell脚本从puppet master复制到puppet agent,并在puppet agent上执行
我正在尝试将一个shell脚本从木偶主机复制到木偶客户端 这是我关于木偶大师的shell脚本:将shell脚本从puppet master复制到puppet agent,并在puppet agent上执行,puppet,Puppet,我正在尝试将一个shell脚本从木偶主机复制到木偶客户端 这是我关于木偶大师的shell脚本: cat /etc/puppetlabs/code/environments/production/modules/mymodule/mybash.sh echo hi hello cat /etc/puppetlabs/code/environments/production/manifests/site.pp notify{"Message : I am a message from puppe
cat /etc/puppetlabs/code/environments/production/modules/mymodule/mybash.sh
echo hi hello
cat /etc/puppetlabs/code/environments/production/manifests/site.pp
notify{"Message : I am a message from puppet master": }
class myfile {
file { '/home/myserver/mybash.sh':
mode => '0755',
owner => 'root',
source => 'puppet:///modules/mymodule/mybash.sh',
notify => Exec['run_my_script'],
}
exec { 'run_my_script':
command => '/home/npatel/mybash.sh',
}
}
notify{"Message : new msg test": }
我还在/home/myserver/mybash.sh
中复制了相同的shell脚本
这是puppet master上的my site.pp文件:
cat /etc/puppetlabs/code/environments/production/modules/mymodule/mybash.sh
echo hi hello
cat /etc/puppetlabs/code/environments/production/manifests/site.pp
notify{"Message : I am a message from puppet master": }
class myfile {
file { '/home/myserver/mybash.sh':
mode => '0755',
owner => 'root',
source => 'puppet:///modules/mymodule/mybash.sh',
notify => Exec['run_my_script'],
}
exec { 'run_my_script':
command => '/home/npatel/mybash.sh',
}
}
notify{"Message : new msg test": }
这是puppet agent的输出:
myclient:~$ sudo /opt/puppetlabs/bin/puppet agent --test
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for myclient.test.com
Info: Applying configuration version '1483393652'
Notice: Message : I am a message from puppet master
Notice: /Stage[main]/Main/Notify[Message : I am a message from puppet master]/message: defined 'message' as 'Message : I am a message from puppet master'
Notice: Message : new msg test
Notice: /Stage[main]/Main/Notify[Message : new msg test]/message: defined 'message' as 'Message : new msg test'
Notice: Applied catalog in 0.20 seconds
看起来只有带有notify{“Message:
的行在puppet代理上执行,而不是它们之间的行
我没有看到文件部分提到的mybash.sh
在/home/my client
路径中被复制,也没有日志来确保文件是否被复制
我是否遗漏了源代码值中的任何内容?在Puppet中,定义类并不会自动将其包含在配置中,它只是让它可以被声明。定义类类似于用Ruby、Python或C等语言定义函数。函数只有在被调用时才有效。类似地,Puppet类定义在我们宣布之前,这些条款没有任何效力 如果您想实际使用该类,可以使用
include
函数声明它。这会告诉Puppet评估该类并管理其中声明的所有资源
除了include
函数外,还可以使用class{'myfile':}
语法等资源
因此,在代码中,如果要声明类,必须执行以下操作:
/etc/puppetlabs/code/environments/production/manifests/site.pp
我还建议您直接将类代码放入模块清单,然后将该类包含在site.pp
文件中:
/etc/puppetlabs/code/environments/production/modules/mymodule/init.pp
然后在站点中声明类。pp
:
node default {
include myclass
}
在Puppet中,定义一个类不会自动将其包含在配置中,它只是让它可以被声明。定义一个类类似于用Ruby、Python或C这样的语言定义一个函数。该函数只有在被调用时才有效。同样,直到我们声明它之前,Puppet类定义没有任何效果哼哼 如果您想实际使用该类,可以使用
include
函数声明它。这会告诉Puppet评估该类并管理其中声明的所有资源
除了include
函数外,还可以使用class{'myfile':}
语法等资源
因此,在代码中,如果要声明类,必须执行以下操作:
/etc/puppetlabs/code/environments/production/manifests/site.pp
我还建议您直接将类代码放入模块清单,然后将该类包含在site.pp
文件中:
/etc/puppetlabs/code/environments/production/modules/mymodule/init.pp
然后在站点中声明类。pp
:
node default {
include myclass
}
谢谢彼得的简洁回答!我能够解决问题。谢谢彼得的简洁回答!我能够解决问题。