1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
<span class="hljs-comment"># EC2 sample</span>
<span class="hljs-keyword">class</span> <span class="hljs-title">ec2utils</span> {
<span class="hljs-comment"># This must include the path to the Amazon EC2 tools</span>
<span class="hljs-variable">$ec2path</span> = [<span class="hljs-string">"/usr/bin"</span>, <span class="hljs-string">"/bin"</span>, <span class="hljs-string">"/usr/sbin"</span>, <span class="hljs-string">"/sbin"</span>,
<span class="hljs-string">"/opt/ec2/ec2-api-tools/bin"</span>,
<span class="hljs-string">"/opt/ec2/aws-elb-tools/bin"</span>]
<span class="hljs-keyword">define</span> <span class="hljs-section">elasticip</span> (<span class="hljs-variable">$instanceid</span>, <span class="hljs-variable">$ip</span>)
{
<span class="hljs-keyword">exec</span> { <span class="hljs-string">"ec2-associate-address-<span class="hljs-variable">$name</span>"</span>:
<span class="hljs-attr">logoutput</span> => on_failure,
<span class="hljs-attr">environment</span> => <span class="hljs-variable">$ec2utils::ec2env</span>,
<span class="hljs-attr">path</span> => <span class="hljs-variable">$ec2utils::ec2path</span>,
<span class="hljs-attr">command</span> => <span class="hljs-string">"ec2assocaddr <span class="hljs-variable">$ip</span> \
-i <span class="hljs-variable">$instanceid</span>"</span>,
<span class="hljs-comment"># Only do this when necessary</span>
<span class="hljs-attr">unless</span> => <span class="hljs-string">"test `ec2daddr <span class="hljs-variable">$ip</span> | awk '{print \$3}'` == <span class="hljs-variable">$instanceid</span>"</span>,
}
}
<span class="hljs-keyword">mount</span> { <span class="hljs-string">"<span class="hljs-variable">$mountpoint</span>"</span>:
<span class="hljs-attr">device</span> => <span class="hljs-variable">$devicetomount</span>,
<span class="hljs-attr">ensure</span> => <span class="hljs-literal">mounted</span>,
<span class="hljs-attr">fstype</span> => <span class="hljs-variable">$fstype</span>,
<span class="hljs-attr">options</span> => <span class="hljs-variable">$mountoptions</span>,
<span class="hljs-attr">require</span> => [ Exec[<span class="hljs-string">"ec2-attach-volume-<span class="hljs-variable">$name</span>"</span>],
File[<span class="hljs-string">"<span class="hljs-variable">$mountpoint</span>"</span>]
],
}
}
|