Linux
puppet 試圖定義全域類變數
我正在嘗試將 puppet 用作 unix 使用者管理。
這是我為添加新使用者而創建的類:
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 and $ forename,在 unix_accounts 類中定義這些變數。我試過這個:
$username = $forename[0].chr.downcase+name.downcase $email = $forename.downcase+'.'+$name.downcase+'@localnet.lan'
但是客戶端的 puppetd 測試在第一個點 (.) 處失敗,並顯示以下消息:
Error 400 on server: Syntax error at '.'; expected '}' at ....
這個和ruby沒有關係,因為我之前用irb試過,好像只和puppet語法有關。無論如何都可以在類中創建這些變數嗎?怎麼做?
非常感謝
$username = $forename[0].chr.downcase+name.downcase $email $forename.downcase+'.'+$name.downcase+'@localnet.lan'
是什麼讓你認為這會奏效?這些都不是 Puppet 語言提供的功能。
查看函式文件以了解您可以直接在 Puppet 中對字元串執行哪些操作(不多)。然後查看模板文件以了解如何使用 ERB 模板,這將解決您的問題。
此外,這不是您的問題,但這是一個問題:如果您希望字元串插入變數,那麼您必須使用雙引號,如下所示:
user { $username: comment => "$forename $name", ...