quarta-feira, 30 de junho de 2010

Instalando o Fuse Message Broker v5.3 no Ubuntu 10.04 LTS

Para instalar o fuse message broker v5.3 no Ubuntu 10.04 LTS inicialmente devemos efetuar o download do arquivo de instalação. Para isso executamos os seguintes comandos:

cd ~
mkdir installs
cd installs
mkdir fuse-message-broker
cd fuse-message-broker
wget http://repo.fusesource.com/maven2/com/iona/fuse/fuse-message-broker/5.3.1-02-00/fuse-message-broker-5.3.1-02-00-unix.bin


Após o término do download, vamos executar o instalador em modo console:

chmod +x fuse-message-broker-5.3-unix.bin
sudo sh fuse-message-broker-5.3-unix.bin -i console


Devemos executar o instalador com o comando sudo pois instalaremos o aplicativo na pasta /opt e é necessário ter permissão de escrita para instalar nesta pasta. O termo de licença será apresentado e devemos pressionar até que este seja finalizado. Quando este terminar, devemos aceitar os termos e então será oferecido o seguinte caminho de instalação /opt/progress/fuse-message-broker-5.3.1-02-00 (ou algo semelhante dependendo da sua versão). Eu gosto de mudar esta estrutura para facilitar meus scripts para /opt/fuse-message-broker-5.3.1.

O script começará a instalação e uma barra de progresso será exibida. Ao finalizar o instalador oferece a opção de salvar a configuração da instalação caso seja necessário executar uma instalação idêntica em outros servidores ou caso queira efetuar a mesma instalação novamente posteriormente. Digite Y caso queira salvar ou N caso não seja necessário.

Uma mensagem de sucesso será exibida contendo a pasta em que o software foi instalado. Pressione para retornar ao prompt. É válido ressaltar que a qualquer momento durante a instalação podemos inserir o comando de desistência:

quit

vamos colocar o usuário fuse-message-broker como owner da nossa pasta:

sudo chown fuse-message-broker /opt/fuse-message-broker-5.3.1 -R

Para configurar o software gerenciador de filas, devemos executar o seguinte comando:

cd /opt/fuse-message-broker-5.3.1/conf
sudo pico activemq.xml


Este arquivo contém algumas configurações para o servidor de filas. Todas as linhas são comentadas e aconselho a ler cada um dos comentários com paciência e pesquisar á respeito quando tiver alguma dúvida. O primeiro item que mudo na minha configuração é a seguinte:

<broker ... brokerName="localhost">

para:

<broker ... brokerName="myname-broker">

Vamos adicionar um usuário para executar inicializar o Fuse Message Broker com permissões limitadas e criar um diretório de logs para jogar a saída da inicialização do nosso broker:

sudo adduser --system fuse-message-broker
sudo -u fuse-message-broker mkdir /home/fuse-message-broker/logs


E vamos criar um script para inicialização da nossa instância como um serviço do ubuntu:

cd /etc/init.d/
sudo pico fuse-message-broker


E inserir o seguinte conteúdo dentro do arquivo:

#! /bin/sh

FUSEMESSAGEBROKER_HOME=/opt/fuse-message-broker-5.3.1

