Provisioning a Host

When you need more computing resources, you must allocate them in a process called provisioning. This is the process of creating new hosts.


A new host is provisioned in two stages:

  1. The virtual host is created using Vagrant
  2. The newly created host is configured using Puppet

Cloud Providers

The virtual host may be created using any provider that Vagrant is capable of interfacing with. Digital Ocean is provided as part of Puppet-Diamond. However, Linux KVM, Xen, and Amazon EC2 have been shown to work with Puppet-Diamond too.

Digital Ocean

Scaffold a new configuration

export HOSTNAME=host1 digitalocean-host $HOSTNAME

Create the host

    vagrant up --provider=digital_ocean


Create an A record with this IP in the DNS control on Digital Ocean. Go to domains list and click to view all PTR records. Click add record and then add A record. Finally, paste the IP address and hostname.

Linux KVM

It is also possible to run your own virtual cloud with any moderately equipped Linux machine. Puppet-Diamond supports this, but the documentation is forthcoming.

First-run tasks

There are a few tasks that should be run each time a new host is provisioned.

set password for domo user

vagrant ssh
passwd domo

update packages

vagrant ssh
apt-get update
apt-get upgrade -y

run puppet one last time $HOSTNAME


It may be necessary to debug the puppet master. In that case, try some of the following:

Try re-provisioning with puppet.

vagrant provision

See that the cert is really listed on the puppet master.

puppet cert list --all

Restart the puppet master server.

service puppetmaster restart

View the logs

tail -f /var/log/syslog

Log on to the new node and poke around

vagrant ssh

Next Steps

Now that you have provisioned a host, you can create new modules to configure it for specific purposes. There are two main types of modules supported by Puppet-Diamond: