2013-10-08 60 views
0

我有下面的傀儡腳本來創建一個用戶和授權的SSH密鑰失敗50%的時間。看起來/ home/$用戶名是在後臺創建的,並且在嘗試創建.ssh和授權密鑰時並不總是存在。木偶失敗,因爲/ home/$用戶名不存在。但是當我稍後再看時,它實際上已經被創建了。如何在使用Puppet時等待主目錄出現?

如何讓puppet不能繼續直到主目錄實際上完全創建?

user { $username: 
    name => $username, 
    managehome => true, 
    shell => "/bin/bash", 
    groups => [ 'dip', 'admin' ]; 
    } 

    file { "/home/${username}/.ssh": 
    ensure => 'directory'; 
    } 

    file { "/home/${username}/.ssh/authorized_keys": 
    owner => "${username}", 
    group => "${username}", 
    mode => '0664', 
    content => "${ssh_public_key}" 
    } 

Puppet 3.3.1和Ubuntu 12.04.3 LTS。

回答

2

你在找什麼,是元參數(意思是你可以指定它爲任何類)require

我假設你的傀儡腳本被包裹在與訪問$username一個範圍,所以像這樣的工作:

user { $username: 
    name => $username, 
    managehome => true, 
    shell => "/bin/bash", 
    groups => [ 'dip', 'admin' ] 
} 

file { "/home/${username}/.ssh": 
    ensure => 'directory', 
    require => User["$username"] 
} 

file { "/home/${username}/.ssh/authorized_keys": 
    require => File["/home/${username}/.ssh"], 
    owner => "${username}", 
    group => "${username}", 
    mode => '0664', 
    content => "${ssh_public_key}" 
} 
相關問題