Module of the Week: puppetlabs/razor – Razor Provisioning Application
| Purpose | Razor Provisioning Software |
| Module | puppetlabs/razor |
| Puppet Version | 2.7+ |
| Platforms | Ubuntu Precise |
Razor is next generation provisioning software that handles bare metal hardware and virtual server provisioning with inventory discovery and tagging, rule-based policy management, and extensible broker plugin integration. The usage of Razor for provisioning is discussed briefly in this blog, and additional information is available on a separate post by Nick Weaver, one of authors of the Razor project. Broker handoffs will be discussed in a follow up article.
Razor is currently released as a beta for preview, so there are no installation packages yet. The Razor module is intended to simplify the process for installing Razor, since it handles all application dependencies, and clones the Razor repo from GitHub.
The module is limited to Ubuntu Precise due to the availability of nodejs packages. In Debian, these packages are available in sid, so install this module only if you are comfortable adding the unstable repo. Razor puppet module support for other platforms will be evaluated as we continue to develop Razor (this is not the same as node provisioning platforms which includes Debian, Ubuntu, RedHat, OpenSuSE, and VMware ESX).
Installing the module
| Complexity | Easy |
| Installation Time | 5 minutes |
On puppet 2.7.14 an PE 2.5, puppet module tool will automatically download and install all dependencies from forge.
$ puppet module install puppetlabs-razor Preparing to install into /etc/puppet/modules ... Downloading from http://forge.puppetlabs.com ... Installing -- do not interrupt ... /etc/puppet/modules └─┬ puppetlabs-razor (v0.1.0) ├─┬ puppetlabs-mongodb (v0.0.1) │ └── puppetlabs-apt (v0.0.3) ├── puppetlabs-nodejs (v0.2.0) ├── puppetlabs-stdlib (v2.3.2) ├── puppetlabs-tftp (v0.1.0) ├── puppetlabs-vcsrepo (v0.0.4) └── saz-sudo (v2.0.0) |
Once all the modules have been installed, the appropriate permission should be applied to the files under the modules folder:
$ chown -R puppet:puppet /etc/puppet/modules |
Configuring the module
| Complexity | Easy |
| Installation Time | 5 minutes |
The puppetlabs/razor module does not deploy DHCP service. The DHCP server needs to specify the initial boot file as pxelinux.0 and next-server option should direct traffic to the tftp server.If you currently don’t have DHCP service in your environment, and have control over your network environment, the puppetlabs/dhcp module will deploy dhcp services.
class { 'dhcp': dnsdomain => [ 'puppetlabs.lan', '1.0.10.in-addr.arpa', ], nameservers => ['10.0.1.20'], ntpservers => ['us.pool.ntp.org'], interfaces => ['eth0'], pxeserver => '10.0.1.50', pxefilename => 'pxelinux.0', } |
If you want to test Razor on your local system in a virtual environment such as VMware Fusion 4, simply add the following lines into /Library/Preferences/VMware Fusion/vmnet8/dhcpd.conf the appropriate DHCP subnet and substitute $tftp_server_address with the Razor VM node ipaddress:
filename "pxelinux.0"; next-server ${tftp_server_ipaddress}; |
At the moment, the tftp service and razor service will be deployed to the same system. On the puppet master assign the razor class to the appropriate node, and trigger a puppet agent run afterwards:
node razor_host { class { 'sudo': config_file_replace => false, } class { 'razor': username => 'razor', directory => '/opt/razor', } } |
Razor can also be deployed directly to the system with the modules installed via:
puppet apply /etc/puppet/modules/razor/tests/init.pp --verbose |
At this point, login to the Razor installation directory and execute Razor to confirm the application is installed successfully:
$ /opt/razor/bin/razor ProjectRazor - v0.1.6.0 Usage: project_razor [slice name] [command argument] [command argument]... Switches: --debug : Enables printing proper Ruby stacktrace --verbose : Enables verbose object printing --no-color-out : Disables console color. Useful for script wrapping. Loaded slices: [bmc] [broker] [image] [log] [model] [node] [policy] [tag] |
Ensure the Razor service is running:
$ /opt/razor/bin/razor_daemon.rb status razor_daemon: running [pid 6421] |
*note: We are providing an update to the module in v0.1.2 which will start the service by default.
Example usage
The example below will show the minimal steps from the end of Razor installation to provisioning an Ubuntu Precise system. We will focus on the process of getting a new system provisioned with Ubuntu.
Razor needs a micro kernel (MK) image upon initial pxeboot to detect hardware information and register systems to the inventory of nodes. The MK image is available on GitHub, and it should be loaded into razor image service first:
$ wget https://github.com/downloads/puppetlabs/Razor/rz_mk_dev-image.0.8.8.0.iso $ razor image add mk ./rz_mk_dev-image.0.8.8.0.iso Attempting to add, please wait... New image added successfully Images: UUID: 1nnkuB5BiH1C93HOO0PTFi Type: MicroKernel Image ISO Filename: rz_mk_dev-image.0.8.8.0.iso Path: /mnt/nfs/Razor/image/mk/1nnkuB5BiH1C93HOO0PTFi Status: Valid Version: 0.8.8.0 Build Time: 2012-05-09 13:11:01 -0700 |
Once the razor MK images is loaded into Razor, new system connected to the network performing network boot will obtain a dhcp address, boot the microkernel and register with Razor. We can get a list of systems discovered via this process via the Razor node:
$ razor node
Discovered Nodes
UUID Last Checkin Tags
5PfILygjPv4WTayOnTOYMk 32 seconds [cpus_1,memsize_4GiB,nics_1,vmware_vm]
26k3If4FI7HpsZIn7N7BXu 45 seconds [cpus_2,memsize_16GiB,nics_2,vmware_vm]
66XZwZUJOpRXosg5SHHdbW 7 seconds [cpus_4,memsize_96GiB,nics_4,physical] |
Attributes regarding specific nodes can be drilled down into further details by specifying its UUID:
$ razor node attrib 5PfILygjPv4WTayOnTOYMk
Node Attributes:
Name Value
architecture i386
domain localdomain
fqdn mk000C294F881F.localdomain
hardwareisa unknown
hardwaremodel i686
hostname mk000C294F881F
... |
To provision a node, an Ubuntu Precise ISO should also be loaded along with a model which associates an instance of model template configuration with a specific ISO image:
$ razor image add os ../ubuntu-12.04-server-amd64.iso ubuntu_precise 12.04 Attempting to add, please wait... New image added successfully Images: UUID: 274HnNlQF5jvbo0y6U0aok Type: OS Install ISO Filename: ubuntu-12.04-server-amd64.iso Path: /mnt/nfs/Razor/image/os/274HnNlQF5jvbo0y6U0aok Status: Valid OS Name: ubuntu_precise OS Version: 12.04 |
Once the MK and operating system images are loaded into razor, we can create a deployment model using that image. First, list the available model templates:
$ razor model get template Model Templates: Template Name Description centos_6 CentOS 6 Model debian_wheezy Debian Wheezy Model opensuse_12 OpenSuSE Suse 12 Model ubuntu_oneiric Ubuntu Oneiric Model ubuntu_precise Ubuntu Precise Model vmware_esxi_5 VMware ESXi 5 Deployment |
Next, select the ubuntu_precise template along with the iso_uuid generated when the ISO was loaded into Razor. This will trigger a series of configuration questions applicable for the Precise model template:
$ razor model add template=ubuntu_precise label=install_precise image_uuid=274HnNlQF5jvbo0y6U0aok --- Building Model (ubuntu_precise): Please enter node hostname prefix (will append node number) (example: node) default: node (QUIT to cancel) > ubuntu Please enter root password (> 8 characters) (example: P@ssword!) default: test1234 (QUIT to cancel) > testEnvPass! Model created Label => install_precise Template => linux_deploy Description => Ubuntu Precise Model UUID => 3LCN86Cpx0Te3Of5WbORkQ Image UUID => 274HnNlQF5jvbo0y6U0aok |
The newly created model contains the hostname (which will be appended with node number), root password, and the ISO for deployment. We can certainly perform more customization within the preseed file, but in most cases this process is deferred to Puppet via broker plugin which will configure the target puppet master to handoff the node for management. At this point we can deploy this operating system, and based on our initial hardware inventory we will target nodes with 4GB of memory that are VMware virtual systems.
$ razor policy add template=linux_deploy label=precise model_uuid=3LCN86Cpx0Te3Of5WbORkQ broker_uuid=none tags=memsize_4GiB,vmware_vm enabled=true Policy created UUID => 41o1z77j2R4ZsgjD9KTpPe Line Number => 2 Label => precise Enabled => true Template => linux_deploy Description => Policy for deploying a Linux-based operating system. Tags => [vmware_vm] Model Label => install_precise Broker Target => none Bound Count => 0 |
At this point we review our policy rules and based on razor node output we expect one system that matches the tag requirements to deploy Precise.
$ razor policy Policies # Enabled Label Tags Label Count UUID 0 true precise [memsize_4GiB,vmware_vm] install_precise 0 41o1z77j2R4ZsgjD9KTpPe |
In the future, other systems that match this policy rule will also deploy Precise. Once the appropriate nodes install Precise, we can either remove this policy completely via ‘policy remove <uuid>’ or temporarily disable it via ‘policy disable <uuid>’.
Conclusion
The Razor puppet module provides a quick and easy way to install Razor for testing. The module could benefit from additional puppet class parameters for razor::nodejs and razor::tftp that separates those components especially when tftp can be installed on a separate system. There are also manual processes in Razor such as loading ISO’s that could benefit from a Puppet type/provider. We certainly welcome recommendations for additional Razor service deployment platform, and contributions from our community for enhancements to this module and its dependencies.
Learn More:
- Introducing Razor, a Next-Generation Provisioning Solution
- Lex Parsimoniae : Cloud Provisioning with a Razor
- puppetlabs/razor
- Join the Razor webinar
- Participate in the Razor Twitter chat at #puppetize – 2012-05-28 18:00 UTC
48 Comments
Some readers trying out the module have noted missing packages. I completely missed this since I was developing with a system with git packages. We’ve released razor module version 0.1.1 addressing this issue. So if you have a problem try again, and feel free to contact me for any other issues.
Seeing node and mongo make their way in to infrastructure is distressing.
Lars
It’s open source and the persist layer is pluggable. It is easy to replace mongo with something else if you prefer.
https://github.com/puppetlabs/Razor/tree/master/lib/project_razor/persist
Hey Lars,
Curious about the Node.js & Mongo comment. Not that I disagree, more that I want to understand.
What would you prefer over Mongo? And what would you prefer over Node.js – that would give comparable event-driven performance?
.nick
What exactly are we supposed to do for the following step:
On the puppet master assign the razor class to the appropriate node, and trigger a puppet agent run afterwards
I already have a DHCP server running and I’m currently just pointing next-server to Razor system. I’ve already loaded the micro boot image in Razor but not sure what this particular step is referring to.
Thanks
–William
William,
There’s two ways to execute puppet. In client server mode, or apply the puppet manifests locally.
If you only have a single server, install puppet, download the modules and run ‘puppet apply’ to deploy the application. When it’s done move on to using Razor. Most Linux distros include puppet packages, but they are not always up to date. The enterprise version is available at: http://puppetlabs.com/download/, or use apt.puppetlabs.com for the latest open source version on Ubuntu.
If you have puppet deployed in your environment. On the puppet master, download the modules, then in /etc/puppet/manifests/site.pp specify which node would deploy the razor application (in the blog the example node name is ‘razor_host’) . When the puppet agent runs on the client system it will deploy razor and report the results back to the puppet master.
In master/agent mode depending on what other components are deployed, you can specify the host configuration via other methods, and trigger the puppet agent using mcollective via CLI or in Puppet Console GUI.
Thanks,
Nan
Nan,
Currently I have a single system which is running puppet + razor (following the guide). I have an existing DHCP server which I’m forwarding the request over to puppet/razor system which from what I can tell has an active TFTP server running which is hosting the MK image. I’m able to boot a blank server which gets the right IP Address and forwards the request using next-server stanza over to puppet/razor system. It performs the iPXE but throws the following error:
DHCP (net0 00:50:56…)….ok
http://razor:8026/razor/api/boot?mac=00%3A50……connection reset (ipxe.org/err/0f0a6039)
Could not boot ttp://razor:8026/razor/api/boot?mac=00%3A50…
Operating System not found
I’m assuming the boot process works just like with any traditional PXE install w/DHCP+TFTP, but I’m not familiar with puppet, so not sure if there was something else I needed to do.
Let me know if there’s a particular step I still need to perform or another system I may need to deploy?
Thanks
Are the node web service running? By default they should be listening on port 8026, 8027.
Check the log file in log/razor_daemon.log and see if there are any errors.
By default razor should boot the microkernel, and the initial boot request should respond with a valid ipxe boot file (using arbitrary example mac address):
$ razor -w boot default '{"mac":"00:0c:29:f7:4c:1d"}' #!ipxe kernel http://192.168.232.141:8027/razor/image/mk/kernel || goto error initrd http://192.168.232.141:8027/razor/image/mk/initrd || goto error boot || goto error :error echo ERROR, will reboot in 5 sleep 5 rebootThe kernel and initrd address should be valid. You should be able to wget both files, if not check the output of razor config, and update conf/razor_server.conf with the valid ipaddress/port.
Just wanted to note that after doing a clean install with Ubuntu Precise server in a Fusion 4 VM I had to manually kick off the web service. It does not get started after applying the razor module to the local node. Once that was done PXE boot completes successfully and new nodes are registered. On to adding my first Ubuntu Precise provisioning template.
Pepijn,
Thanks for the info. I have updated the blog post to include the service status check and modified the puppet deployment module. I have a pull request that will start the service automatically. Once it’s reviewed and merged, I will publish an update that resolves this.
Thanks,
Nan
Nan,
Okay, looks like that was my problem as mentioned by Pepijin, the web service was not running. Once I got it running, then the request which was forwarded from my DHCP server immediately booted up the MK image as I expected.
Thanks
I noticed while creating a model for ESXi 5, it does not allow you specify Datacenter and Cluster names with a “-” (e.g. cluster-01).
Also a general question, is there a way to get a list of all the options for each slice? I’ve found that using –help|help|-h does not really provide enough details and it’s only from both Nick’s and this post that I’ve been able to identify some of the commands.
Thanks
We did some rewiring of slices, and the CLI help is step behind some of the changes. On the github page there’s a wiki where we have documented most of the slices: https://github.com/puppetlabs/Razor/wiki
The wiki should be open for editing, so by all means feel free to contribute, and if you feel like getting your hands dirty, dive under the hood and look at the code in lib/project_razor/slices/.
The cluster name and datacenter name is a regex validation, just file an issue on github and we can change it to support -. We will handoff the ESX node a puppet master, and in puppet you would express where this is deployed, so we might make some changes to the model. I have follow up blog post discussing how broker handoff is done both for puppet agents as well as ESX nodes, so stay posted.
Razor – An Idiot’s Guide to Getting Started! – Storagebod
[...] This is very much cribbed from the Puppet Labs page here [...]
I’ve setup everything per this guide after trying to do it manually myself and get the same issue. Everything works and the test VM’s I have up boot up and are shown in razor node, and the policy matches, but they never kick off installing…What could I be missing?
Discovered Nodes
UUID Last Checkin Status Tags
4Ql3igAWAnpx9xCkW0lmfm 9 sec A [IntelCorporation,vmware_vm,nics_1,cpus_2,memsize_1GiB]
6lc736pDwpTAKCvDhK3RGI 49 sec A [IntelCorporation,vmware_vm,nics_1,cpus_2,memsize_2GiB]
root@Razor:~# razor policy
Policies
# Enabled Label Tags Model Label Count UUID
0 true precise [tags=IntelCorporation,vmware_vm,nics_1,cpus_2,memsize_1GiB] install_precise 0 5IUfNPcU2XJqvi4gfaBoec
Jason, please file an issue on github: https://github.com/puppetlabs/Razor/issues
Include the information above and the output of ‘razor policy active’ and ‘razor policy active log’.
I am trying to get Razor up and running but have hit a roadblock. I have a fresh Ubuntu install of precise with puppet/puppetmaster. I did the razor install through puppet, started the DB and the node hosts (8026/8027). After downloading the mk image and adding it to Razor I configured a test client with the appropriate options on my DHCP server (MS).
The client will PXE boot and it contacts the server running razor and loads the menu. Then it transfers ipxe.lkrn fine and errors out with the following:
“Could not fetch razor.ipxe: Operation not supported (http://ipxe.org/3c092003)
Operating System not found”
I did a packet capture from the razor host and I never see a request for the transfer of the razor.ipxe file after ipxe.lkrn. I’m not sure what to try next. I didn’t see anything in the comments above or on the wiki/issues list.
Both client and server are running on ESXi v5. I tried configuring the client with the VMXNET3 adapter and the E1000, both had the same result.
It’s possible razor config auto detected the wrong IP address of the server. What’s the output of?
razor -w boot default '{"mac":"00:00:00:00:00:00"}'You should get output similar to (your IP will be different):
If you check, can you fetch the kernel and initrd file remotely?
Also I would encourage usage of github issues and wiki: https://github.com/puppetlabs/Razor/issues. Please send relevant output from log/*.log as well if the info above isn’t sufficient to resolve your issue.
Thanks,
Nan
Hi Nan,
We are trying to get razor up and running. When running this command “puppet apply /etc/puppet/modules/razor/tests/init.pp – -verbose”, we got the following error:
err: /Stage[main]/Mongodb/Apt::Source[10gen]/Apt::Key[Add key: 7F0CEB10 from Apt::Source 10gen]/Exec[b94ff96203335a23dcd698a0ca82d59bdc9b5292]/returns: change from notrun to 0 failed: apt-key adv –keyserver ‘keyserver.ubuntu.com’ –recv-keys ’7F0CEB10′ returned 2 instead of one of [0] at /etc/puppet/modules/apt/manifests/key.pp:53
Do you know how to get around this?
Thanks
Xing:
I’m assuming you are running puppet apply with root permission. Can you run the command as root and provide the error message?
Thanks,
Nan
Nan,
Yes, I’m running as root. Here’s the message:
~# apt-key adv –keyserver ‘keyserver.ubuntu.com’ –recv-keys ’7F0CEB10′
Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /tmp/tmp.UuZJvgn6zt –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyring /etc/apt/trusted.gpg.d//pl-enterprise-extras-keyring.gpg –keyring /etc/apt/trusted.gpg.d//pl-keyring.gpg –keyserver keyserver.ubuntu.com –recv-keys 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
It’s hanging while requesting key. It could be that our IT is blocking this. Is there a way to get around this?
Thanks,
Xing
Nan,
We retrieved the key using a different port which is not blocked. Then we installed mongodb manually and was able to finish the install.
Thanks,
Xing
How can we reprovision a machine? I had a number of machines setup under one policy, which didn’t have a puppet broker. Now I want to switch those machines to a different policy. I created the new policy, but when I boot the machines they end booting locally instead of having the new policy applied to them (new OS install + puppet broker).
Thanks.
J
Jack, first identify the node’s active model binding via:
razor policy active razor policy active log {uuid}Then remove that system active model (which was bound by policy rules):
razor policy remove active {uuid}p.s for anyone having an issue related to MarkC comment see:
https://github.com/puppetlabs/puppetlabs-razor/issues/13
Thanks Xing. Is there a way to ‘unbind’ a node from a policy? I don’t want to delete the whole policy, and I don’t want a different policy applied; I’m in trial/error mode, and so would like to re-provision the machine trying different settings?
Thanks.
J
I think you want to disable a policy, otherwise if a node hardware facts matches it will get rebound to the same policy.
razor policy disable {uuid}Again unbind a node’s active model is:
razor policy remove active {uuid}This is different from delete policy which is:
razor policy remove {uuid}Thanks,
Nan
Would that allow me to re-provision the machine? That’s what I’m trying to achieve; go through the re-install/commissioning process again…
Thanks.
J.
Yes, that will allow you to install another OS based on the current policy.
Hi Nan,
I am in a similar situation as Jack. I need to ‘unbind’ an active policy. Currently I have removed all the policies, models and images, in order to try and re-provision a node again from the beginning. However, there still seems to be an ‘active’ policy when I do a ‘razor policy active’. How can I remove this active policy?
Thanks,
Swapnil
Swapnil, since there still seems to be some confusion, I’ll elaborate on the answer above and give the output as well:
1. identify the node you want to unbind.
$ razor policy active Active Models: Label State Node UUID System Bind # UUID install_centos os_complete 74hlvTYRrBtwtEuZXnHXkg puppet 2 7HmohnvcR4lxFOakxoukqg install_centos os_complete XNnfl9IzvB0FUfnjryGbq puppet 3 fktzuQfL8o8oVeoj7ciLK install_centos postinstall 3qBqWhuIXh8gEMHz7aBK7m puppet 1 41ecNNJzSvlI5MhdRhoa1i2. verify this is indeed the node you want to unbind.
3. remove that node active model (which was bound by policy rules):
4. this node will no longer show up under razor policy active
$ razor policy active Active Models: Label State Node UUID System Bind # UUID install_centos broker_fail 74hlvTYRrBtwtEuZXnHXkg puppet 2 7HmohnvcR4lxFOakxoukqg install_centos broker_fail XNnfl9IzvB0FUfnjryGbq puppet 3 fktzuQfL8o8oVeoj7ciLKAt this point, reboot the node, it will reregister and razor will provision the system based on your current active policy.
I’m getting Connection Timed out when PXE booting a server to razor. I’m running razor version 0.1.6 and mk version 0.8.9.0, I have dhcpd running on a seperate server. The error is http://ipxe/4c0a6035 and this is what I see from the console:
Loading ipxe.lkrn…
Loading razor.ipxe…ready.
iPXE initialising devices…Ethernet addr: 00:19:b9:d3:0d:4a
Broadcom NetXtreme II (B2) PCI-X 64-bit 133MHz
NIC Link is Up, 100 Mbps full duplex
WARNING: Using legacy NIC wrapper on 00:19:b9:d3:0d:4a
ok
iPXE 1.0.0+ — Open Source Netowrk Boot Firmware — http://ipxe.org
Feature: VLAN HTTP iSCSI DNS TFTP AoE SRP bzImage COMBOOT ELF MBOOT PXE PXEXT DHCP (net0 00:19:b9:d3:d0:4a)…… ok
http:///razor/api/boot?mac=00%3A19&3Ab9%3Ad3%3Ad0%3A4a………… Connection timed out (http://ipxe.org/4c0a6035)
Could not boot http:///razor/api/boot?mac=00:19:b9:d3:d0:4a: Connection timed out (http://ipxe.org/4c0a6035)
I can reach both port 8026 and 8027 from from machince within the same vlan as the server that is PXE booting and when I go to the url in the error I get:
#!ipxe kernel http:///razor/image/mk/kernel || goto error initrd http:///razor/image/mk/initrd || goto error boot || goto error :error echo ERROR, will reboot in 60 sleep 60 reboot
and if I go to those urls I can download the vmlinuz and gore.gz respectively.
Any ideas on whats causing this?
thanks,
-tj
Just noticed that the url in my error got clipped but you get the idea. its going to the ip of my razor server over port 8026.
That doesn’t seem right, you should have an IP address and port number:
Your output only shows:
Check the output of razor config.
Also please raise issues at the links below:
https://github.com/puppetlabs/Razor/issues
https://github.com/puppetlabs/puppetlabs-razor/issues
I’m going to document the known issues under:
https://github.com/puppetlabs/Razor/wiki
Since the comments can get out of date because of updates to razor and the razor module, I’m going to close the comments for issues.
Nan, I have raised an issue at the link you provided but I wanted to be clear that I have http://(ipaddress:{port}/razor/api/boot? but when I typed it in a used less than and greater than signs and they got stripped out. Sorry for the confusion.
In the DHCP module example at the top of the posts, there’s a missing single-quote at the end of the “‘puppetlabs.lan,” definition. Also, it seems the links to the puppetlabs/dhcp page on Github is not working properly.
Matthias, thanks for corrections, I’ve updated the post.
Hi,
Is there a detailed documentation about the broker handoff and how it works? The above blog says that the broker handoff will be discussed in a follow up article. Can I have the link to that article or any documentation that discusses how the broker handoff works and its purpose etc?
Thanks,
Swapnil
I’m not really satisfied with the current agent handoff implementation, and held off releasing the follow up blog post. I’d much rather discuss this when the feature have been updated, rather than document the current setup.
Thanks,
Nan
How to get started with Razor and Puppet – Part 1 | pureVirtual
[...] http://puppetlabs.com/blog/introducing-razor-a-next-generation-provisioning-solution/ http://puppetlabs.com/blog/puppet-razor-module/ http://nickapedia.com/2012/05/21/lex-parsimoniae-cloud-provisioning-with-a-razor/ [...]
Thanks Nan. I had another doubt here. I actually want to setup and configure several other packages on the new physical host and VM along with the baremetal provisioning. Will this be done by the broker handoff to puppet? If not, how can I install and configure other packages (Eg: puppet) automatically on the new VM after the OS is configured by Razor on it?
Swapnil
Swapnil, the reason I’m not happy with the current implementation is because it installs puppet via gems. I’d much rather this ben done via packages (via yum.puppetlabs.com and apt.puppetlabs.com), but it’s not available universally and require platform specific repos.
The models are intended to be adjustable and you can create additional models with different software packages, or use puppet to install additional software application afterwards. If you are happy with puppet installed via gems, use the current handoff process, otherwise modify the models in lib/project_razor/model and update the appropriate preseed/kickstart erb template to include the appropriate puppet packages and you can use puppet to manage and deploy additional software application.
Again, I’m still looking for a better solution, and I’m looking at replacing puppet gem via puppet node face installation process so it can support puppet using platform specific packages for opensource and Puppet Enterprise.
Nan
部署工具:Razor » 陈沙克日志
[...] http://puppetlabs.com/blog/puppet-razor-module/ [...]
学习Razor » 陈沙克日志
[...] http://puppetlabs.com/blog/puppet-razor-module/ [...]
Nan,
I had a question about the tagging. If we have 10 nodes but only want to identify 2 nodes to be provisioned by Razor, how to identify them? Is this purely done by tagging? Eg: In the above case, will we need to tag the 2 nodes separately under 1 tagname?
Swapnil
just another john cheng blauwgh » Blog Archive » Puppet Razor Notes Round 2
[...] part of running the puppetlabs razor module. I am pretty much following along with what they say on http://puppetlabs.com/blog/puppet-razor-module/ where they say the configuration is “Easy”. I say, let me decide for myself if [...]
One thing I noticed is that razor does not have a template for windows bare-metal. Is that something that is possible? I am looking for razor to do this along with RH, ESX, and CentOS.
Hey. So, you are right: we don’t have a template for windows bare-metal installation (or, in fact, Windows installation at all.)
Nick Weaver is the author of that, and has not gotten his code to the stage it can be release yet. Without that, while we would like to add the feature it isn’t at the top of our list.