MonkeyMan – a Perl5 framework for Apache CloudStack automation
1.
2. What do we like in Apache CloudStack?
Manageability
• unified management portal;
• browser-compatible VNC-interface;
• powerful API.
Omnivorousness
• hypervisors: KVM, LXC, XEN, VMWare, Hyper-V;
• storages: any filesystems, including clustered filesystems that could be accessed by a shared-
mountpoint GlusterFS, Ceph, NFS, SMB, GFS2, OCFS2.
Security
• encrypted networking (IPSec, HTTPS);
• firewalls and load-balancers (internal VR, NetScaler, F5, FortiGate, pfSense and other beasts);
• open source ideology.
https://cloudstack.apache.org/
3. What else do we like in Apache CloudStack?
Reliablity
• clusterisation, live migration;
• high-availability, affinity groups;
• volume and VM snapshots.
Rapid deployment
• ISO-images and templates;
• OS preferences for the host;
• host and storage tags, which can be used in the service and storage offerings.
Flexible access policies
• domains, accounts, users;
• resouce limits;
• LDAP support.
https://cloudstack.apache.org/
4. MonkeyMan: the cloud manager
MonkeyMan - the automation framework
Implemented in Perl5 with Moose
All ACS objects are Perl objects
Flexible API vocabularies
XML and XPath
Pluggable and replaceable modules
http://monkeyman.tucha.ua/
5. MonkeyMan: Perl5 & Moose
# Use Moose and be happy :)
use Moose::Role;
has 'monkeyman' => (
is => 'ro',
isa => 'MonkeyMan',
reader => 'get_monkeyman',
writer => '_set_monkeyman',
predicate => '_has_monkeyman',
required => 1
);
Why use Moose?
Attributes
Accessors
Validation
Roles
Subclasses
Syntax extentions
Art by www.animalcrewshop.com
http://monkeyman.tucha.ua/