Method 1:
%post chvt 3 echo "executing post install" echo hostname for puppet is $HOSTNAME puppetd --fqdn=$HOSTNAME --test --no-splay --server=server0.example.com --onetime --verbose --factsync echo "type enter to continue" read enter_key chvt 1After installing your machine should change to virtual terminal 3 (chvt 3) and echo "executing post install" followed by the output from puppet
info: Retrieving facts info: Caching catalog at /var/lib/puppet/localconfig.yaml notice: Starting catalog run notice: //Node[default]/base/Ssh_authorized_key[signer]/ensure: created 1,11c1,2 # The puppetmaster server #PUPPET_SERVER=puppet # If you wish to specify the port to connect to do so here #PUPPET_PORT=8140 # Where to log to. Specify syslog to send log messages to the system log. #PUPPET_LOG=/var/log/puppet/puppet.log # You may specify other parameters to the puppet client here #PUPPET_EXTRA_OPTS=--waitforcert=500 --- > PUPPET_SERVER=server0.example.com > PUPPET_EXTRA_OPTS=--factsync notice: //Node[default]/base/Remotefile[/etc/sysconfig/puppet]/File[/etc/sysconfig/puppet]/source: replacing from source puppet://server0.example.com/base//etc/sysconfig/puppet with contents {md5}87dd2effcdc742da03df3ab010c03436 notice: //Node[default]/base/Service[puppet]/enable: enable changed 'false' to 'true' notice: Finished catalog run in 0.23 seconds type enter to continue
Method 2:
%post chvt 3 echo "executing post install" cat >/etc/sysconfig/puppet <<EOF PUPPET_SERVER=server0.example.com PUPPET_EXTRA_OPTS=--factsync EOF chkconfig puppet on echo hostname for puppet is $HOSTNAME puppetd --fqdn=$HOSTNAME --test --no-splay --server=server0.example.com --onetime --verbose --factsync echo "type enter to continue" read enter_key chvt 1Using this method, if the puppetmaster is down when this client goes to execute puppetd, it will fail but puppet will still be configured and will work when the machine is rebooted. I prefer to use Method 2 just in case.
At this point your clients are installing from scratch and getting configured by puppet automatically from kickstart. The bulk of the work is done, what you now need to do is go through your machine configurations and translate all the changes into puppet. This may take a while, but in the end it is well worth it. There may be some changes that are difficult to translate into puppet, for those hard to make changes that require some advanced sed/awk work, augeas may be the answer. We'll look at that in the next section.
For making changes on the fly (not waiting for puppet clients to check-in) you will need to configure func (or use cluster ssh or something similar). Now, on to augeas.