簡體   English   中英

使用Puppet時如何等待主目錄出現?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM