我按照https://www.youtube.com/watch?v=Lm6wsc8FjC8上的video教程来获得使用puppet将sshd_config部署到不同主机的基本示例。
这是我的“模块”:
ssh_config/ |-- files | |-- sshd_config.Debian | `-- sshd_config.Ubuntu `-- manifests `-- init.pp
cat manifests/init.pp显示我的清单:
class ssh_config { package { 'openssh-server': ensure => latest, } file { '/etc/ssh/sshd_config': ensure => 'present', owner => 'root', group => 'root', mode => '0644', source => 'puppet:///modules/ssh_config/sshd_config.${operatingsystem}', require => Package['openssh-server'], notify => Service['ssh'] } service { 'ssh': ensure => 'running', enable => 'true', require => Package['openssh-server'], } }
我把它包含在我的/etc/puppet/manifest/site.pp :
node default { include ssh_config }
如果我运行puppet agent -t我得到以下错误:
Info: Retrieving pluginfacts Info: Retrieving plugin Info: Loading facts Info: Caching catalog for puppet Info: Applying configuration version '1451986609' Error: /Stage[main]/Ssh_config/File[/etc/ssh/sshd_config]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/ssh_config/sshd_config.${operatingsystem} Notice: /Stage[main]/Ssh_config/Service[ssh]: Dependency File[/etc/ssh/sshd_config] has failures: true Warning: /Stage[main]/Ssh_config/Service[ssh]: Skipping because of failed dependencies Notice: Finished catalog run in 0.13 seconds
因素显示了facter operatingsystem的结果
木偶大师: Ubuntu
木偶代理: Ubuntu
我究竟做错了什么?
这是一个简单的引号问题。
'This string will not expand $operatingsystem' "This string *will* expand $operatingsystem"
当您想要在您的string中发生variables扩展时使用双引号。
使用source =>“puppet:///modules/ssh_config/sshd_config.$ {operatingsystem}”,