[英]How can I wait for home directory to appear when using Puppet?
我下面有一個puppet腳本來創建一個用戶和一個授權的SSH密鑰,該密鑰在50%的時間內失敗。 似乎/ home / $ username是在后台創建的,並且在嘗試創建.ssh和授權密鑰時並不總是存在於此。 人偶失敗,因為/ home / $ username不存在。 但是當我過一秒鍾后,它實際上已經創建了。
在實際完全創建主目錄之前,如何使p不能繼續運行?
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。
你所尋找的,是元參數(這意味着你可以指定它的任何類) 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}"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.