Bash-Scripting com JBoss CLI no JBoss AS 7

Postado em Atualizado em

Olá amigos,

Recentemente estava ministrando um treinamento de JBoss EAP 6 e um dos alunos me perguntou se era possível utilizar variáveis no Scripts CLI. Pesquisando e realizando alguns testes consegui somente realizar uma combinação de bash scripting com os comandos do CLI.

Para realizar os testes crie um arquivo chamado example.sh e adicione o seguinte conteúdo:

#!/bin/bash
HOST=localhost
USER=root
PASSWORD="jboss"
PORT=3306
DATABASENAME=jbossdb
JBOSS_HOME=/usr/local/jboss/7.1.3/jboss-eap-6.0
USER_JBOSS=jboss
PASSWORD_JBOSS=123456

$JBOSS_HOME/bin/jboss-cli.sh -c --controller=localhost:9999 --user=$USER_JBOSS --password=$PASSWORD_JBOSS <<EOF
/subsystem=datasources/data-source=mydatasource:add(jndi-name=java:/MySQLDSMyTest,
connection-url=jdbc:mysql://$HOST:$PORT/$DATABASENAME,user-name=$USER,password=$PASSWORD,driver-name=mysql)
EOF

Perceba que estamos tentando criar um Datasource no JBoss utilizando o CLI com as variáveis do script bash.

Execute o comando  chmod +x example.sh para tonar o script executável:

Execute o script example.sh .  e perceba que os valores das variáveis foram substituídos:

[jboss@localhost jboss-eap-6.0]$ ./example.sh
[standalone@localhost:9999 /] /subsystem=datasources/data-source=mydatasource:add(jndi-name=java:/MySQLDSMyTest,
connection-url=jdbc:mysql://localhost:3306/jbossdb,user-name=root,password=jboss,driver-name=mysql)
{"outcome" => "success"}
[standalone@localhost:9999 /]
[jboss@localhost jboss-eap-6.0]$

Abra o arquivo standalone.xml e veja que o Datasource foi adicionado utilizando os valores definido nas variáveis:

<datasource jndi-name="java:/MySQLDSMyTest" pool-name="mydatasource">
  <connection-url>jdbc:mysql://localhost:3306/jbossdb</connection-url>
  <driver>mysql</driver>
  <security>
    <user-name>root</user-name>
    <password>jboss</password>
  </security>
</datasource>

Acredito que em versões futuras talvez isso seja suportado de forma “nativa” pelo JBoss CLI.

Espero que isso seja útil.

Abraços

Mauricio Magnani Jr

2 comentários em “Bash-Scripting com JBoss CLI no JBoss AS 7

    Ataxexe disse:
    18 de abril de 2013 às 7:55

    Bacana! Isso realmente é meio chato. Pelo menos o jboss-cli está bem à frente wlst do weblogic na parte interativa🙂

    Mas não por muito tempo, o suporte à API ficou excelente agora, ou seja, dá pra criar scripts em Jython (semelhante ao wlst), Rhino, Groovy, Ruby e qualquer coisa que rode na JVM.

    https://community.jboss.org/wiki/AdvancedCLIScriptingWithGroovyRhinoJythonEtc

    Aquele abraço!

      Mauricio Magnani Jr respondido:
      18 de abril de 2013 às 9:34

      E ai Ataxexe,

      Sim o JBoss CLI tá até bacana… eu vi esse artigo é realmente muito poder utilizar o Jython por exemplo para aumentar o poder do CLI🙂

      Abraços

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s