# EC2 sample class ec2utils { # This must include the path to the Amazon EC2 tools $ec2path = ["/usr/bin", "/bin", "/usr/sbin", "/sbin", "/opt/ec2/ec2-api-tools/bin", "/opt/ec2/aws-elb-tools/bin"] define elasticip ($instanceid, $ip) { exec { "ec2-associate-address-$name": logoutput => on_failure, environment => $ec2utils::ec2env, path => $ec2utils::ec2path, command => "ec2assocaddr $ip \ -i $instanceid", # Only do this when necessary unless => "test `ec2daddr $ip | awk '{print \$3}'` == $instanceid", } } mount { "$mountpoint": device => $devicetomount, ensure => mounted, fstype => $fstype, options => $mountoptions, require => [ Exec["ec2-attach-volume-$name"], File["$mountpoint"] ], } }