Tags organize identically configured nodes in groups proxied proxied proxied proxied proxied webserver minRam1024 osFamilyUBUNTU runScriptagentInstall webserver 6 runNodesWithTag... Ope
Trang 1Templates abstractly describe nodes:
What OS to use, what versions
What kind of hardware, what features are needed
Tags organize identically configured nodes in groups
proxied proxied proxied proxied proxied webserver
minRam(1024) osFamily(UBUNTU) runScript(agentInstall)
webserver 6
runNodesWithTag
Trang 2Operate based on predicates
proxied proxied proxied proxied proxied
tag: webserver
runScriptOnNodesMatching
location: eu-west-1
Monday, November 29, 2010
Trang 3jclouds power tools
Whirr
Trang 4nodes on demand
ant compute task
Monday, November 29, 2010
Trang 5ant compute task github jclouds/jclouds
<compute actions="destroy,create" provider="${url}">
<nodes tag=" web-prod " os="UBUNTU" hardware="SMALLEST"
runscript=" bootstrap "
openports="22,8080"
hostproperty="host" usernameproperty="username" />
</compute>
Trang 6deploy your application
cargo
Monday, November 29, 2010
Trang 7cargo ssh integration codehaus/cargo
<cargo containerId="tomcat6x" output="build/output.log" log="build/cargo.log" action="start" timeout="600000"> <zipurlinstaller installurl="${container.zip}" />
<configuration home="build/cargo" type="standalone">
<property name="cargo.java.home" value="/usr/lib/jvm/java-6-openjdk"/>
<property name="cargo.hostname" value="${host}"/>
<property name="cargo.servlet.port" value="${listenport}"/>
<property name="cargo.logging" value="high"/>
<deployable type="war" file="${warfile}"/>
<property name="cargo.ssh.host" value="${host}"/>
<property name="cargo.ssh.username" value="${username}"/>
<property name="cargo.ssh.password" value=""/>
<property name="cargo.ssh.keyfile" value="${privatekeyfile}"/>
<property name="cargo.ssh.remotebase" value="/var/cargo"/>
</configuration>
</cargo>
<compute actions="destroy,create" provider="${url}">
<nodes tag="${tag}" os="UBUNTU" hardware="SMALLEST"
runscript="runscript.sh" openports="22,${listenport}"
privatekeyfile="${privatekeyfile}" publickeyfile="${publickeyfile}"
hostproperty="host" usernameproperty="username" />
</compute>
Trang 8unit test your deployment
arquillian
Monday, November 29, 2010
Trang 9arquillian cloud container jboss/arquillian
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive class ) .addPackage(ServiceManager class getPackage()) .addManifestResource(EmptyAsset INSTANCE , "beans.xml" );
} @Inject
private ServiceManager manager ;
@Test
public void shouldBeAbleToExecuteAndInject() throws Exception {
Assert.assertNotNull( manager );
Assert.assertEquals( "Hello" , manager sayHello());
}
<cloud:container>
<cloud:provider>gogrid</cloud:provider>
<cloud:identity>apikey</cloud:identity>
<cloud:credential>passcode</cloud:credential> </cloud:container>
Trang 10build on alternate platforms
hudson plugin
n
Monday, November 29, 2010
Trang 11hudson jclouds plugin java.net/hudson