Назад | Перейти на главную страницу

марионетка только если указанные узлы

Я пытаюсь написать шаблон марионетки. У меня есть кукловод и несколько марионеточных агентов, и их всех надо разделить. Я думаю, что это хорошо делать по имени хоста узла. Но когда я попытался это сделать, то обнаружил ошибку

"puppet-agent[169037]: (/Stage[main]//Exec[adduser]) Could not evaluate: Could not find command 'ru1'"

см. код ниже

exec { 'adduser': 
        command => 'sudo adduser -m -p pawSfQewWrUAA test -G wheel',
        path => [ '/bin','/usr/bin' ],
        onlyif => "$hostname == ru1"
}

Мне нужно указать эту задачу только для одного узла с именем хоста ru1. Так я могу это сделать? Спасибо.

Разве это не было бы намного проще и разумнее?

case $hostname {
    ru1: user {
             ensure => 'present',
             name => 'test',
             gid => 'wheel',
             password => 'pawSfQewWrUAA',
             otherparametersgohere,
             }
}

Синтаксис кода может быть несовершенным, поскольку это было просто не в моей голове, не проверять синтаксис и не тестировать это каким-либо образом. Но Вы получаете идею.

Ожидается, что будет выполнена только команда оболочки, а не условие, подобное тому, что у вас есть, которое должно быть вместо этого.