Who is Stefano?●   JBoss WS[1] committer since early 2007●   Committer of various Jboss projects●   JBoss / Red Hat employ...
AS7 in a nutshell●Blazingly fast (<3s startup)●Lightweight●Modular core●Hot, parallel deployment●Elegant administration●Do...
Dynamic Model Representation (DMR)●   Central detyped management API       ●   All management operations with/on DMR      ...
Dynamic Model Representation (DMR)
What is CLI?●   Command Line Interface●   Easy to use both for standalone and    domain mode●   Scriptable●   Low level ma...
Why CLI instead of Web Console?●   Both have valid use cases●   CLI could be helpful in complex    management but requirin...
CLI Feature includes (1/2):●   connect to the specific controller or server instance by specifying    the host and the por...
CLI Feature includes (2/2):●   batch mode;●   non-interactive mode;●   generic resource type commands and custom commands;...
connect to the specific controller or serverinstance by specifying the host and the port;                  DEMO          (...
send operation requests●   Address (node path)    node_type=node_name (, node_type=node_name)*    /subsystem=datasources  ...
A demo of some other features●   view the available managed components,    their attributes and operations;●   tab-complet...
Deploy and Undeploy standard               packages●   Standalone mode      ●   Deploy/undeploy a package      ●   Deploy ...
CLI deployment archive●   Standard Jar containing archives to    deploy●   A deploy.scr containing commands to    execute ...
Batch mode●   The batch mode allows one to group    commands and operations and execute    them together as an atomic unit...
Non interective●   ./jboss-cli.sh -c –file=test.cli●   ./jboss-cli.sh -c --commands="cd    subsystem=web,ls"●   Why? Cron ...
Generic type CLI commands●   is a command that is assigned to a    specific node type●   Data-source example●   Add a new ...
CLI GUI●   Browse the domain model●   To see the operations available for a    node, right-click the node.●   Context-sens...
Public API                  (Since JBoss AS 7.1.1)final CommandContext ctx;try {   ctx = CommandContextFactory.getInstance...
try-catch-finally control flowTry /subsystem=datasources/data-source=myds:add(connection-url=xxx,jndi-name=java:/myds,driv...
if-else control flow if (outcome != success) of /system-property=test:read-resource     /system-property=test:add(value=tr...
Scripting with Groovy    (and all Java lib enabled scripting language)groovy -cp jboss-cli-client.jar uptime.groovy import...
Community●   Get involved !       ●   Base for JBoss Enterprise Application            Platform 6.x●   Download       ●   ...
Community●   Hacking on AS 7       ●   http://community.jboss.org/wiki/HackingonAS            7●   Command Line Interface ...
Cli jbug
Upcoming SlideShare
Loading in …5
×

Cli jbug

616
-1

Published on

AS7 administration with CLI

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
616
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cli jbug

  1. 1. Who is Stefano?● JBoss WS[1] committer since early 2007● Committer of various Jboss projects● JBoss / Red Hat employee since July 2010● JBoss AS7[2] team memeber● IronJacamar[4] team member● Wise[3] project leader● Follow me: www.javalinux.it, www.twitter.com/maeste https://plus.google.com/102371438013760231375/about https://github.com/maeste http://www.linkedin.com/in/maeste [1] http://www.jboss.org/jbossws [2] http://www.jboss.org/jbossas [3] http://www.jboss.org/wise [4] http://www.jboss.org/ironjcamar
  2. 2. AS7 in a nutshell●Blazingly fast (<3s startup)●Lightweight●Modular core●Hot, parallel deployment●Elegant administration●Domain management●Easy testable
  3. 3. Dynamic Model Representation (DMR)● Central detyped management API ● All management operations with/on DMR ● Backwards compatible● Can be used to control standalone or domain● Detyped (i.e. string based) API uses small set of Java classes● Various transports (Java, remoting, JSON/HTTP)
  4. 4. Dynamic Model Representation (DMR)
  5. 5. What is CLI?● Command Line Interface● Easy to use both for standalone and domain mode● Scriptable● Low level management of DMR resource and/or high level user friendly command● Manage deployement and “special deployment”● Provide also a simple GUI
  6. 6. Why CLI instead of Web Console?● Both have valid use cases● CLI could be helpful in complex management but requiring programming skills (almost)● Web console give an advanced interface for complex operation and give a cooked view of resources
  7. 7. CLI Feature includes (1/2):● connect to the specific controller or server instance by specifying the host and the port;● send operation requests (providing the managed components address, attribute or operation name and parameters) following the AS7 detyped management model;● view the available managed components, their attributes and operations;● tab-completion for commands and operation requests;● history of the executed commands and operation requests;● deploy and undeploy standard packages at runtime in standalone and domain modes;● CLI deployment archives;
  8. 8. CLI Feature includes (2/2):● batch mode;● non-interactive mode;● generic resource type commands and custom commands;● GUI mode;● CLI public API;● system properties in operations and commands;● try-catch-finally control flow;● if-else control flow● Single jar for remote clients● Advanced CLI scripting with Groovy, Rhino, Jython, etc.
  9. 9. connect to the specific controller or serverinstance by specifying the host and the port; DEMO (execute cli an connect)
  10. 10. send operation requests● Address (node path) node_type=node_name (, node_type=node_name)* /subsystem=datasources /subsystem=datasources/data-source=ExampleDS● Operations :operation-name [( [name=value [, name=value]*] )] :shutdown :shutdown() :shutdown(restart=true) /subsystem=datasources/data-source=ExampleDS:write- attribute(name=min-pool-size,value=5)
  11. 11. A demo of some other features● view the available managed components, their attributes and operations;● tab-completion for commands and operation requests;● history of the executed commands and operation requests;
  12. 12. Deploy and Undeploy standard packages● Standalone mode ● Deploy/undeploy a package ● Deploy –disabled ● Undeploy --keep-content● Domain mode ● Specify a server group (or --all-server- groups) ● Undeploy from relevant server groups ● Deply/undeploy on specific server group and disabled deployments
  13. 13. CLI deployment archive● Standard Jar containing archives to deploy● A deploy.scr containing commands to execute in cli when archive is deployed● A undeploy.scr to rollback on undeploy● Multiple deploy/undeploy script can exist and they are addressed by --script option in deploy/undeploy command
  14. 14. Batch mode● The batch mode allows one to group commands and operations and execute them together as an atomic unit● Build them from scratch (entering batch mode w/ “batch” command)...demo● Execute (eventually modify) batch stored in file● Batches with properties (./jboss-cli --properties=script.properties)
  15. 15. Non interective● ./jboss-cli.sh -c –file=test.cli● ./jboss-cli.sh -c --commands="cd subsystem=web,ls"● Why? Cron for example, or in any case you need to run scripts triggered from operating system
  16. 16. Generic type CLI commands● is a command that is assigned to a specific node type● Data-source example● Add a new command (only in current session...but you can create a batch for your own commands...)
  17. 17. CLI GUI● Browse the domain model● To see the operations available for a node, right-click the node.● Context-sensitive help is available throughout the Command Builder● You can also edit the command line manually and submit a command at any time
  18. 18. Public API (Since JBoss AS 7.1.1)final CommandContext ctx;try { ctx = CommandContextFactory.getInstance().newCommandContext();} catch(CliInitializationException e) { throw new IllegalStateException("Failed to initialize CLI context", e);}try { // connect to the server controller ctx.connectController(); // execute commands and operations ctx.handle(":take-snapshot"); ctx.handle("deploy myapp.ear");} catch (CommandLineException e) { // the operation or the command has failed} finally { // terminate the session and // close the connection to the controller ctx.terminateSession(); }
  19. 19. try-catch-finally control flowTry /subsystem=datasources/data-source=myds:add(connection-url=xxx,jndi-name=java:/myds,driver-name=h2)catch /subsystem=datasources/data-source=myds:remove /subsystem=datasources/data-source=myds:add(connection-url=xxx,jndi-name=java:/myds,driver-name=h2)finally /subsystem=datasources/data-source=myds:enableend-try
  20. 20. if-else control flow if (outcome != success) of /system-property=test:read-resource     /system-property=test:add(value=true) end-if[standalone@localhost:9999 /] /system-property=test:read-resource{    "outcome" => "failed",    "failure-description" => "JBAS014807: Management resource[("system-property" => "test")] not found",    "rolled-back" => true} [standalone@localhost:9999 /] /system-property=test:read-resource {     "outcome" => "success",     "result" => {"value" => "true"} }
  21. 21. Scripting with Groovy (and all Java lib enabled scripting language)groovy -cp jboss-cli-client.jar uptime.groovy import org.jboss.as.cli.scriptsupport.*   cli = CLI.newInstance() cli.connect()   if (cli.getCommandContext().isDomainMode()) {   cli.cmd("cd /host=master/core-service=platform-mbean/type=runtime") } else {   cli.cmd("cd /core-service=platform-mbean/type=runtime") }   result = cli.cmd(":read-attribute(name=start-time)") response = result.getResponse() startTime = response.get("result").asLong()   result = cli.cmd(":read-attribute(name=uptime)") response = result.getResponse() serveruptime = response.get("result").asString()   println() println("The server was started on " + new Date(startTime)) println("It has been running for " + serveruptime + "ms")   cli.disconnect()
  22. 22. Community● Get involved ! ● Base for JBoss Enterprise Application Platform 6.x● Download ● http://www.jboss.org/jbossas/downloads● Forum ● http://community.jboss.org/en/jbossas/as7_us ers
  23. 23. Community● Hacking on AS 7 ● http://community.jboss.org/wiki/HackingonAS 7● Command Line Interface ● https://community.jboss.org/wiki/CommandLin● Operations, Administration & Management of JBoss AS7 ● http://vimeo.com/25855285
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×