Расшифровка кукольного выхода - PullRequest
2 голосов
/ 14 ноября 2011

Я очень новичок в марионетке и просто пытаюсь понять, что говорит мне результат.У меня есть очень простой файл init.pp для настройки файла дрожания:

class sudo {
    package { sudo:
                    ensure => present,
                    }

    if $operatingsystem == "Ubuntu" {
            package { "sudo-ldap":
                                ensure => present,
                                require => Package["sudo"],
                            }
            }
    file { "/etc/sudoers":
                    owner => "root",
                    group => "wheel",
                    mode => 0440,
                    source => "puppet:///modules/sudo/sudoers",
                    require => Package["sudo"],
                }

Однако всякий раз, когда я запускаю следующую команду:

sudo puppet agent --server=my-imac.local --no-daemonize --verbose --onetime --noop

, я получаю следующий вывод:

info: Caching catalog for susan-hirschs-imac.local
info: Applying configuration version '1321294018'
notice: /Stage[main]/Sudo/Package[sudo]/ensure: current_value absent, should be present (noop)
notice: Class[Sudo]: Would have triggered 'refresh' from 1 events
notice: Stage[main]: Would have triggered 'refresh' from 1 events
notice: Finished catalog run in 0.07 seconds

У меня есть 2 вопроса:

1) как мне интерпретировать этот путь: /Stage[main]/Sudo/Package[sudo]/ensure

2) Почему он говорит, что текущее значение отсутствует?У меня есть файл sudoers в / etc / sudoers

1 Ответ

6 голосов
/ 14 ноября 2011
  1. Пути генерируются из местоположения ресурса (где ресурсом является файл, пакет, служба и т. Д.). В вашем случае:

    • Stage[main] - «этап» по умолчанию для этого ресурса. Этапы позволяют вам разделять ресурсы на куски, поэтому все на этапе A выполняется перед этапом B (например, настройка репозитория перед установкой пакетов и т. Д.). «Основной» этап используется по умолчанию.
    • Sudo - это имя класса, содержащего ваши ресурсы.
    • Package[sudo] - полное имя одного из ваших ресурсов. Тип Package всегда пишется с большой буквы, когда на него ссылаются следующим образом. sudo - это имя или заголовок. Иногда заголовок не соответствует реальному расположению ресурса (например, вы можете иметь файл "foo" на самом деле в /foo/bar").
    • ensure - это свойство или атрибут ресурса. Puppet проверяет каждое свойство ресурса и использует провайдера (специфичный для ОС код), чтобы изменить его с текущего значения (например, «отсутствует») на значение в манифесте («присутствует»).

    Путь может быть более сложным, когда вы вкладываете языковые структуры, такие как определения, но все они следуют одному и тому же шаблону.

  2. Puppet ищет пакет с именем sudo. Возможно, у вас есть файл / etc / sudoers, но пакет не называется sudo.

    Попробуйте запустить puppet resource package, чтобы увидеть, какие пакеты Puppet может видеть в вашей ОС (вы не упоминали об этом). Вы можете добавить --debug, и он также покажет команды, которые Puppet выполняет для получения информации, которая может помочь вам определить, какой менеджер пакетов он нашел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...