WIP Wiki
From Advance Install docs:
- CloudStack programs the PXE server with the host MAC address, host IP address, and boot image file based on the bare metal template the user has chosen.
- CloudStack programs the DHCP server with the MAC address and IP.
- CloudStack enables PXE boot on the host and powers it on using IPMI interface.
- The host broadcasts a DHCP request and receives a reply from the DHCP server. This reply consists of an IP address for the host, PXE boot server address, and a pointer to the boot image file.
- The host then contacts the PXE boot server and downloads the image file using TFTP protocol. The image file is a live kernel and initrd with PING software installed.
- The host starts the boot process using the downloaded file from the TFTP server.
- After these steps complete successfully, the host is ready for the workload.
Setup PXE Server. Add steps for CentOS/Ubuntu
Syslinux: http://www.kernel.org/pub/linux/utils/boot/syslinux/
Setup dhcpd. Add steps for CentOS/Ubuntu
Setup samba.
Create samba share directory as root or sudo user, make it writable by everyone:
mkdir -p /sambashare
chmod 777 /sambashare
Edit /etc/smb.conf or /etc/samba/smb.conf:
(optional: make workgroup = WORKGROUP //expected default in window7, but not needed)
#Change security to share (deprecated though)
security = share
#Add this at the end of the file, the root share folder/name is Share
[Share]
path = /sambashare
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
share modes = yes
Install an OS on one server that is identical (resources, disk etc.) to the servers which will be eventually used as baremetal hosts which are servers on which an OS is provisioned using IPMI/PXE.
Next we need to save the disk image as a template. The idea is to use this template/disk-image to PXE boot via CloudStack (CS). CS controls the baremetal host using IPMI and provisions a template using DHCP and PXE/TFTP.
Get latest PING: http://ping.windowsdream.com/ | Docs: http://ping.windowsdream.com/ping/doc-3.00/intro.html
PING is a small Linux system that backups/creates the image of the template OS on to a network/local disk.
The baremetal hosts are required to have IPMI over LAN enabled. Log in to the IPMI console (web or otherwise, for example for iDRAC6/7 goto iDRAC Setting->Networking/Security->IPMI Settings->Enable IPMI over LAN)
Install ipmitool. For Mac OSX, build it from http://sourceforge.net/projects/ipmitool/ version 1.8.11 (.12 may fail)
check if ipmitool works: ipmitool -H 10.147.42.18 -U root -P myipmipassword chassis power status -vvv
Setup Management Server, MySQL as usual. FIXME!
Adding support to your PXE provisioning software in CloudStack Baremetal
- New image based provisioning for Baremetal aka Improve or replace PING
- NFS support for templates
- Baremetal agent inside host, or plugin arch for supporting various provisioning/configuration tools such as Chef, Puppet
- Packaging, Dev/test env, installation
Issues: https://issues.apache.org/jira/browse/CLOUDSTACK-40
Top level goals:
- Backup/Restore image for baremetal (Generic, YAST, Kickstart, Raw-gziped)
- Supports NFS and CIFS
- Notification
- Organized API/Docs
- Ease of use and reliability
- ASF compatible licensing and opensource
- Maintainability: Development should be on going or it should be stable enough
Comparison of various baremetal solutions as of Sep 2012: (add/suggest more)
Name |
Comment/Vendor |
License |
WWW |
PXE/IPMI |
NFS/CIFS |
ISO Provisioning |
Image Provisioning Backup/Restore |
Notification | Post-script |
API/Docs |
Ease of Setup/Use |
Development |
Consideration |
---|---|---|---|---|---|---|---|---|---|---|---|---|
PING |
Used by CloudStack 2.2.14 |
|
|
YES |
Only CIFS/Samba |
YES |
YES |
No | No? |
Okay |
Easy if everything Works |
Inactive |
NO |
LinMing |
LinMing |
Proprietary |
- http://www.linmin.com- |
YES |
N/A |
|
N/A |
N/A |
N/A |
N/A |
N/A |
NO |
Cobbler |
Fedora/RedHat, now on Github |
GPL |
https://github.com/cobbler/cobbler/wiki\\ http://cobbler.github.com/\\ | YES |
|
|
|
|
|
|
Active |
|
CrowBar2 |
OpenStack/Dell |
Apache2 |
https://github.com/dellcloudedge/crowbar\\ https://github.com/dellcloudedge/crowbar-sledgehammer\\ |
|
|
|
|
|
|
|
Very Active |
Likely |
Razor |
Puppet |
|
|
|
|
|
|
|
|
|
Active |
Likely |
Foreman |
Works with Puppet |
GPL3 |
http://theforeman.org/\\ http://theforeman.org/projects/foreman/wiki/Features\\ |
|
|
|
|
Notification API! Have to check :D |
|
|
|
|
MAAS/JUJU |
Ubuntu/Canonical |
GPL3 |
https://wiki.ubuntu.com/ServerTeam/MAAS\\ https://help.ubuntu.com/community/UbuntuCloudInfrastructure\\ http://marcoceppi.com/2012/05/juju-maas-virtualbox/\\ | YES |
|
YES |
TODO |
|
|
|
Active |
Unlikely |
Kickstart/Jumpstart |
|
|
|
|
|
|
|
|
|
|
|
|
SpaceWalk |
|
|
|
|
|
|
|
|
|
|
|
|
iPXE/gPXE (ISO) |
The Etherboot Project Community |
|
http://ipxe.org/\\ http://etherboot.org/wiki/start | YES |
|
|
|
|
|
|
|
|
Clonezilla |
|
|
http://clonezilla.org/downloads/stable/iso-zip-files.php |
|
|
|
|
|
|
|
|
|
TODO TODOS:
- Evaluate all of them and ipmitool vs. gnuipmi vs. own java implementation of ipmitool
- Nail down one of two mature projects
- Discuss with Frank and everyone (w/o keynote) on the ASF ML, get suggestions, feedback
- Start working on integration with CS-BM