ファイルの内容を抽出して変数に格納しようとしています。私のコードは次のようになります。
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
セットユーザー用のファイルを作成し、ファイルの内容を変数に保存しています。ファイルの内容を変数に保存した後、それを使用してエクスポートされたリソースを作成しています。
リソース間の順序を確保するために、「require」と「->」を使用してみました。しかし、エラーはファイルへのパスが原因である可能性があります(変数名が含まれています)。