2014-09-27 42 views
0

我一直在玩弄木偶,我遇到了一個難倒我的問題。也許有人可以點亮一些光。這個想法是我有一個rsync腳本,更新我的puppet master上我的authorized_keys 文件。每4個小時的puppet代理抓取新的authorized_keys文件。Puppet root authorized_key文件

這裏是明顯的

class policy1::sshkey { 
    file { '/root/.ssh/': 
    ensure => directory, 
    path => '/root/.ssh/', 
    owner => 'root', 
    group => 'root', 
    mode => '0700', 
    } 

    file { '/root/.ssh/authorized_keys': 
    require => File ["/root/.ssh/authorized_keys"], 
    ensure => file, 
    owner => 'root', 
    group => 'root', 
    mode => '0600', 
    source => "puppet:///modules/policy1/authorized_keys", 
    } 
} 

大師給我的經紀人,雖然得到這個錯誤

Error: Failed to apply catalog: Not a directory - /root/.ssh/authorized_keys

+0

你能確保在主模塊上的'modules/policy1/files/authorized_keys'不是一個目錄嗎? – 2014-09-28 12:56:21

+0

是的,它不是一個目錄。 – crypticsec 2014-09-28 16:37:15

回答

0

在您的清單,特別是你有它本身需要第二資源定義。這就是說,你想要做類似如下:

class policy1::sshkey { 
    file { '/root/.ssh/': 
    ensure => directory, 
    path => '/root/.ssh/', 
    owner => 'root', 
    group => 'root', 
    mode => '0700', 
    } 

    file { '/root/.ssh/authorized_keys': 
    # Require the parent directory to be created beforehand. 
    require => File['/root/.ssh/'], 
    ensure => file, 
    owner => 'root', 
    group => 'root', 
    mode => '0600', 
    source => "puppet:///modules/policy1/authorized_keys", 
    } 
} 

...還是我個人比較喜歡:

class policy1::sshkey { 
    file { '/root/.ssh': 
    ensure => directory, 
    path => '/root/.ssh', 
    owner => 'root', 
    group => 'root', 
    mode => '0700', 
    }-> 
    file { '/root/.ssh/authorized_keys': 
    ensure => file, 
    owner => 'root', 
    group => 'root', 
    mode => '0600', 
    source => 'puppet:///modules/policy1/authorized_keys', 
    } 
} 
+0

嘗試兩個,仍然給我的目錄錯誤。 – crypticsec 2014-09-28 16:44:07

+0

所以我禁用清單的下半部分,我可以確認上半部分的工作 class policy1 :: sshkeys {'/root/.ssh': ensure => directory, path =>'/ root/.ssh', owner =>'root', group =>'root', mode =>'0700', – crypticsec 2014-09-28 17:53:14

+0

所以我禁用了上半部分,並且可以驗證它的工作原理。所以我認爲這個問題可能是第二部分,如果我禁用確保=>文件的作品。我可以看到來自主服務器的pre-seeded authorized_keys。 – crypticsec 2014-09-28 18:01:32

0

它看起來像禁用 確保=>文件, 似乎這樣的伎倆。感謝Evgeny和Felix的幫助。

+0

請將答案標記爲已接受。謝謝。 – 2014-09-29 13:40:32