2016-06-01 8 views
0

Ich möchte den Puppet-Work-Lifecycle meiner Organisation verbessern, indem ich die Unterschiede für die tatsächlichen Knotenkataloge vergleiche. Wir stießen auf this project, die Kataloge für Knoten kompiliert und ein Diff für sie erstellt, aber es scheint, einen Online-Master zu erfordern.Kompilieren Sie den Katalog eines Knotens zu JSON ohne einen Master?

Ich muss in der Lage zu tun, was dieses Tool tut, wenn auch ohne einen Master - Ich möchte nur einen deterministischen JSON oder YAML Blob, der alle Ressourcen, die von Puppet für einen bestimmten Knoten verwaltet werden würde, zu kompilieren und eine Reihe von Fakten gegeben.

Gibt es eine Möglichkeit für mich, dies ohne einen Online-Master zu tun?

Antwort

2

Ich habe zwei Blogposts geschrieben, die zwei Möglichkeiten zeigen, wie Sie die JSON-Kataloge kompilieren können, ohne einen Puppet-Master zu benötigen.

Wenn Sie Rspec-Puppet dann eingerichtet haben, dann ist die erste Lösung sehr einfach. Fügen Sie einfach die folgende File.write Anweisung innerhalb eines Ihrer blockiert:

require 'spec_helper' 

describe 'myclass' do 
    it { 
    File.write(
     'myclass.json', 
     PSON.pretty_generate(catalogue) 
    ) 
    #is_expected.to compile.with_all_deps 
    } 
end 

Blog here posten.

Die zweite Methode ist komplizierter, und Sie sollten meinen zweiten Blogpost Compiling a puppet catalog – on a laptop konsultieren.

Schließlich schrieb ich auch einen Beitrag auf Using the catalog-diff tool to diff two catalogs while refactoring, der auch von Interesse sein kann.

+0

Ist dies in der Dokumentation zu 'rspec-puppet'? Dies ist der erste, den ich von diesem Trick sehe. Auch 'catalog-diff ': RIPienaar ist der Mann. Dieses Tool hat interessante Auswirkungen, wenn es mit dem "Puppet-Catalog-Test" und dem oben genannten kombiniert wird. Ich denke, ich muss vielleicht etwas in dieser Richtung erkunden. –

+0

Ich glaube nicht, dass es dokumentiert ist, außer im Code und in meinem Beitrag. Ich habe es herausgefunden, indem ich 'pry' benutzt habe. –