Меня немного смущает вывод puppet resource
команды, и документация мне не помогает.
Если я сбегу puppet resource user myuser
например, это дает:
user { 'myuser':
ensure => 'present',
comment => 'Ubuntu',
gid => '1000',
groups => ['cdrom', 'floppy', 'sudo', 'audio', 'dip', 'video', 'plugdev', 'netdev'],
home => '/home/myuser',
shell => '/bin/bash',
uid => '1000',
}
Эта команда дает один и тот же вывод независимо от того, является ли учетная запись пользователя «Оскученной» или нет. В этом случае к узлу не применены манифесты Puppet, влияющие на этого пользователя. Я могу удалить эту учетную запись, и она больше не будет создана. Итак, о чем мне говорит этот вывод? В ensure => present
атрибут, конечно, не говорит мне, что Puppet обеспечит наличие учетной записи.
В основном это говорит мне: «Если вы хотите, чтобы Puppet сохранил эту учетную запись пользователя в текущем состоянии конфигурации, вот что вы бы вставили в манифест»? Или я совершенно неправильно понял суть?
Puppet можно использовать для аудита состояния вашей системы. Частью функциональных возможностей аудита состояния вашей системы является возможность фактически считывать состояние некоторого ресурса. Puppet изменяет вещи в системе только тогда, когда ресурс не такой, каким должен быть. Он должен иметь возможность загружать текущее состояние ресурса, чтобы решить, требуется ли изменение.
В puppet resource
команда просто предоставляет эту функциональность. Он не очень часто используется напрямую, но иногда полезен для отладки. Вы, безусловно, можете использовать его, чтобы понять, как составить манифест, если хотите. В любом случае функциональность абсолютно необходима для основных функций марионетки. Ресурс марионетки - это всего лишь часть того, что было раскрыто, потому что оно иногда бывает полезно.