2017-04-26 2 views
0

私は、ユーザーごとに複数のsshキーを追加する可能性を実装する予定です。単一キーの場合 は、私が使用: 人形の位置を持つ配列の反復

if ($sshkeyarray != []) { 
    $sshkeyarray.each |String $singlesshkey| { 
     ssh_authorized_key { $resourcename: 
     ensure => 'present', 
     type => 'ssh-rsa', 
     key  => '$singlesshkey', 
     user => $title, 
     require => User[$title], 
     } 
    } 
    } 
しかしresourceNameを一度だけ使用することができますので、私のような名前を与えたい:複数のキーのために

if ($sshkey) { 
    ssh_authorized_key { $resourcename: 
     ensure => 'present', 
     type => 'ssh-rsa', 
     key  => '$sshkey', 
     user => $title, 
     require => User[$title], 
    } 
    } 

を、私はこれはうまくいくかもしれないと思いました最初のsshキーの "resourcename_1"とn番目のキーの "resourcename_n"。

どうすればいいですか?配列からsinglesshkeyの位置を取得し、resourdcenameに追加することはできますか?あなたがこれを行うことができますhereドキュメントで説明したように

答えて

1

いずれかの空の配列をテストする必要はありませんことを
$sshkeyarray.each |$index, String $singlesshkey| { 
    ssh_authorized_key { "${resourcename}_${index}": 
     ensure => 'present', 
     type => 'ssh-rsa', 
     key  => $singlesshkey, 
     user => $title, 
     require => User[$title], 
    } 
    } 

注意してください。空の配列をループすると、とにかく何も起こりません。

+0

完璧、ありがとう! – Studentus

+1

うわー、それは私が今まで知らなかった 'each()'関数の詳細です!私は今日何か新しいことを学んだ。 –

関連する問題