start(){
echo "Starting Fuse Message Broker 5.3.1
sudo -u fuse-message-broker sh ${FUSEMESSAGEBROKER_HOME}/bin/activemq > /home/fuse-message-broker/logs/out.log
}
stop(){
echo "Stopping Fuse Message Broker 5.3.1"
sudo -u fuse-message-broker sh ${FUSEMESSAGEBROKER_HOME}/bin/activemq-admin stop >> /home/fuse-message-broker/logs/out.log
sleep 60
}
restart(){
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: fuse-message-broker {start|stop|restart}"
exit 1
esac
exit 0


Para inicializar o nosso broker utilizamos o seguinte comando:

sudo service fuse-message-broker start

Para parar o mesmo utilizamos:

sudo service fuse-message-broker stop

Para acompanhar a saída da nossa instância (que não está sendo redirecionada para a saída padrão) devemos executar o seguinte comando:

tail -f /home/fuse-message-broker/logs/out.log

Futuramente configuraremos nosso fuse message broker para habilitar outros protocolos e otimizar seu desempenho, mas por enquanto tempo o broker rodando com as configurações padrões.

Referências:
http://fusesource.com/docs/broker/5.3/getting_started/index.html

Instalando JBoss 5.1 GA no Ubuntu Server 10.04

Neste artigo presumo que você já tenha instalado a JDK 6 e tenha o servidor ubuntu executando corretamente. Primeiramente é necessário baixar o instalador do JBoss 5.1 GA do site da jboss.org. Para efetuar o download, primeiramente criaremos uma pasta para armazenar o arquivo.

cd ~
mkdir installs
cd installs
mkdir jboss
cd jboss
wget http://sourceforge.net/projects/jboss/files/JBoss/JBoss-5.1.0.GA/jboss-5.1.0.GA.zip.MD5/download


Quando baixamos o arquivo de instalação do JBoss, este vêm em formato .zip e será necessário descompactá-lo, para efetuarmos este procedimento precisamos da ferramenta unzip. Para instalar o unzip utilize o seguinte comando (ps. quando instalo o unzip já aproveito e instalo a ferramenta zip, para compactar arquivos):

sudo apt-get install unzip zip

Instalaremos o servidor de aplicação dentro da pasta /opt executando os seguintes comandos:

unzip jboss-5.1.0.GA.zip
sudo mv jboss-5.1.0.GA


Agora vamos criar um usuário para executar o servidor de aplicação:

sudo adduser --system jboss
sudo -u jboss mkdir /home/jboss/logs


E alterar o owner da nossa pasta jboss-5.1.0.GA para o usuário jboss (para que este tenha permissão de manipular os arquivos e executar os scripts existentes na pasta. A opção -R adiciona a permissão de forma recursiva para as subpastas e arquivos):

sudo chown jboss /opt/jboss-5.1.0.GA -R

E para facilitar nossa vida, vamos criar um script que permite inicializar o jboss como serviço no linux:

cd /etc/init.d/
sudo pico jboss


E insira o seguinte conteúdo no script em criação:

#! /bin/sh

JBOSS_HOME=/opt/jboss-5.1.0.GA

start(){
echo "Starting jboss.."
sudo -u jboss ${JBOSS_HOME}/bin/run.sh -b 0.0.0.0 > /home/jboss/logs/out.log &
}

stop(){
echo "Stopping jboss.."
sudo -u jboss ${JBOSS_HOME}/bin/shutdown.sh -S >> /home/jboss/logs/out.log &

#give time to shutdown jboss services.
sleep 60

#kill all java services started by user jboss
su -l jboss -c 'killall java'
}

restart(){
stop
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo "Usage: jboss {start|stop|restart}"
exit 1
esac

exit 0


Confirme que o script possui permissão de execução:
ls -l

e caso não tenha execute o seguinte comando:

sudo chmod +x jboss

E então use o seguinte comando para inicializar o jboss:

sudo service jboss start

Para parar o serviço do jboss basta executar:

sudo service jboss stop

E caso decida inicializar o serviço do jboss ao inicializar o sistema opercional, basta executar o seguinte comando:

sudo update-rc.d /etc/init.d/jboss defaults

Caso queira acompanhar a inicialização, basta seguir os seguintes passos:

sudo service jboss start

Mudar de terminal

tail -f /home/jobss/out.log

Referência:

http://dhydrated.wordpress.com/2009/09/25/setup-jboss5-in-ubuntu/

terça-feira, 8 de junho de 2010

Hierarquia de Sistema de Arquivos para instalação e distribuição de Aplicativos Linux

Ontem estava discutindo com um amigo sobre qual seria a melhor estrutura de instalação para um software no sistema operacional linux, e então resolvi fazer uma pesquisa simples á respeito do assunto. Simplificando a explicação, vamos utilizar como exemplo um servidor de aplicações (i.e. Weblogic). Em um cenário ideal, colocaríamos o software em /usr, os arquivos de configuração em /etc, as aplicações do servidor em /srv e por fim os logs em /var/log.

Esta seria a estrutura ideal porém muitos aplicativos não permitem tal divisão. Como exemplo disso temos o JBoss Application Server, que até a versão 5.1 não permitia que os arquivos de configuração fossem colocados em /etc. Neste caso, muitas vezes o problema pode ser resolvido colocando o seu software em /usr/local ou /opt. Este procedimento não é a melhor opção, mas ainda assim é uma prática válida.

Existe um site destinado a explicar a hierarquia de sistema de arquivos para linux (http://proton.pathname.com/fhs/) e este descreve as melhores práticas para instalação de softwares em estrutura linux para desenvolvedores e administradores de servidores.

Referências:
http://chiralsoftware.com/linux-system-administration/jboss-server-deployment.seam