Opscode’s Chef is open-source systems integration framework built specifically for automating the cloud. Knife is a powerful CLI that is used by administrators to interact with Chef. It is easily extensible to support provisioning of cloud resources. There is currently support for over 15 cloud providers including Amazon EC2, Rackspace, Openstack and Cloudstack.
Ever since the acquisition of Cloud.com by Citrix, Cloudstack (now re-christened as Citrix CloudPlatform) is being actively morphed into a more enterprise-focused product with support for Production-grade networking appliances like the Netscalar suite, F5 Big IP, Cisco Nexus 1000V and networking features like InterVLAN communication and Site-to-Site VPN.
Continuing in the spirit, the Knife Cloudstack plugin has recently received major updates that are targeted towards enterprises using Cloudstack/Cloudplatform in private environments:
- Microsoft Windows Server bootstrapping: Microsoft Windows Server is widely used across Enterprises to host a variety of critical internal and external applications including Microsoft Exchange, Sharepoint, CRM. We have added support to easily bootstrap provision and bootstrap Windows machines via the WinRM protocol with ability to use both Basic and Kerberos modes of Authentication.
- Support for Projects: Cloudstack Projects is one of the widely used feature in Enterprises allowing BUs to isolate their compute, networking and storage resources for better chargeback, billing and management of resources. The plugin now supports the ability to spawn servers, choose networks and allocate IP addresses in specific projects.
- Choose between Source NAT and Static NAT: Enterprises host certain Applications for their customers, partners or employees on public IP addresses. Hence they prefer to use static NAT (IP forwarding, EC2 Style) rather than Source NAT (Port Forwarding) for increased security and control. Enabling static NAT is as simple as setting a flag.
- Ability to choose networks: Typically enterprises prefer isolating different types of traffic on different networks. eg. VoIP traffic on a higher QoS networks, separate storage/backup networks and so on. The plugin now adds the ability spawn virtual machines as well as allocate public IP addresses from specific networks.
- Windows Bootstrapping
knife cs server create --cloudstack-service 'Medium Instance' --cloudstack-template 'w2k8-basic' --winrm-user 'Administrator --winrm-password 'xxxx' --winrm-port 5985 --port-rules "3389:3389:TCP" --bootstrap-protocol winrm --template-file windows-chef-client-msi.erb
knife cs server create --cloudstack-service "Medium Instance" --cloudstack-template "w2k8-with-AD" --kerberos-realm "ORG_WIDE_AD_DOMAIN" --winrm-port 5985 --port-rules "3389:3389:TCP" --bootstrap- protocol winrm --template-file windows-chef-client-msi.erb
Support for Projects and Static NAT
knife cs server create --cloudstack-service 'Medium Instance' --cloudstack-template 'w2k8-basic' --cloudstack-project 'Engg-Dev' --winrm-user 'Administrator --winrm-password 'Fr3sca21!' -- static-nat --port-rules "3389:TCP" --bootstrap-protocol winrm
Choose specific networks:
knife cs server create "rhel-node-1" --node-name "rhel-node-1" -T "RHEL 5.7-x86" --bootstrap-protocol ssh --ssh-user root --ssh-password **** --service "Small Instance" --networks "Admin-Default" --port-rules '22:tcp'