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

Как создать пользователя с помощью Puppet

Я пытаюсь создать пользователя с помощью Puppet, но все, что я пытался, не удалось.

Я пытаюсь создать пользователя с именем «capistrano», который будет помещен в группу «www-data». Я выполнил следующую конфигурацию.

class capistranoDeps::user {
    user { "capistrano":
        ensure => present,
        comment => "Capistrano user",
        gid => 33,
        shell => "/bin/bash",
        require => Group["capistrano"],
    }
    group {"capistrano":
        ensure => present,
    }
}


class capistranoDeps::config {
    require capistranoDeps::user
    # Set permissions on webserver directories
    file {"/var/www/":
        ensure => directory,
        owner  => "capistrano",
        group  => "www-data",
        mode   => "775",
    }
...
}
class capistranoDeps {
    require tools
    include capistranoDeps::user,capistranoDeps::config
}

Когда я пытаюсь выполнить эту конфигурацию на своем хосте, я получаю следующую ошибку:

root@app1:/etc/openvpn# puppet agent --server=puppet.domain --no-daemonize --verbose
notice: Starting Puppet client version 2.6.2
info: Caching catalog for app1.domain
err: Could not run Puppet configuration client: Could not find user capistrano

Пользователь еще не был создан на хосте, так как это работа Puppet. Примеры, которые я нашел повсюду, кажутся такими же, как этот, но поскольку это не работает, мне определенно что-то не хватает.

"require" не делает того, что вы думаете, а фактически создает зависимость.

Вместо этого вы хотите использовать "include" в классе capistranoDeps :: config

include capistranoDeps::user

Для получения дополнительной информации также см. Этот вопрос:

В чем разница между включать и требовать в марионетке