If you've never heard of Puppet Razor, it's a useful tool for provisioning bare metal servers. The servers netboot a microkernel that allows the server to be inventoried and remotely controlled by the Razor server so that the servers can be provisioned automatically. You can follow the instructions on how to install it here: https://github.com/puppetlabs/Razor/wiki/Installation
If you're looking to install XenServer via Razor here's a quick guide on doing so. After setting up your Razor server, you'll want to snag the latest Citrix XenServer ISO. They have a free download that provides full functionality.
First we'll add the iso to the image library:
[root@razor ~]# razor image add -t xenserver -p /root/XenServer-6.1-install-cd.iso -n xenserver_tampa -v 6.1.0 Attempting to add, please wait… New image added successfully Added Image: UUID => 1xE9oYTH0Zc9FqgPBItVuO Type => XenServer Hypervisor Install ISO Filename => XenServer-6.1-install-cd.iso Path => /opt/razor/image/xenserver/1xE9oYTH0Zc9FqgPBItVuO Status => Valid Version => 6.1.0
Then we'll create a model that will hold all of the generic settings we'll want to set for each node. It also lets us define the range of IPs that we want to assign to all servers that are being provisioned.
[root@razor ~]# razor model add -t xenserver_tampa -l xenserver_tampa_example -i 1xE9oYTH0Zc9FqgPBItVuO --- Building Model (xenserver_tampa): Please enter IP Subnet (example: 255.255.255.0) default: 255.255.255.0 (QUIT to cancel) > 255.255.255.0 Please enter NTP server for node (example: ntp.razor.example.local) (QUIT to cancel) > pool.ntp.org Please enter Gateway for node (example: 192.168.1.1) (QUIT to cancel) > 192.168.1.1. Value (192.168.1.1.) is invalid Please enter Gateway for node (example: 192.168.1.1) (QUIT to cancel) > 192.168.1.1 Please enter IP Network for hosts (example: 192.168.10) (QUIT to cancel) > 12.168.1 Please enter root password (> 8 characters) (example: P@ssword!) default: test1234 (QUIT to cancel) > test1234 Please enter Starting IP address (1-254) (example: 1) (QUIT to cancel) > 5 Please enter Nameserver for node (example: 192.168.10.10) (QUIT to cancel) > 220.127.116.11 Please enter Ending IP address (2-255) (example: 50) (QUIT to cancel) > 20 Please enter Prefix for naming node (example: xs-node) (QUIT to cancel) > xs-node Model created Label => xenserver_tampa_example Template => xenserver_hypervisor Description => Citrix XenServer 6.1 (tampa) Deployment UUID => 3BYDqVasC4g0GFikNJYCdA Image UUID => 1xE9oYTH0Zc9FqgPBItVuO
Once the model has been created, now would be a good time to boot up your node into the microkernel and have it discover the hardware if you haven't already. If you type:
[root@razor ~]# razor node Discovered Nodes UUID Last Checkin Status Tags 6z2AodeElhhYdd3yR7juE0 33 sec A [nics_3,HP,cpus_4,memsize_32GiB]
you can see the servers that have booted up and reported into Razor. If you want to further look at the attributes of the server, you can run:
razor node get 6z2AodeElhhYdd3yR7juE0 -f attrib
which will show you all of the facter attributes of that node. Now you'll want to add that node to a policy so that we can start provisioning the node. Using the tags above, you can utilize those to apply the policy to nodes of that type.
[root@razor ~]# razor policy add --template xenserver_hypervisor --label tampa --model-uuid 3BYDqVasC4g0GFikNJYCdA --tags nics_3,HP,cpus_4,memsize_32GiB --enabled true Policy created UUID => 5luw9q3cPYhruPgCILRFOe Line Number => 3 Label => tampa Enabled => true Template => xenserver_hypervisor Description => Policy for deploying a XenServer hypervisor. Tags => [nics_3, HP, cpus_4, memsize_32GiB] Model Label => xenserver_tampa_example Broker Target => none Currently Bound => 0 Maximum Bound => 0 Bound Counter => 0
Once you've added the policy and enabled it, any server that's reported in should pick up the new policy and start the provisioning process. Razor will tell the microkernel to reboot and start provisioning on the next netboot. If you need to make additional changes to the installation, you can modify this file for the first phase of the install:
and this file for any changes you want to occur on the second phase of the installation, or firstboot:
Note: This applies to Citrix XenServer 6.1 (Tampa)