Professional Documents
Culture Documents
Lado Servidor
Tutoriais
Vdeos
Sobre
Instalando O OpenJDK
A instalao do OpenJDK (e o teste das verses de seus binrios) realizada pela execuo dos comandos a seguir:
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
1/7
23/9/2014
$ readlink /etc/alternatives/java
/usr/lib/jvm/java-6-sun/jre/bin/java
Note tambm que as verses apresentadas na execuo dos binrios do JDK/JRE tambm mudam:
$ java -version
java version "1.6.0_20"
OpenJDK Runtime Environment (IcedTea6 1.9) (6b20-1.9-0ubuntu1)
OpenJDK Client VM (build 17.0-b16, mixed mode, sharing)
$ javac -version
javac 1.6.0_20
Para vermos que outras alternativas teramos para os binrios do JDK, o comando a seguir poderia ser utilizado:
$ update-java-alternatives -l
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk
java-6-sun 63 /usr/lib/jvm/java-6-sun
Sendo assim, podemos novamente apontar os links para os binrios do OpenJDK (reinstalando-o) atravs dos comando a seguir:
$ bash -c '
mkdir -p ~/bin && cd ~/bin
wget http://a.ladoservidor.com/tutoriais/jbossas6-instala/bin/instalar-jboss
chmod +x instalar-jboss
'
Aps a execuo do comando acima, ser criado o script instalar-jboss. Voc pode visualizar seu contedo atravs do seguinte comando:
$ cat instalar-jboss
#!/bin/bash
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
2/7
23/9/2014
LOG=/tmp/$$.log
INSTALADORES_DIR=~/instaladores
FERRAMENTAS_DIR=~/ferramentas
JBOSS_INSTALADOR=jboss-as-distribution-6.0.0.20100911-M5.zip
JBOSS_DIR=jboss-6.0.0.20100911-M5
JBOSS_LINK=jboss
JBOSS_URL_INSTALADOR="http://downloads.sourceforge.net/project/jboss/JBoss/JBoss-6.0.0.M5/ARQUIVO?use_mirror=ufpr"
ok_ou_falha() { [ $? = 0 ] && echo Ok || { echo "Falhou! Veja $LOG"; exit 1; }; }
mkdir -p $INSTALADORES_DIR && cd $INSTALADORES_DIR
[ -f "$JBOSS_INSTALADOR" -a -f "$JBOSS_INSTALADOR.md5" ] || {
for f in $JBOSS_INSTALADOR $JBOSS_INSTALADOR.md5; do
[ -f "$f" ] && continue
echo -n "Baixando $f... "
wget "`echo $JBOSS_URL_INSTALADOR | sed s,ARQUIVO,$f,g`" -O $f &> $LOG
ok_ou_falha
done
}
echo -n "Verificando o checksum do arquivo $JBOSS_INSTALADOR... "
test `md5sum $JBOSS_INSTALADOR | cut -d ' ' -f 1` = `cat $JBOSS_INSTALADOR.md5`
ok_ou_falha
mkdir -p $FERRAMENTAS_DIR && cd $FERRAMENTAS_DIR
echo -n "Extraindo $JBOSS_INSTALADOR... "
rm -rf $JBOSS_DIR; unzip $INSTALADORES_DIR/$JBOSS_INSTALADOR &> $LOG
ok_ou_falha
echo -n "Criando o link $JBOSS_LINK para $JBOSS_DIR... "
rm -f $JBOSS_LINK; ln -s $JBOSS_DIR $JBOSS_LINK
ok_ou_falha
grep '^export JAVA_HOME' ~/.bashrc &> /dev/null || {
echo -n 'Ajustando JAVA_HOME... '
echo 'export JAVA_HOME=/usr/lib/jvm/java-6-openjdk' >> ~/.bashrc
ok_ou_falha
}
grep '^export JBOSS_HOME' ~/.bashrc &> /dev/null && exit 0
echo -n "Ajustando variveis de ambiente para o funcionando do JBoss... "
cat >> ~/.bashrc <<'EOF'
export JBOSS_HOME=FERRAMENTAS_DIR/JBOSS_LINK
export PATH=$JBOSS_HOME/bin:$PATH
EOF
sed -i "
s,FERRAMENTAS_DIR,$FERRAMENTAS_DIR,g
s,JBOSS_LINK,$JBOSS_LINK,g
" ~/.bashrc
ok_ou_falha
Este script realiza as seguintes tarefas:
Ajusta algumas variveis que representam:
O log de execuo para algumas tarefas ($LOG), que ser gerado no diretrio /tmp com o nome do arquivo sendo o nmero do processo em execuo;
O diretrio que conter o instalador do JBoss: $INSTALADOR_DIR
O diretrio que conter o JBoss aps sua instalao: $FERRAMENTAS_DIR
O instalador do JBoss: $JBOSS_INSTALADOR
A URL base que ser utilizada para o download do zip do JBoss: $JBOSS_URL_INSTALADOR
O diretrio que ser construdo pela extrao do JBoss: $JBOSS_DIR
O link simblico para o diretrio de instalao: $JBOSS_LINK
Cria a funo ok_ou_falha que verificar se houve erro na execuo do comando anterior e, em caso positivo, abortar a execuo do mesmo;
Cria o diretrio $INSTALADOR_DIR e efetua a mudana para ele (mkdir -p ...);
Baixa, caso no existam, o zip de instalao do JBoss e o arquivo que contm seu checksum ($JBOSS_INSTALADOR.md5) redirecionando a sada do comando para
$LOG;
Verifica o resultado do comando anterior e, em caso de insucesso, aborta a continuao do script informando a ocorrncia de um erro;
Testa o md5sum do $JBOSS_INSTALADOR;
Verifica o resultado do comando anterior e, em caso de insucesso, aborta a continuao do script informando a ocorrncia de um erro;
Cria o diretrio $FERRAMENTAS_DIR e efetua a mudana para ele (mkdir -p ...);
Remove o diretrio de instalao do JBoss (caso exista) e extrai o contedo o zip do JBoss (unzip ...);
Verifica o resultado do comando anterior e, em caso de insucesso, aborta a continuao do script informando a ocorrncia de um erro;
Remove (caso exista) e cria o link simblico $JBOSS_LINK apontando para o diretrio no qual foi extrado o JBoss (ln -s ...);
A criao deste link simblico simplificar o valor da varivel $JBOSS_HOME tornando mais fcil a substituio do JBoss por outra verso, caso precisemos realizar
esta tarefa no futuro;
Utiliza o grep para verificar se o contedo do arquivo $HOME/.bashrc j contm a localizao do $JAVA_HOME e, em caso negativo, adiciona esta localizao;
Cria a varivel $JAVA_HOME no caso dela j no estar configurada;
Utiliza o grep para verificar se o contedo do arquivo $HOME/.bashrc j foi atualizado com as configuraes das variveis de ambiente e, em caso positivo, encerra a
execuo do script;
Adiciona contedo ao arquivo ~/.bashrc ajustando o valor para algumas variveis de ambiente utilizadas pelo JBoss na sua execuo. As seguintes variveis de
ambiente so adicionadas:
$JBOSS_HOME, que guarda a localizao do diretrio de instalao do JBoss;
$PATH, que agora agregar a localizao para os binrios do JBoss ($JBOSS_HOME/bin);
Utiliza o sed para alterar o contedo do arquivo ~/.bashrc e substituir as strings FERRAMENTAS_DIR e JBOSS_LINK pelos valores correspondentes das variveis
$FERRAMENTAS_DIR e $JBOSS_LINK;
Verifica o resultado do comando anterior e, em caso de insucesso, aborta a continuao do script informando a ocorrncia de um erro;
A execuo do script instalar-jboss, e o carregamento das variveis de ambientes necessrias para a execuo do JBoss AS, podem ser realizadas atravs da execuo dos
comandos a seguir (observe a sada de execuo do instalar-jboss):
$ ./instalar-jboss
Baixando jboss-as-distribution-6.0.0.20100911-M5.zip... Ok
Baixando jboss-as-distribution-6.0.0.20100911-M5.zip.md5... Ok
Verificando o checksum do arquivo jboss-as-distribution-6.0.0.20100911-M5.zip... Ok
Extraindo jboss-as-distribution-6.0.0.20100911-M5.zip... Ok
Criando o link jboss para jboss-6.0.0.20100911-M5... Ok
Ajustando JAVA_HOME... Ok
Ajustando variveis de ambiente para o funcionando do JBoss... Ok
$ source ~/.bashrc
O script instalar-jboss poder ser executado quantas vezes for necessrio. Ele sempre apagar a instalao anterior do JBoss e refaz-la. S baixar o instalador do JBoss
caso ele no seja encontrado. Verificar se o checksum MD5 do instalador est correto e, s reajustar o contedo de ~/.bashrc caso isto j no tenha sido realizado.
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
3/7
23/9/2014
Voc pode verificar se o ajuste do arquivo ~/.bashrc foi realizado com sucesso atravs da execuo do comando tail, com o parmetro -n 4 para solicitar apenas a
impresso das quatro ltimas linhas deste arquivo:
$ tail
export
export
export
-n 3 ~/.bashrc
JAVA_HOME=/usr/lib/jvm/java-6-openjdk
JBOSS_HOME=/home/lab_jbossas6/ferramentas/jboss
PATH=$JBOSS_HOME/bin:$PATH
Quando o comando source ~/.bashrc executado, o shell corrente refaz a leitura deste arquivo. Com isto, as variveis de ambiente ficam disponveis. Como este arquivo
lido a cada vez que se abre um shell no Linux, estas variveis estaro disponveis toda vez que isto ocorrer.
A partir deste ponto, estamos preparados para executar o JBoss. Isto o que faremos nos prximos passos.
$ run.sh
Quando o comando acima invocado, o JBoss inicia sua execuo. Vrios servios sero levantados por ele e o log de execuo aparece na tela aberta.
Aps o JBoss subir todos os servios da configurao corrente e estar pronto para ser executado, uma mensagem como a apresentada a seguir, dever estar presente na console
de sua execuo:
19:07:46,198 INFO
19:08:53,226 INFO
$ tail -f $JBOSS_CONSOLE
Outra caracterstica importante que, mesmo fechando o shell corrente, o JBoss continuar em execuo. Experimente isto! Feche a console corrente, e abra uma nova. Aps
fazer isto, verifique que o processo de execuo do JBoss ainda est ativo, atravs da chamada ao seguinte comando:
$ shutdown.sh -S
Isto far com que o JBoss entenda que queremos tir-lo de campo ;-).
No Linux, mesmo que o JBoss j esteja em execuo, podemos coloc-lo em background. Para isto, os procedimentos so:
Iniciar o JBoss da forma mais bsica e simples possvel (run.sh). Como vimos, ele ficar atrelado a execuo da console corrente;
Digitar, simultaneamente, as teclas Ctrl e Z (Ctrl+Z). Isto far com que o processo em execuo do JBoss seja parado;
Executar o comando bg. Isto colocar a execuo do JBoss em background. Mas, trar o inconveniente de que qualquer log de sua execuo ainda aparecer na tela da
console aberta.
Execute os procedimentos acima antes de prosseguir!
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
4/7
23/9/2014
Ao perceber que o JBoss foi finalizado com sucesso atravs da observao do log, damos um Ctrl+C na execuo do tail e reinicializamos o JBoss:
tcp
tcp
tcp
tcp
0
0
0
0
0
0
0
0
0.0.0.0:8080
0.0.0.0:8083
0.0.0.0:5500
0.0.0.0:4444
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
LISTEN
LISTEN
LISTEN
LISTEN
13415/java
13415/java
13415/java
13415/java
Vendo a sada apresentada, notamos que conexes as portas 8080, 8083, etc, podem ser realizadas a partir de qualquer uma das interfaces de rede. Isto identificado na sada
pelo nmero do IP apresentado antes do nmero da porta: "0.0.0.0".
Podemos testar o acesso a uma porta servida pelo JBoss, atravs do comando telnet, como exemplificado a seguir: (Substitua o IP apresentado por um IP vlido em tua mquina,
diferente do IP 127.0.0.1.)
$ tree -L 1 -d $JBOSS_HOME/server
/home/lab_jbossas6/ferramentas/jboss/server
all
default
jbossweb-standalone
minimal
osgi
standard
A sada acima apresenta 6 configuraes distintas. Por padro, quando no especificado que configurao ser executada, o jboss levantar a "default".
Cada configurao, possui um conjunto prprio de diretrios e arquivos. Por exemplo, na configurao "default", temos os seguintes diretrios no primeiro nvel:
$ tree -L 1 -d $JBOSS_HOME/server/default
/home/lab_jbossas6/ferramentas/jboss/server/default
conf
data
deploy
deployers
lib
log
tmp
work
O escopo deste tpico no abrange a explicao de cada um destes diretrios. Isto abordado em outra parte do treinamento "JBoss AS - Instalao, configurao e monitorao
bsica (32h) (JBAS-1)". Entretanto, aqui que informamos que, para levantar uma instncia diferente de JBoss, o parmetro "-c <configuracao>" deve ser passado ao script
run.sh. Devemos tambm notar que "run.sh" ou "run.sh -c default" significam a mesma coisa. Para testar o uso deste parmetro, vamos finalizar a instncia corrente:
$ run.sh -c minimal
Podemos observar que esta instncia sobe em bem menos tempo que a "default". D um Ctrl+C em sua console para finaliz-la.
Tambm foge do escopo deste tpico as explicaces para as configuraes de JBoss. Mais informaes sobre isto podem ser obtidas no treinamento "JBoss AS - Instalao,
configurao e monitorao bsica (32h) (JBAS-1)".
$ bash -c '
cp -r $JBOSS_HOME/server/default $JBOSS_HOME/server/instancia2
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
5/7
23/9/2014
$ shutdown.sh -S -s service:jmx:rmi:///jndi/rmi://localhost:1190/jmxrmi
Nos parmetros passados ao shutdown.sh, alm do -S que j conhecamos, desta vez tambm informamos -s
service:jmx:rmi:///jndi/rmi://localhost:1190/jmxrmi. Isto significa que queremos parar o JBoss que est sendo executado localmente, enviando um comando
que ser transmitido a porta 1190 do JBoss em execuo. Por padro, quando no informamos estes parmetros/valores, como se estivssemos escrito shutdown.sh -S -s
-s service:jmx:rmi:///jndi/rmi://localhost:1090/jmxrmi (1090 a porta utilizada na configurao default).
Quando utilizamos o valor ports-01 para a propriedade jboss.service.bind.set cada uma das portas utilizadas pela configurao default (sem o uso desta
propriedade) tem o seu valor incrementado de 100. Se utilizarmos o valor ports-02, ao valor padro somado 200, e assim por diante... Podemos observar isto pelo uso do
netstat:
Obtendo as portas utilizadas pela primeira instncia (ordenando e mostrando apenas as seis primeiras linhas da sada gerada):
netstat -tulpn | grep $(jps -l | grep org\.jboss\.Main | cut -d " " -f 1) | sort | head -n6
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp
0
0 127.0.0.1:1090
0.0.0.0:*
LISTEN
2430/java
tcp
0
0 127.0.0.1:1091
0.0.0.0:*
LISTEN
2430/java
tcp
0
0 127.0.0.1:1098
0.0.0.0:*
LISTEN
2430/java
tcp
0
0 127.0.0.1:1099
0.0.0.0:*
LISTEN
2430/java
tcp
0
0 127.0.0.1:3873
0.0.0.0:*
LISTEN
2430/java
tcp
0
0 127.0.0.1:4446
0.0.0.0:*
LISTEN
2430/java
Obtendo as portas utilizadas pela segunda instncia (ordenando e mostrando apenas as seis primeiras linhas da sada gerada):
2822/java
2822/java
2822/java
2822/java
2822/java
2822/java
O comando acima utiliza o -lm como argumento passado ao jps. O parmetro -m diz ao jps que ele dever tambm imprimir os argumentos passados para o mtodo main da
classe Java que est sendo executada (org.jboss.Main). Sendo assim, podemos ento utilizar o grep para saber que estamos lidando com o conjunto de portas ports-01, ao
invs do default e ento, descobrirmos que portas so utilizados por este conjunto. Observe que, nesta instncia, todas as portas apresentadas tem seu valor incrementado de 100
(em relao a primeira).
Atravs De IPs Diferentes
Executar outra instncia do JBoss atravs de IPs diferentes j foi explicado. No mais novidade que o parmetro "-b <IP_OU_NOME>", passado ao run.sh, possibilita a
execuo de uma outra instncia do JBoss num IP diferente mas, escutando o mesmo conjunto de portas. A questo : e se tivermos apenas uma interface de rede, por exemplo, a
eth0? Bem, neste caso, se no quisermos mesmo utilizar um conjunto diferente de portas, a soluo criar uma interface de rede virtual.
Uma interface de rede virtual pode ser criada no linux com o comando ifconfig. Supondo que estamos na rede 192.168.1.0 e que o IP 192.168.1.2 esteja disponvel, o comando
a seguir criaria a interface virtual eth0:0:
$ netstat -tulpn | grep $(jps -l | grep org\.jboss\.Main | cut -d " " -f 1) | sort
A linha acima merece algumas explicaes! Nela, o netstat est sendo executado para imprimir a informao de todos os processos em execuo do usurio corrente. Mas, ns
s queremos as informaes do processo que executa a JVM do JBoss (jps -l | grep org\.jboss\.Main). A partir do resultado obtido com este comando, queremos
pegar o PID do processo. Em sua sada j temos isto, mas queremos apenas um nmero, que representado pelo primeiro campo da sada do jps. Logo, utilizamos o comando
cut para obt-lo. Este nmero passado ao grep que, por sua vez, recebe como entrada, a sada do netstat filtrando assim, apenas as portas utilizadas pelo JBoss (colhemos
da sada do netstat apenas os processo com o PID do mesmo). Para ter uma sada ordenada, utilizamos o comando sort.
A sada do comando executado obviamente varia entre mquinas diferentes mas, dever ser algo prximo ao apresentado abaixo:
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
6/7
23/9/2014
tcp
tcp
tcp
tcp
tcp
tcp
tcp
0
0
0
0
0
0
0
127.0.0.1:5445
127.0.0.1:5455
127.0.0.1:5500
127.0.0.1:5501
127.0.0.1:8009
127.0.0.1:8080
127.0.0.1:8083
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
0.0.0.0:*
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
LISTEN
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
2430/java
Podemos observar que, como no estamos executando o comando netstat como root, recebemos uma notificao deste comando informando que no veremos informaes de
outros processos que no sejam do usurio corrente (lab_jbossas6). Na quarta coluna, temos um par de valores IP:porta. A sexta coluna, onde para as conexes do tipo tcp est
escrito LISTEM, indica que tais IPs/portas esto aguardando conexes. A stima coluna nos informa o PID do processo que est escutando tal porta. Logo, neste exemplo, o PID
do JBoss de nr. 2340 e est escutando todas as portas listadas acima.
@ Lado Servidor
Pgina atualizada em 14/10/2010 s 10:39
http://a.ladoservidor.com/tutoriais/jbossas6-instala/index.html
7/7