WildFly CLI Scripting: Difference between revisions
(Created page with "=Internal= * WildFly Operations") |
|||
(33 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Internal= | =Internal= | ||
* [[WildFly Operations#Subjects|WildFly Operations]] | * [[WildFly CLI Operations#Subjects|CLI Operations]] | ||
=Overview= | |||
This article describes various aspects of using CLI as a command-line execution tool - as opposite to an interactive session tool. | |||
=Connection to a Host Controller= | |||
In order to be able to interact with a host controller, CLI must be ''connected''. For options on how to connect see: | |||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | |||
:[[WildFly CLI Operations#Connect_to_a_Controller|Connect to a Controller]] | |||
</blockquote> | |||
=Executing a Single Command= | |||
Any word or phrase without white spaces in it is assumed to be a command. The <tt>--command</tt> argument optionally precedes it. | |||
After a command is executed, the CLI will terminate the session. | |||
Example: | |||
<pre> | |||
jboss-cli.sh -c [--command=]ls | |||
</pre> | |||
If a command requires space-separated arguments, command and the arguments should be enclosed is single quotes: | |||
<pre> | |||
jboss-cli.sh -c [--command=]'deploy ./test.war --server-groups=web-frontend' | |||
</pre> | |||
=Executing Multiple Commands Specified on Command Line= | |||
In order to execute multiple commands (individual commands are assumed not to contain spaces), specify them in a comma separated list at the end of the argument list. ''Spaces are not allowed''. The <tt>--commands</tt> argument optionally precedes it. | |||
After the last command in the sequence is executed, the CLI will terminate the session. | |||
Example: | |||
<pre> | |||
jboss-cli.sh -c [--commands=]ls,pwd | |||
</pre> | |||
If a command requires space-separated arguments, command and the arguments should be enclosed is single quotes: | |||
<pre> | |||
jboss-cli.sh -c [--commands=]ls,'deploy ./test.war --server-groups=web-frontend' | |||
</pre> | |||
=Executing a Sequence of Commands Listed in a File= | |||
<pre> | |||
jboss-cli.sh -c --file=./commands.cli | |||
</pre> | |||
where <tt>/commands.cli</tt> may contain multiple commands, one per line. Individual commands may contain spaces. Example: | |||
<pre> | |||
pwd | |||
ls | |||
deploy servlet-example.war --force | |||
</pre> | |||
=Sending Commands into <tt>jboss-cli.sh</tt>'s <tt>stdin</tt>= | |||
<pre> | |||
#!/bin/bash | |||
jboss-cli.sh -c <<EOF | |||
# | |||
# comments are permitted; they should be prefixed by '#' | |||
# | |||
batch | |||
#deploy target/playground.war --server-groups=main-server-group | |||
deploy target/playground.war --force | |||
run-batch | |||
EOF | |||
</pre> | |||
==Examples== | |||
<blockquote style="background-color: AliceBlue; border: solid thin LightSteelBlue;"> | |||
:https://github.com/NovaOrdis/playground/tree/master/jboss/cli/bash-script-examples<br> | |||
</blockquote> | |||
=Using Variables= | |||
<font color=red>TODO: | |||
* JBoss EAP 6 : using variables in CLI scripts (jboss-cli.sh) https://access.redhat.com/solutions/321513 | |||
Also see [[#Sending_Commands_into_jboss-cli.sh.27s_stdin|Sending Commands into <tt>jboss-cli.sh</tt>'s <tt>stdin</tt>]] above. | |||
I've seen this example, how does it work, how is Host1_Name defined? | |||
<pre> | |||
/host=$Host1_Name:write-local-domain-controller | |||
reload --host=$Host1_Name | |||
</pre> | |||
</font> | |||
=<tt>batch</tt>/<tt>run-batch</tt>= | |||
<blockquote style="background-color: #f9f9f9; border: solid thin lightgrey;"> | |||
:[[WildFly_CLI_Concepts#Batch|WildFly CLI Concepts - Batch]] | |||
</blockquote> |
Latest revision as of 14:48, 27 March 2017
Internal
Overview
This article describes various aspects of using CLI as a command-line execution tool - as opposite to an interactive session tool.
Connection to a Host Controller
In order to be able to interact with a host controller, CLI must be connected. For options on how to connect see:
Executing a Single Command
Any word or phrase without white spaces in it is assumed to be a command. The --command argument optionally precedes it.
After a command is executed, the CLI will terminate the session.
Example:
jboss-cli.sh -c [--command=]ls
If a command requires space-separated arguments, command and the arguments should be enclosed is single quotes:
jboss-cli.sh -c [--command=]'deploy ./test.war --server-groups=web-frontend'
Executing Multiple Commands Specified on Command Line
In order to execute multiple commands (individual commands are assumed not to contain spaces), specify them in a comma separated list at the end of the argument list. Spaces are not allowed. The --commands argument optionally precedes it.
After the last command in the sequence is executed, the CLI will terminate the session.
Example:
jboss-cli.sh -c [--commands=]ls,pwd
If a command requires space-separated arguments, command and the arguments should be enclosed is single quotes:
jboss-cli.sh -c [--commands=]ls,'deploy ./test.war --server-groups=web-frontend'
Executing a Sequence of Commands Listed in a File
jboss-cli.sh -c --file=./commands.cli
where /commands.cli may contain multiple commands, one per line. Individual commands may contain spaces. Example:
pwd ls deploy servlet-example.war --force
Sending Commands into jboss-cli.sh's stdin
#!/bin/bash jboss-cli.sh -c <<EOF # # comments are permitted; they should be prefixed by '#' # batch #deploy target/playground.war --server-groups=main-server-group deploy target/playground.war --force run-batch EOF
Examples
Using Variables
TODO:
- JBoss EAP 6 : using variables in CLI scripts (jboss-cli.sh) https://access.redhat.com/solutions/321513
Also see Sending Commands into jboss-cli.sh's stdin above.
I've seen this example, how does it work, how is Host1_Name defined?
/host=$Host1_Name:write-local-domain-controller reload --host=$Host1_Name