我试图用puppet作为unix用户pipe理。
以下是我创build的用于添加新用户的类:
class unix_accounts( $username, $forename, $name, $email, $uid) { user { $username: comment => '$forename $name', home => '/home/$username', shell => '/bin/bash', uid => $uid, groups => [$username, 'sudo'], }
我想,基本上可以从$ name和$ forename中推导出电子邮件和用户名,以便在unix_accounts类中定义这些variables。 我试过这个:
$username = $forename[0].chr.downcase+name.downcase $email = $forename.downcase+'.'+$name.downcase+'@localnet.lan'
但是客户端的puppetdtesting在第一个点(。)出现以下消息:
Error 400 on server: Syntax error at '.'; expected '}' at ....
这与ruby没有任何关系,因为我之前用irb试过了,似乎只和puppet语法有关。 是否有可能在一个类中创build这些variables? 怎么做?
非常感谢
$username = $forename[0].chr.downcase+name.downcase $email $forename.downcase+'.'+$name.downcase+'@localnet.lan'
是什么让你觉得这将起作用? 这些都不是Puppet语言提供的function。
看看http://docs.puppetlabs.com/references/stable/function.html看看你可以直接在Puppet中使用string(不是很多)。 然后看看http://docs.puppetlabs.com/guides/templating.html看看如何使用ERB模板,这将解决您的问题。
此外,这不是你的问题,但它是一个问题:如果你想让你的string插入variables,那么你必须使用双引号,如下所示:
user { $username: comment => "$forename $name", ...