The language-puppet website.

Work with your manifests!

Migrating Machines Between Puppetmasters

I am currently in the process of migrating machines to a new puppetmaster setup. This is something that also might happen to you, especially when you would like to start with fresh, clean, manifests.

In order to facilitate this process, you can use the diffing feature of the puppetresources program. The following lines describe a typical session, where one would like to check that the set of resources described in the old catalogs for host oldhost somehow match that of newhost.

1
2
3
4
5
6
7
8
9
10
11
12
13
$ ghci Main.hs

> queryold <- initializedaemon "/path/to/old/manifests"
> querynew <- initializedaemon "/path/to/new/manifests"
> oldcatalog <- queryold "oldhost.domain"
> querynew "newhost.domain" >>= diff oldcatalog
...
> querynew "newhost.domain" >>= diff oldcatalog
...
> querynew "newhost.domain" >>= diff oldcatalog
...
> querynew "newhost.domain" >>= diff oldcatalog
...

Note that there will almost always be a difference, as the list of classes is, for now, part of the catalog. On the other hand, the relationships between resources will not be checked as it is not (yet) handled by the tool.

Comments