2

私は人形に非常に慣れていないので、出力が私に何を伝えているのかを理解しようとしています. shudders ファイルを構成するための非常に単純な 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) 現在の値が存在しないと表示されるのはなぜですか? /etc/sudoers に sudoers ファイルがあります

4

1 に答える 1

6
  1. パスは、リソースの場所 (リソースはファイル、パッケージ、サービスなど) から生成されます。あなたの場合:

    • Stage[main]このリソースのデフォルトの「ステージ」です。 ステージではリソースをチャンクに分割できるため、ステージ A のすべてがステージ B の前に実行されます (たとえば、パッケージをインストールする前のリポジトリ構成など)。「メイン」ステージがデフォルトです。
    • Sudoリソースを含むクラスの名前です。
    • Package[sudo]リソースの 1 つの完全な名前です。型はPackage、このように参照される場合は常に大文字になります。はsudo、名前またはタイトルです。タイトルがリソースの実際の場所と一致しない場合があります (たとえば、ファイル「foo」が実際には「/foo/bar」にある可能性があります)。
    • ensureリソースのプロパティまたは属性です。Puppet は、リソースの各プロパティを検査し、プロバイダー (OS 固有のコード) を使用して現在の値 ("absent" など) からマニフェスト内の値 ("present") に変更することで機能します。

    define などの言語構造をネストすると、パスがより複雑になる可能性がありますが、すべて同じパターンに従います。

  2. Puppet は、正確に という名前のパッケージを探していますsudo。/etc/sudoers ファイルを持っている可能性がありますが、パッケージの名前は sudo ではありません。

    実行puppet resource packageして、お使いの OS で Puppet が認識できるパッケージを確認してください (言及していません)。追加する--debugと、情報を取得するために Puppet が実行しているコマンドも表示されます。これは、見つかったパッケージ マネージャーを特定するのに役立つ場合があります。

于 2011-11-14T19:50:57.003 に答える