2013-10-30 52 views
1

我試圖提取文件的內容並將其存儲在變量中。我的代碼看起來像這樣。將文件的內容存儲在變量中

define ssh_user (
     $name = undef, 
     $role = undef, 
     $password = undef, 
     $usergroup = undef,) { 

       user { $name: 
         home => "/home/${name}/", 
         ensure => present, 

       }-> 

       exec { "generate keys ${name}": 
         user => $name, 
         command => '/bin/echo -e "\n\n\n" | ssh-keygen -t rsa', 
         path => "/usr/bin/", 
       }-> 
       file { "/home/${name}/.ssh/auhorized_keys": 
         ensure => file, 
         mode => 700, 
         source => "/home/${name}/.ssh/id_rsa.pub", 
       } 
       @@node_user { $name: 
         require => File["/home/${name}/.ssh/auhorized_keys"], 
         key => file('/home/${name}/.ssh/id_rsa.pub'), ## line causing error 
         role => "ssh::users::${name}::role", 
       } 
} 

我碰到下面的錯誤,

Error: Could not find any files from /home/${name}/.ssh/id_rsa.pub at /etc/puppet/manifests/sshd_setup.pp:90 on node puppet.colo.seagate.com 
Error: Could not find any files from /home/${name}/.ssh/id_rsa.pub at /etc/puppet/manifests/sshd_setup.pp:90 on node puppet.colo.seagate.com 

我創建了一組用戶的文件和存儲在varaible文件的內容。 將文件內容存儲在變量中後,我使用它來創建導出的資源。

我嘗試使用「require」和「 - >」來確保我的資源之間的順序;但事實證明這個錯誤可能是由於我的文件的路徑(它包含一個變量名)。

回答

4

你正在使用單引號而不是雙引號的那一行,我猜這就是爲什麼變量沒有正確解析?

即。它應該是

key => file("/home/${name}/.ssh/id_rsa.pub"), ## line causing error 

代替