Olá a todos!!!
Trago a vocês neste post um script que desenvolvi para fazer a redundância de links dedicados. Como sempre, esse script reflete o meu ambiente e talvez cada um deva adaptá-lo às suas próprias necessidades.
O script abaixo testa o gateway primário definido em "GW_PRIMARIO" executando um ping para o endereço definido em "IP_TESTE_PRIMARIO1", e caso o IP não responda, ele confirma o teste executando um ping em "IP_TESTE_PRIMARIO2". Se o segundo IP também não responder, ele executa a função "GATEWAY", que coleta todas as rotas da tabela e cria um script de adição de rotas tendo como gateway de todas, o gateway secundário.
A mesma função também cria um script de remoção de rotas contendo o gateway primário para que não haja problemas no roteamento. O mesmo algoritmo foi utilizado para testar o gateway secundário
#!/bin/bash
# Script de redundancia de links dedicados
# Desenvolvido por Rodrigo Manzzato Alves Garcia em 08/10/2012
PATH=/sbin:/usr/sbin:/bin:/usr/bin
# Informe abaixo o gateway primario
GW_PRIMARIO=""
# Informe abaixo os IPs de teste do gateway primario
IP_TESTE_PRIMARIO1=""
IP_TESTE_PRIMARIO2=""
# Informe abaixo o gateway secundario
GW_SECUNDARIO=""
# Informe abaixo os IPs de teste do gateway secundario
IP_TESTE_SECUNDARIO1=""
IP_TESTE_SECUNDARIO2=""
# Armazenar gateway padrao na variavel GW_ATUAL
GW_ATUAL=`netstat -nr | awk '$1 ~ /^[0.0.0.0]/ {print $2}'`
# ATENCAO!!! A secao abaixo so deve ser alterada com absoluta certeza de que sabe o que esta fazendo!!!
# Funcao para troca do gateway
function GATEWAY()
{
netstat -nr | awk -v gw2="$GW2" -v gw="$GW" 'NR > 1 {if ($2 == gw2) print "route add -net " $1 FS "netmask " $3 " gw " gw > "/etc/network/gateway";}'
netstat -nr | awk -v gw2="$GW2" 'NR > 2 {if ($2 == gw2) print "route del -net " $1 FS "netmask " $3 " gw " gw2 > "/etc/network/gateway_del";}'
while read ROTA2
do
echo -e "`$ROTA2`"
done < /etc/network/gateway_del
while read ROTA
do
echo -e "`$ROTA`"
done < /etc/network/gateway
}
# Backup das rotas existentes
echo "#!/bin/bash" > /etc/network/rotas.sh
netstat -nr | awk 'length($2) > 7' | awk 'NR > 2 {print "route add -net " $1 FS "netmask " $3 " gw " $2}' >> /etc/network/rotas.sh
# Teste das redes
if [ $GW_ATUAL = "$GW_PRIMARIO" ]
then
ping -c4 $IP_TESTE_PRIMARIO1 >> /dev/null
if [ $? = "0" ]
then
echo `date` "Rede Primaria OK" >> /etc/network/gateway.log
else
ping -c4 $IP_TESTE_PRIMARIO2 >> /dev/null
if [ $? = "0" ]
then
echo `date` "Rede Primaria OK" >> /etc/network/gateway.log
else # Troca de Gateway
GW=$GW_SECUNDARIO
GW2=$GW_PRIMARIO
GATEWAY
echo `date` "Rede Secundaria Ativada" >> /etc/network/gateway.log
exit
fi
fi
elif [ $GW_ATUAL = "$GW_SECUNDARIO" ]
then
ping -c4 $IP_TESTE_SECUNDARIO1 >> /dev/null
if [ $? = "0" ]
then
echo `date` "Rede Secundaria OK" >> /etc/network/gateway.log
else
ping -c4 $IP_TESTE_SECUNDARIO2 >> /dev/null
if [ $? = "0" ]
then
echo `date` "Rede Secundaria OK" >> /etc/network/gateway.log
else # Troca de Gateway
GW=$GW_PRIMARIO
GW2=$GW_SECUNDARIO
GATEWAY
echo `date` "Rede Primaria Ativada" >> /etc/network/gateway.log
exit
fi
fi
fi
Espero que seja útil de alguma forma.
Até a próxima!!!
sexta-feira, 30 de novembro de 2012
sexta-feira, 23 de novembro de 2012
Monitoramento Básico de Discos
Olá a todos!!!
Abaixo um pequeno script que eu fiz para que as informações sobre uso de discos rígidos sejam enviadas por e-mail de tempos em tempos. Esse script foi implementado por mim em um HP-UX 11.31 que roda um importante banco de dados. Vamos a ele:
#!/sbin/sh # Esse é o shell do root no HP-UX
# As três linhas abaixo configuram o cabeçalho do e-mail a ser enviado
echo "Subject: Uso dos Discos do Servidor" > message.txt
echo "From: root@servidor" >> message.txt
echo "To: admin@empresa.com.br" >> message.txt
echo "===================================" >> message.txt
echo "Uso dos Discos em `date`" >> message.txt
echo "===================================" >> message.txt
echo "\n" >> message.txt
df -Pk | awk 'NR > 1{ printf "%-20s%-7s%-20s%-20s%-4s\n", "Volume="$1, "\t\tMontagem="$6, "\t\tOcupado(KB)="$3, "\t\tLivre(KB)="$4, "\t\tUso="$5}' >> message.txt
sendmail -t < message.txt
Bom, é isso... Até a próxima!!!
Abaixo um pequeno script que eu fiz para que as informações sobre uso de discos rígidos sejam enviadas por e-mail de tempos em tempos. Esse script foi implementado por mim em um HP-UX 11.31 que roda um importante banco de dados. Vamos a ele:
#!/sbin/sh # Esse é o shell do root no HP-UX
# As três linhas abaixo configuram o cabeçalho do e-mail a ser enviado
echo "Subject: Uso dos Discos do Servidor" > message.txt
echo "From: root@servidor" >> message.txt
echo "To: admin@empresa.com.br" >> message.txt
echo "===================================" >> message.txt
echo "Uso dos Discos em `date`" >> message.txt
echo "===================================" >> message.txt
echo "\n" >> message.txt
df -Pk | awk 'NR > 1{ printf "%-20s%-7s%-20s%-20s%-4s\n", "Volume="$1, "\t\tMontagem="$6, "\t\tOcupado(KB)="$3, "\t\tLivre(KB)="$4, "\t\tUso="$5}' >> message.txt
sendmail -t < message.txt
Bom, é isso... Até a próxima!!!
quinta-feira, 22 de novembro de 2012
Java e Tomcat
Olá a todos!!!
Esse documento eu criei quando meu chefe pediu para instalar um servidor web Debian rodando Java e Tomcat. Pensei: "Fácil, apt-get install..." mas ele pediu para instalar as versões mais recentes dos pacotes, então achei melhor baixar dos sites. Abaixo a documentação que eu criei depois de ter terminado toda a configuração.
É isso aí pessoal, até a próxima!!!
Esse documento eu criei quando meu chefe pediu para instalar um servidor web Debian rodando Java e Tomcat. Pensei: "Fácil, apt-get install..." mas ele pediu para instalar as versões mais recentes dos pacotes, então achei melhor baixar dos sites. Abaixo a documentação que eu criei depois de ter terminado toda a configuração.
Instalação
de Java e Tomcat no Debian
Java
Baixar o pacote do
openjdk no endereço
http://www.oracle.com/technetwork/java/javase/downloads
Descompactar o pacote
no diretório /opt
Criar as variáveis de
ambiente em /etc/profile
JAVA_HOME=/opt/jdk1.7.0_07
JRE_HOME=$JAVA_HOME/jre
export JAVA_HOME
export JRE_HOME
Crie os links para os
comandos do Java: update-alternatives --install /usr/bin/java java
/opt/jdk1.7.0_07/bin/java 1065 (o mesmo com o javac)
Teste o funcionamento
com o comando java -version e javac -version
Tomcat
Baixe o pacote do
Tomcat em http://tomcat.apache.org/
Descompacte o pacote em
/opt
Mude o nome da pasta
criada para “tomcat”
Dê permissão de
execução em todos os scripts da pasta /opt/tomcat/bin:
chmod
+x
/opt/tomcat/bin/*.sh
Crie o usuário e grupo
do Tomcat:
groupadd
tomcat
useradd
-g tomcat -d /opt/tomcat
tomcat
usermod
-G www-data tomcat
chown
tomcat:tomcat /opt/tomcat
-R
Crie
o script de inicialização do Tomcat
#!/bin/
bash
###
BEGIN INIT INFO
#
Provides: tomcat7
#
Required-Start: $remote_fs $syslog
#
Required-Stop: $remote_fs $syslog
#
Default-Start: 2 3 4 5
#
Default-Stop: 0 1 6
#
Short-Description: Start daemon at boot time
#
Description: Enable service provided by daemon.
###
END INIT INFO
CATALINA_HOME=/opt/tomcat
export
CATALINA_HOME
JAVA_HOME=/opt/jdk1.7.0_07
export
JAVA_HOME
TOMCAT_OWNER=tomcat;
export
TOMCAT_OWNER
JAVA_OPTS=-Xms128M
-Xmx128M; export
JAVA_OPTS
start()
{
echo
-n
"Starting Tomcat: "
su
$TOMCAT_OWNER
-c $CATALINA_HOME/bin/startup.sh
}
stop()
{
echo
-n
"Stopping Tomcat: "
su
$TOMCAT_OWNER
-c $CATALINA_HOME/bin/shutdown.sh
}
##
case
"$1"
in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo
$"Usage:
tomcat {start|stop|restart}"
exit
esac
Coloque
o comando no diretório /etc/init.d e ative a chamada do comando na
inicialização:
update-rc.d
tomcat defaults
Teste
a instalação visitando no navegador o endereço
http://ip_do_servidor:8080
É isso aí pessoal, até a próxima!!!
terça-feira, 20 de novembro de 2012
Script para Instalação do KVM
Olá a todos!!!
Para facilitar a instalação e configuração do KVM, eu criei um script para Debian/Ubuntu que prepara o ambiente, instala e configura os arquivos da libvirt e instala uma interface web de administração. O script é melhor aproveitado em uma máquina com o SO recém instalado.
Detalhes do Script:
- Em meu ambiente eu utilizo VMs com rede em bridge, e isso foi passado para o script (a performance de rede fica muito mais rápida com essa configuração)
- O script cria a bridge utilizando a primeira placa de rede do sistema
- Todos os blocos de comandos foram feitos em forma de funções para que ficasse mais fácil a sua manipulação.
- O script instala a interface web webvirtmgr (www.webvirtmgr.net) que oferece funcionalidades básicas como criação de VMs, manipulação de storages, console em VNC, etc.
- Toda a instalação levou de 30 a 40 minutos (com uma conexão de 10 mbps)
- Curiosamente em algumas instalações eu tive que reiniciar o servidor após a instalação, mas em outras isso não aconteceu.
Abaixo o código:
#!/bin/bash
# Instalador do KVM e Webvirtmgr Para Debian Squeeze+ e Ubuntu
# Desenvolvido por Rodrigo Garcia 20/11/2012
clear
function sources_install()
{
VERSION=`cat /etc/debian_version`
if [ $VERSION = "wheezy/sid" ]
then
break;
else
# Incluir repositorios "Testing" no sources.list (apenas para Debian)
echo "# Testing" >> /etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ testing main contrib non-free" >> /etc/apt/sources.list
echo "#Testing Security updates" >> /etc/apt/sources.list
echo "deb http://security.debian.org/ testing/updates main contrib" >> /etc/apt/sources.list
apt-get update
# Instalar pacotes necessarios
apt-get install kvm libvirt-bin git python3.2 python-django virtinst apache2 libapache2-mod-python libapache2-mod-wsgi -y
fi
}
function bridge()
{
# Criar bridge br0
IFACE=`ifconfig | awk 'NR==1 {print $1}'`
echo "allow-hotplug br0" >> /etc/network/interfaces
echo "iface br0 inet dhcp" >> /etc/network/interfaces
echo " bridge_ports $IFACE" >> /etc/network/interfaces # Faz uma bridge com a primeira interface de rede do sistema
echo " bridge_fd 9" >> /etc/network/interfaces
echo " bridge_hello 2" >> /etc/network/interfaces
echo " bridge_maxage 12" >> /etc/network/interfaces
echo " bridge_stp on" >> /etc/network/interfaces
ifup br0
}
function configure_daemon()
{
# Configurar /etc/default/libvirt-bin
echo "start_libvirtd=\"yes\"" > /etc/default/libvirt-bin
echo "libvirtd_opts=\"-l -d\"" >> /etc/default/libvirt-bin
#configurar daemon do libvirt
sed -i '22 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '33 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '98 s/"0770"/"0777"/g' /etc/libvirt/libvirtd.conf
sed -i '146 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '146 s/"sasl"/"none"/g' /etc/libvirt/libvirtd.conf
}
function webvirt_install()
{
# Baixar e instalar webvirtmgr
mkdir /var/www/webvirtmgr
git clone git://github.com/retspen/webvirtmgr.git /var/www/webvirtmgr
# Configurar banco de dados e criar superusuario (este é o único ponto do script em que há interação com o usuário)
/var/www/webvirtmgr/manage.py syncdb
chown www-data:www-data /var/www/webvirtmgr -R
chmod 755 /var/www/webvirtmgr/webvirtmgr.db
# Configuracao do Apache
echo "WSGIScriptAlias / /var/www/webvirtmgr/wsgi/django.wsgi" > /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /static /var/www/webvirtmgr/static/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /media /var/www/webvirtmgr/media/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "<Directory /var/www/webvirtmgr/wsgi>" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Order allow,deny" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Allow from all" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "</Directory>" >> /etc/apache2/conf.d/webvirtmgr.conf
}
function modules()
{
# Reiniciar os módulos
rmmod kvm-intel
rmmod kvm
modprobe kvm
modprobe kvm-intel
}
function services()
{
# Reiniciar os serviços
service libvirt-bin restart
service apache2 restart
}
sources_install
bridge
configure_daemon
webvirt_install
modules
services
exit 0;
Espero que gostem,
Até a próxima!!!
Para facilitar a instalação e configuração do KVM, eu criei um script para Debian/Ubuntu que prepara o ambiente, instala e configura os arquivos da libvirt e instala uma interface web de administração. O script é melhor aproveitado em uma máquina com o SO recém instalado.
Detalhes do Script:
- Em meu ambiente eu utilizo VMs com rede em bridge, e isso foi passado para o script (a performance de rede fica muito mais rápida com essa configuração)
- O script cria a bridge utilizando a primeira placa de rede do sistema
- Todos os blocos de comandos foram feitos em forma de funções para que ficasse mais fácil a sua manipulação.
- O script instala a interface web webvirtmgr (www.webvirtmgr.net) que oferece funcionalidades básicas como criação de VMs, manipulação de storages, console em VNC, etc.
- Toda a instalação levou de 30 a 40 minutos (com uma conexão de 10 mbps)
- Curiosamente em algumas instalações eu tive que reiniciar o servidor após a instalação, mas em outras isso não aconteceu.
Abaixo o código:
#!/bin/bash
# Instalador do KVM e Webvirtmgr Para Debian Squeeze+ e Ubuntu
# Desenvolvido por Rodrigo Garcia 20/11/2012
clear
function sources_install()
{
VERSION=`cat /etc/debian_version`
if [ $VERSION = "wheezy/sid" ]
then
break;
else
# Incluir repositorios "Testing" no sources.list (apenas para Debian)
echo "# Testing" >> /etc/apt/sources.list
echo "deb http://ftp.debian.org/debian/ testing main contrib non-free" >> /etc/apt/sources.list
echo "#Testing Security updates" >> /etc/apt/sources.list
echo "deb http://security.debian.org/ testing/updates main contrib" >> /etc/apt/sources.list
apt-get update
# Instalar pacotes necessarios
apt-get install kvm libvirt-bin git python3.2 python-django virtinst apache2 libapache2-mod-python libapache2-mod-wsgi -y
fi
}
function bridge()
{
# Criar bridge br0
IFACE=`ifconfig | awk 'NR==1 {print $1}'`
echo "allow-hotplug br0" >> /etc/network/interfaces
echo "iface br0 inet dhcp" >> /etc/network/interfaces
echo " bridge_ports $IFACE" >> /etc/network/interfaces # Faz uma bridge com a primeira interface de rede do sistema
echo " bridge_fd 9" >> /etc/network/interfaces
echo " bridge_hello 2" >> /etc/network/interfaces
echo " bridge_maxage 12" >> /etc/network/interfaces
echo " bridge_stp on" >> /etc/network/interfaces
ifup br0
}
function configure_daemon()
{
# Configurar /etc/default/libvirt-bin
echo "start_libvirtd=\"yes\"" > /etc/default/libvirt-bin
echo "libvirtd_opts=\"-l -d\"" >> /etc/default/libvirt-bin
#configurar daemon do libvirt
sed -i '22 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '33 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '98 s/"0770"/"0777"/g' /etc/libvirt/libvirtd.conf
sed -i '146 s/#//g' /etc/libvirt/libvirtd.conf
sed -i '146 s/"sasl"/"none"/g' /etc/libvirt/libvirtd.conf
}
function webvirt_install()
{
# Baixar e instalar webvirtmgr
mkdir /var/www/webvirtmgr
git clone git://github.com/retspen/webvirtmgr.git /var/www/webvirtmgr
# Configurar banco de dados e criar superusuario (este é o único ponto do script em que há interação com o usuário)
/var/www/webvirtmgr/manage.py syncdb
chown www-data:www-data /var/www/webvirtmgr -R
chmod 755 /var/www/webvirtmgr/webvirtmgr.db
# Configuracao do Apache
echo "WSGIScriptAlias / /var/www/webvirtmgr/wsgi/django.wsgi" > /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /static /var/www/webvirtmgr/static/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "Alias /media /var/www/webvirtmgr/media/" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "<Directory /var/www/webvirtmgr/wsgi>" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Order allow,deny" >> /etc/apache2/conf.d/webvirtmgr.conf
echo " Allow from all" >> /etc/apache2/conf.d/webvirtmgr.conf
echo "</Directory>" >> /etc/apache2/conf.d/webvirtmgr.conf
}
function modules()
{
# Reiniciar os módulos
rmmod kvm-intel
rmmod kvm
modprobe kvm
modprobe kvm-intel
}
function services()
{
# Reiniciar os serviços
service libvirt-bin restart
service apache2 restart
}
sources_install
bridge
configure_daemon
webvirt_install
modules
services
exit 0;
Espero que gostem,
Até a próxima!!!
quinta-feira, 15 de novembro de 2012
Virtualização
Olá a todos!!!
O objetivo desse post é falar rapidamente sobre um sistema de virtualização muito bom mas que não é muito conhecido, o KVM. Como eu disse no post anterior, tenho algumas máquinas virtuais bem simples (porém importantes) rodando dentro de alguns servidores Linux. A plataforma utilizada é o VMWare Server 2, que se tornou obsoleta, não tem mais suporte e nem atualizações da VMWare.
Isso pode ser um grande problema, pois qualquer atualização de kernel, pode tornar a plataforma inoperante. Comecei então a pesquisar novas soluções de virtualização que pudesse utilizar em Debian e que tivesse uma performance boa. No meu desktop eu costumo utilizar o Virtual Box, é uma boa solução, mas na minha opinião não possui uma performance muito boa.
Já tinha ouvido falar da solução KVM (Kernel-based Virtual Machine), mas nunca tinha usado. Resolvi experimentar pois dei uma lida sobre ela e achei interessante o fato de que a virtualização se dá diretamente no kernel, o que aumenta em muito a performance.
Vou ensinar aqui a instalar o KVM no sistema Debian e Ubuntu (já que os métodos são idênticos). Vou utilizar o conceito de cliente-servidor para essa solução. Então no servidor é necessário instalar os pacotes kvm, libvirt e libvirt-bin:
# apt-get install kvm libvirt libvirt-bin -y
Para aceitar conexões de um cliente, são necessárias algumas alterações. No arquivo /etc/default/libvirt-bin deve-se acrescentar a opção "-l" na linha:
libvirtd_optd="-d"
Essa opção (-l) quer dizer ao daemon para escutar conexões tcp. A próxima alteração está no arquivo /etc/libvirt/libvirtd.conf. Deve descomentar as linhas:
# listen_tls= 0
# listen_tcp= 1
# auth_tcp= "none"
Essa última opção eu coloquei "none" porque ainda não consegui fazer com que a autenticação via sasl funcionasse, e isso estava prejudicando meus testes. Quando eu conseguir fazer funcionar eu posto explicando como se faz. Um detalhe, para facilitar o gerenciamento dos arquivos utilizados para discos virtuais e imagens de cds, eu criei um link simbólico da pasta onde devem ficar armazenados esses arquivos:
ln -s /var/lib/libvirt/images ~/virtual
Qualquer imagem de cd que você for utilizar para criar VMs, deve estar nessa pasta.
Depois dessas configurações, vamos reiniciar o libvirt:
# service libvirt-bin restart
Na máquina cliente, vamos instalar o pacote "virt-manager":
# apt-get install virt-manager -y
Essa é a interface de gerenciamento do KVM. Precisamos criar uma conexão com o servidor. Cllicamos em "Arquivo" -> "Adicionar Conexão". A opção "Hypervisor" deve ser "QEMU/KVM", marcar a caixa "Connect to Remote Host", a opção "Method" deve ser "TCP", o "Username" do servidor (pode ser o root) e em "Hostname" pode colocar o IP do servidor. Clique em "Connect" e já poderá criar as suas máquinas virtuais.
Conforme eu for avançando em meus testes até a implamantação, pretendo postar mais tutoriais e artigos referentes ao KVM. Meu próximo post provavelmente será sobre conversão de discos virtuais VMWare e VirtualBox para KVM.
Até a próxima !!!
O objetivo desse post é falar rapidamente sobre um sistema de virtualização muito bom mas que não é muito conhecido, o KVM. Como eu disse no post anterior, tenho algumas máquinas virtuais bem simples (porém importantes) rodando dentro de alguns servidores Linux. A plataforma utilizada é o VMWare Server 2, que se tornou obsoleta, não tem mais suporte e nem atualizações da VMWare.
Isso pode ser um grande problema, pois qualquer atualização de kernel, pode tornar a plataforma inoperante. Comecei então a pesquisar novas soluções de virtualização que pudesse utilizar em Debian e que tivesse uma performance boa. No meu desktop eu costumo utilizar o Virtual Box, é uma boa solução, mas na minha opinião não possui uma performance muito boa.
Já tinha ouvido falar da solução KVM (Kernel-based Virtual Machine), mas nunca tinha usado. Resolvi experimentar pois dei uma lida sobre ela e achei interessante o fato de que a virtualização se dá diretamente no kernel, o que aumenta em muito a performance.
Vou ensinar aqui a instalar o KVM no sistema Debian e Ubuntu (já que os métodos são idênticos). Vou utilizar o conceito de cliente-servidor para essa solução. Então no servidor é necessário instalar os pacotes kvm, libvirt e libvirt-bin:
# apt-get install kvm libvirt libvirt-bin -y
Para aceitar conexões de um cliente, são necessárias algumas alterações. No arquivo /etc/default/libvirt-bin deve-se acrescentar a opção "-l" na linha:
libvirtd_optd="-d"
Essa opção (-l) quer dizer ao daemon para escutar conexões tcp. A próxima alteração está no arquivo /etc/libvirt/libvirtd.conf. Deve descomentar as linhas:
# listen_tls= 0
# listen_tcp= 1
# auth_tcp= "none"
Essa última opção eu coloquei "none" porque ainda não consegui fazer com que a autenticação via sasl funcionasse, e isso estava prejudicando meus testes. Quando eu conseguir fazer funcionar eu posto explicando como se faz. Um detalhe, para facilitar o gerenciamento dos arquivos utilizados para discos virtuais e imagens de cds, eu criei um link simbólico da pasta onde devem ficar armazenados esses arquivos:
ln -s /var/lib/libvirt/images ~/virtual
Qualquer imagem de cd que você for utilizar para criar VMs, deve estar nessa pasta.
Depois dessas configurações, vamos reiniciar o libvirt:
# service libvirt-bin restart
Na máquina cliente, vamos instalar o pacote "virt-manager":
# apt-get install virt-manager -y
Essa é a interface de gerenciamento do KVM. Precisamos criar uma conexão com o servidor. Cllicamos em "Arquivo" -> "Adicionar Conexão". A opção "Hypervisor" deve ser "QEMU/KVM", marcar a caixa "Connect to Remote Host", a opção "Method" deve ser "TCP", o "Username" do servidor (pode ser o root) e em "Hostname" pode colocar o IP do servidor. Clique em "Connect" e já poderá criar as suas máquinas virtuais.
Conforme eu for avançando em meus testes até a implamantação, pretendo postar mais tutoriais e artigos referentes ao KVM. Meu próximo post provavelmente será sobre conversão de discos virtuais VMWare e VirtualBox para KVM.
Até a próxima !!!
terça-feira, 13 de novembro de 2012
Limpar Memória
Olá a todos!
Recentemente eu tive um problema com alguns de meus roteadores Linux onde também rodam algumas máquinas virtuais. A memória cache dessas máquinas estava muito alta, e isso causava uma certa lentidão no sistema. A solução é simples, basta executar o seguinte comando:
# echo 3 > /proc/sys/vm/drop_caches
Ou então
# sysctl -w vm.drop_caches=3
Esse comandos limpam todos os caches da memória. É chato porém ter que ficar monitorando o tempo todo e executando comandos, então eu criei um shell script que é agendado no crontab para ser executado a cada 30 minutos (este é o tempo que eu percebi para o crescimento da memória utilizada, pode variar para cada um). O script tem o seguinte conteúdo:
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
TMEM=`free -m | awk 'NR == 2 {print $2}'` # Variável para memória total
UMEM=`free -m | awk 'NR == 2 {print $3}'` # Variável para memória usada
PMEM=`echo $((40 * $TMEM / 100))` # Variável para 40% da memória total
if [ $UMEM -ge $PMEM ] # Se a memória usada for maior ou igual a 40%
then
echo 3 > /proc/sys/vm/drop_caches # Limpa os caches
else
exit;
fi
Agora basta dar permissão de execução (chmod + x cache.sh ou chmod 755 cache.sh) e agendar a sua execução:
crontab -e
30 * * * * sh /opt/cache.sh
Simples e útil!!!
Até a próxima !!!
Recentemente eu tive um problema com alguns de meus roteadores Linux onde também rodam algumas máquinas virtuais. A memória cache dessas máquinas estava muito alta, e isso causava uma certa lentidão no sistema. A solução é simples, basta executar o seguinte comando:
# echo 3 > /proc/sys/vm/drop_caches
Ou então
# sysctl -w vm.drop_caches=3
Esse comandos limpam todos os caches da memória. É chato porém ter que ficar monitorando o tempo todo e executando comandos, então eu criei um shell script que é agendado no crontab para ser executado a cada 30 minutos (este é o tempo que eu percebi para o crescimento da memória utilizada, pode variar para cada um). O script tem o seguinte conteúdo:
#!/bin/bash
PATH=/sbin:/usr/sbin:/bin:/usr/bin
TMEM=`free -m | awk 'NR == 2 {print $2}'` # Variável para memória total
UMEM=`free -m | awk 'NR == 2 {print $3}'` # Variável para memória usada
PMEM=`echo $((40 * $TMEM / 100))` # Variável para 40% da memória total
if [ $UMEM -ge $PMEM ] # Se a memória usada for maior ou igual a 40%
then
echo 3 > /proc/sys/vm/drop_caches # Limpa os caches
else
exit;
fi
Agora basta dar permissão de execução (chmod + x cache.sh ou chmod 755 cache.sh) e agendar a sua execução:
crontab -e
30 * * * * sh /opt/cache.sh
Simples e útil!!!
Até a próxima !!!
domingo, 11 de novembro de 2012
VPN
Olá a todos!!!
O assunto desse post é mostrar como se faz a configuração de um cliente VPN no FreeBSD para se autenticar via MSCHAPv2 com MPPE. Depois de muito tentar, pesquisar, eu cheguei a configuração que eu vou demonstrar abaixo.
O primeiro passo é instalar o MPD5, que serve tanto para servidores de VPN quanto clientes. Para instalar o MPD5, digite no terminal:
# pkg_add -r mpd5
Depois da instalação, vá até o diretório do MPD5:
cd /usr/local/etc/mpd5
Crie o arquivo "mpd.conf" com o seguinte conteúdo:
Depois de criar esse arquivo, basta executar o comando:
mpd5
Aparecerão várias linhas com as informações da conexão, agora basta adicionar o ip do servidor remoto como a rota padrão e pronto!
Qualquer atualização das informações sobre esse assunto será postada aqui.
Abraços e até a próxima!!!
O assunto desse post é mostrar como se faz a configuração de um cliente VPN no FreeBSD para se autenticar via MSCHAPv2 com MPPE. Depois de muito tentar, pesquisar, eu cheguei a configuração que eu vou demonstrar abaixo.
O primeiro passo é instalar o MPD5, que serve tanto para servidores de VPN quanto clientes. Para instalar o MPD5, digite no terminal:
# pkg_add -r mpd5
Depois da instalação, vá até o diretório do MPD5:
cd /usr/local/etc/mpd5
Crie o arquivo "mpd.conf" com o seguinte conteúdo:
startup:
default:
load vpn
vpn:
create bundle static B1
set ipcp ranges 0.0.0.0/0 0.0.0.0/0
set iface route ip.da.rede.remota/24
set bundle enable compression
set ccp yes mppc
set mppc yes e40
set mppc yes e128
set mppc yes stateless
create link static L1 pptp
set link action bundle B1
set auth authname "dominio\\usuario"
set auth password "senha"
set link max-redial 0
set link mtu 1460
set link keep-alive 20 75
set pptp peer endereço.da.vpn
set pptp disable windowing
set link enable incoming
open
Depois de criar esse arquivo, basta executar o comando:
mpd5
Aparecerão várias linhas com as informações da conexão, agora basta adicionar o ip do servidor remoto como a rota padrão e pronto!
Qualquer atualização das informações sobre esse assunto será postada aqui.
Abraços e até a próxima!!!
quarta-feira, 7 de novembro de 2012
Dicas importantes FreeBSD
Olá a todos!
Esse post tem o objetivo de ensinar algumas coisas que devem ser feitas por quem quer usar o FreeBSD. Os pontos abordados aqui são bem básicos e servem para deixar uma instalação recente funcional para o usuário doméstico.
Configuração de wi-fi:
Uma instalação nova do FreeBSD não tem interface gráfica, e por isso será necessário baixá-la e instalá-la. Para quem usa conexão cabeada é tranquilo, basta espetar o cabo de rede no PC e executar os comandos necessários. Porém quem usa wi-fi pode ficar meio assustado com a idéia de ter que configurar uma conexão no shell. As configurações utilizadas aqui servem para qualquer placa, mas os nomes das interfaces são atribuídos de acordo com o modelo. Por exemplo, a minha placa é uma Atheros, e o nome da interface ficou "ath0". Além disso, essas configurações são aplicadas para quem utiliza redes WPA com DHCP, para WEP é outro procedimento que não vou explicar aqui por enquanto.
Primeiro passo, adicionar as seguintes linhas no arquivo /etc/rc.conf
wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"
Depois disso, vamos criar o arquivo "/etc/wpa_supplicant.conf" com o seguinte conteúdo:
network={
ssid="nome_da_sua_rede_wifi"
psk="chave_da_sua_rede"
}
Depois de criar o arquivo, deve-se executar o seguinte comando "/etc/rc.d/netif start" e em seguida o comando "dhclient".
Pronto! Você já está conectado na sua rede wireless e já pode instalar pacotes no seu FreeBSD.
Ambiente Gráfico
Vamos instalar o Xorg, Gnome e GDM no FreeBSD, então para isso execute os seguintes comandos (cada um pode ser executado em um terminal diferente):
pkg_add -r xorg
pkg_add -r gdm
pkg_add -r gnome2
Agora senta e espera, porque vai demorar...
Enquanto isso podemos editar o arquivo "/etc/rc.conf" adicionando as seguintes linhas:
hald_enable="YES"
dbus_enable="YES"
gdm_enable="YES"
gnome_enable="YES"
Essas linhas são necessárias para a utilização do GDM e do Gnome.
Depois de uma hora ou uma hora e meia (com uma conexão de 10 mbps), a instalação dos pacotes já deve ter terminado, então devemos executar o seguinte comando "Xorg -configure". Esse comando vai gerar o arquivo xorg.conf que será utilizado pelas sessões gráficas. Reinicie o sistema e aguarde até aparecer a tela do GDM.
Espero ter contribuído para que você consiga utilizar esse ótimo sistema que é o FreeBSD. Colocarei mais dicas nos próximos posts.
Até mais!!!
Esse post tem o objetivo de ensinar algumas coisas que devem ser feitas por quem quer usar o FreeBSD. Os pontos abordados aqui são bem básicos e servem para deixar uma instalação recente funcional para o usuário doméstico.
Configuração de wi-fi:
Uma instalação nova do FreeBSD não tem interface gráfica, e por isso será necessário baixá-la e instalá-la. Para quem usa conexão cabeada é tranquilo, basta espetar o cabo de rede no PC e executar os comandos necessários. Porém quem usa wi-fi pode ficar meio assustado com a idéia de ter que configurar uma conexão no shell. As configurações utilizadas aqui servem para qualquer placa, mas os nomes das interfaces são atribuídos de acordo com o modelo. Por exemplo, a minha placa é uma Atheros, e o nome da interface ficou "ath0". Além disso, essas configurações são aplicadas para quem utiliza redes WPA com DHCP, para WEP é outro procedimento que não vou explicar aqui por enquanto.
Primeiro passo, adicionar as seguintes linhas no arquivo /etc/rc.conf
wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"
Depois disso, vamos criar o arquivo "/etc/wpa_supplicant.conf" com o seguinte conteúdo:
network={
ssid="nome_da_sua_rede_wifi"
psk="chave_da_sua_rede"
}
Depois de criar o arquivo, deve-se executar o seguinte comando "/etc/rc.d/netif start" e em seguida o comando "dhclient".
Pronto! Você já está conectado na sua rede wireless e já pode instalar pacotes no seu FreeBSD.
Ambiente Gráfico
Vamos instalar o Xorg, Gnome e GDM no FreeBSD, então para isso execute os seguintes comandos (cada um pode ser executado em um terminal diferente):
pkg_add -r xorg
pkg_add -r gdm
pkg_add -r gnome2
Agora senta e espera, porque vai demorar...
Enquanto isso podemos editar o arquivo "/etc/rc.conf" adicionando as seguintes linhas:
hald_enable="YES"
dbus_enable="YES"
gdm_enable="YES"
gnome_enable="YES"
Essas linhas são necessárias para a utilização do GDM e do Gnome.
Depois de uma hora ou uma hora e meia (com uma conexão de 10 mbps), a instalação dos pacotes já deve ter terminado, então devemos executar o seguinte comando "Xorg -configure". Esse comando vai gerar o arquivo xorg.conf que será utilizado pelas sessões gráficas. Reinicie o sistema e aguarde até aparecer a tela do GDM.
Espero ter contribuído para que você consiga utilizar esse ótimo sistema que é o FreeBSD. Colocarei mais dicas nos próximos posts.
Até mais!!!
sexta-feira, 2 de novembro de 2012
Experimentando
Olá a todos!
Durante os últimos dias eu andei experimentando vários sistemas Unix, pois enjoei do Linux e quero utilizar um sistema que seja Unix de verdade, pois todos sabem que "GNU is not Unix". Vou descrever as minha impressões sobre cada um dos que eu testei. Todos os sistemas foram testados em máquinas virtuais (VirtualBox) primeiro para depois serem testados no meu notebook.
OpenSolaris:
O OpenSolaris é um descendente do Unix System V4 desenvolvido pela Sun e AT&T no final dos anos 80. Hoje é distribuído pela Oracle e está na sua versão 11.1. Minha experiência com ele não foi muito legal, porque na vm já ficou muito lento. A instalação foi tranquila e relativamente rápida. No primeiro boot já vi uma certa lentidão para carregar os serviços (possivelmente por se tratar de máquina virtual). Devido à lentidão eu não tive muita paciência para fazer as configurações básicas de utilização como desktop e acabei abortando a sua utilização.
OpenIndiana:
Depois da minha frustrada tentativa de utilizar o OpenSolaris, eu fui testar o OpenIndiana que é um fork do sistema da Oracle. O OpenIndiana tem duas versões, server e desktop, e foi muito mais amigável do que o OpenSolaris. A instalação foi tranquila e rápida, e apenas o primeiro boot demorou um pouquinho. O gerenciador de janelas utilizado é o Gnome, que ficou muito bonito no sistema. O sistema possui gerenciadores de pacotes e atualizações no melhor estilo dos outros Unix-like da família GNU/Linux.
O que me deixou chateado foi o fato de que os pacotes oferecidos nos repositórios (que podem ser do próprio projeto ou do OpenSolaris) serem muito antigos (por exemplo não há a opção de instalação do LibreOffice, apenas do OpenOffice) e de não estar preparado para computadores utilizados no Brasil (dificuldades com teclado).Por esses fatores eu nem tentei testar o sistema no meu notebook, pois estou buscando um sistema para utilizar no meu dia a dia, e não posso ficar correndo atrás desses probleminhas com teclados, etc. Mas sugiro que caso haja interesse de alguém, que vá além e mande para mim suas experiências para que eu possa atualizar as informações e publicá-las no blog.
PC-BSD:
Fiquei surpreso ao descobrir que havia um projeto que nasceu em 2005 para tornar o FreeBSD mais amigável a ponto de rodar em desktops com todas as comodidades que os sistemas da família GNU/Linux oferecem hoje. Me empolguei de verdade, e fui visitar o site. Achei muito bacana a iniciativa, e o que é muito legal é que o projeto acompanha os releases do FreeBSD, que agora está na versão 9.0 e por isso o release do PC-BSD também está na 9.0.
Quem baixar apenas a imagem de CD, terá o gerenciador de janelas LXDE, que na minha opinião é muito pobre apesar de ser bem leve. Quem baixar a imagem de DVD, terá opções de instalação mais completas como até a possibildiade de instalar o FreeBSD ao invés do PC-BSD. poderá também escolher entre vários desktops como Gnome, KDE, LXDE, XFCE, etc.
Dependendo dos pacotes selecionados, a instalação vai demorar um bocado e no meu caso levou pelo menos umas 2 horas e meia. Mas é bem bacana. na máquina virtual rodou sem problema algum, nos repositórios do gerenciador de pacotes (AppCafe) tem até os adicionais para guest systems do VirtualBox.
Depois de testar na máquina virtual, decidi testar no meu notebook. O processo foi o mesmo, a instalação demorou novamente, mas reconheceu praticamente todo o meu hardware inclusive a placa de vídeo ATI. Só que depois de algum tempo de uso, dava algum pau no driver da placa que fazia desligar o sistema. Infelizmente não é possível utilizar driver VESA e configurar a minha resolução (1280x800). Mas tirando isso e a falta de cuidados com a aparência do sistema, é um bom sistema Unix para desktops.
GhostBSD:
"Gnome meets BSD" é o lema do projeto que nasceu em 2010 que tem o mesmo objetivo do PC-BSD com a diferença de focar na integração do FreeBSD com o Gnome. Baixei o DVD e executei na máquina virtual. Assim como o Ubuntu, o sistema é live com a opção de instalação depois de carregado. Também possui um gerenciador de pacotes e atualizações, instalei os adicionais do VirtualBox, contudo não tem um gerenciador de rede do sistema, e utilizar o network-manager do Gnome não surtiu efeito então tudo eve de ser configurado na mão mesmo.
Quando à aparência nem tenho o que falar. O sistema é muito bonito, caprichado com belos wallpapers e esquema de cores para os ícones. Decidi que era hora de testar no notebook. Infelizmente o sistema não subiu no meu note com o Gnome, e baixei a imagem para pen drive com LXDE. Consegui fazer a instalação mas não queria utilizar essa interface mas sim o Gnome.
Estava baixando o meu gerenciador de janelas favorito quando deu pau na placa de vídeo como no PC-BSD e o sistema foi resligado. Reiniciei, continuei a instalação e o sistema desligou de novo. Tentei mais umas duas vezes até que a instalação do Gnome foi concluída. instalei também o GDM mas foi inútil configurá-lo para iniciar com o sistema pois não subia.Acabei desistindo por hora do GhostBSD.
FreeBSD:
Hoje eu acordei inspirado e resolvi instalar de vez o FreeBSD. Colhi antes algumas informações na Internet de como se configurava a conexão wireless em modo texto no "Friba" e de como fazia a instalação do Xorg, Gnome e GDM e fui à luta. A instalação do sistema durou 20 minutos no máximo, e então fui instalar a parte gráfica. Demorou pelo menos 1 hora e alguns minutos para instalar o Gnome, mas a vantagem é que diferente de outros sistemas, podemos instalar outros pacotes simultaneamente através do pkg_add.
Depois de umas 2 horas no máximo eu estava com o FreeBSD com Gnome funcionando tranquilamente no meu notebook, e é através dele que vos escrevo agora. Agora vou correr atrás de fazer funcionar a saída HDMI e descobrir como aumento o som¹ que está muito baixo mesmo com o nível no máximo.
Abraços e até a próxima!!!
1 - Consegui resolver a questão do som com o comando "mixer pcm 100".
Durante os últimos dias eu andei experimentando vários sistemas Unix, pois enjoei do Linux e quero utilizar um sistema que seja Unix de verdade, pois todos sabem que "GNU is not Unix". Vou descrever as minha impressões sobre cada um dos que eu testei. Todos os sistemas foram testados em máquinas virtuais (VirtualBox) primeiro para depois serem testados no meu notebook.
OpenSolaris:
O OpenSolaris é um descendente do Unix System V4 desenvolvido pela Sun e AT&T no final dos anos 80. Hoje é distribuído pela Oracle e está na sua versão 11.1. Minha experiência com ele não foi muito legal, porque na vm já ficou muito lento. A instalação foi tranquila e relativamente rápida. No primeiro boot já vi uma certa lentidão para carregar os serviços (possivelmente por se tratar de máquina virtual). Devido à lentidão eu não tive muita paciência para fazer as configurações básicas de utilização como desktop e acabei abortando a sua utilização.
OpenIndiana:
Depois da minha frustrada tentativa de utilizar o OpenSolaris, eu fui testar o OpenIndiana que é um fork do sistema da Oracle. O OpenIndiana tem duas versões, server e desktop, e foi muito mais amigável do que o OpenSolaris. A instalação foi tranquila e rápida, e apenas o primeiro boot demorou um pouquinho. O gerenciador de janelas utilizado é o Gnome, que ficou muito bonito no sistema. O sistema possui gerenciadores de pacotes e atualizações no melhor estilo dos outros Unix-like da família GNU/Linux.
O que me deixou chateado foi o fato de que os pacotes oferecidos nos repositórios (que podem ser do próprio projeto ou do OpenSolaris) serem muito antigos (por exemplo não há a opção de instalação do LibreOffice, apenas do OpenOffice) e de não estar preparado para computadores utilizados no Brasil (dificuldades com teclado).Por esses fatores eu nem tentei testar o sistema no meu notebook, pois estou buscando um sistema para utilizar no meu dia a dia, e não posso ficar correndo atrás desses probleminhas com teclados, etc. Mas sugiro que caso haja interesse de alguém, que vá além e mande para mim suas experiências para que eu possa atualizar as informações e publicá-las no blog.
PC-BSD:
Fiquei surpreso ao descobrir que havia um projeto que nasceu em 2005 para tornar o FreeBSD mais amigável a ponto de rodar em desktops com todas as comodidades que os sistemas da família GNU/Linux oferecem hoje. Me empolguei de verdade, e fui visitar o site. Achei muito bacana a iniciativa, e o que é muito legal é que o projeto acompanha os releases do FreeBSD, que agora está na versão 9.0 e por isso o release do PC-BSD também está na 9.0.
Quem baixar apenas a imagem de CD, terá o gerenciador de janelas LXDE, que na minha opinião é muito pobre apesar de ser bem leve. Quem baixar a imagem de DVD, terá opções de instalação mais completas como até a possibildiade de instalar o FreeBSD ao invés do PC-BSD. poderá também escolher entre vários desktops como Gnome, KDE, LXDE, XFCE, etc.
Dependendo dos pacotes selecionados, a instalação vai demorar um bocado e no meu caso levou pelo menos umas 2 horas e meia. Mas é bem bacana. na máquina virtual rodou sem problema algum, nos repositórios do gerenciador de pacotes (AppCafe) tem até os adicionais para guest systems do VirtualBox.
Depois de testar na máquina virtual, decidi testar no meu notebook. O processo foi o mesmo, a instalação demorou novamente, mas reconheceu praticamente todo o meu hardware inclusive a placa de vídeo ATI. Só que depois de algum tempo de uso, dava algum pau no driver da placa que fazia desligar o sistema. Infelizmente não é possível utilizar driver VESA e configurar a minha resolução (1280x800). Mas tirando isso e a falta de cuidados com a aparência do sistema, é um bom sistema Unix para desktops.
GhostBSD:
"Gnome meets BSD" é o lema do projeto que nasceu em 2010 que tem o mesmo objetivo do PC-BSD com a diferença de focar na integração do FreeBSD com o Gnome. Baixei o DVD e executei na máquina virtual. Assim como o Ubuntu, o sistema é live com a opção de instalação depois de carregado. Também possui um gerenciador de pacotes e atualizações, instalei os adicionais do VirtualBox, contudo não tem um gerenciador de rede do sistema, e utilizar o network-manager do Gnome não surtiu efeito então tudo eve de ser configurado na mão mesmo.
Quando à aparência nem tenho o que falar. O sistema é muito bonito, caprichado com belos wallpapers e esquema de cores para os ícones. Decidi que era hora de testar no notebook. Infelizmente o sistema não subiu no meu note com o Gnome, e baixei a imagem para pen drive com LXDE. Consegui fazer a instalação mas não queria utilizar essa interface mas sim o Gnome.
Estava baixando o meu gerenciador de janelas favorito quando deu pau na placa de vídeo como no PC-BSD e o sistema foi resligado. Reiniciei, continuei a instalação e o sistema desligou de novo. Tentei mais umas duas vezes até que a instalação do Gnome foi concluída. instalei também o GDM mas foi inútil configurá-lo para iniciar com o sistema pois não subia.Acabei desistindo por hora do GhostBSD.
FreeBSD:
Hoje eu acordei inspirado e resolvi instalar de vez o FreeBSD. Colhi antes algumas informações na Internet de como se configurava a conexão wireless em modo texto no "Friba" e de como fazia a instalação do Xorg, Gnome e GDM e fui à luta. A instalação do sistema durou 20 minutos no máximo, e então fui instalar a parte gráfica. Demorou pelo menos 1 hora e alguns minutos para instalar o Gnome, mas a vantagem é que diferente de outros sistemas, podemos instalar outros pacotes simultaneamente através do pkg_add.
Depois de umas 2 horas no máximo eu estava com o FreeBSD com Gnome funcionando tranquilamente no meu notebook, e é através dele que vos escrevo agora. Agora vou correr atrás de fazer funcionar a saída HDMI e descobrir como aumento o som¹ que está muito baixo mesmo com o nível no máximo.
Abraços e até a próxima!!!
1 - Consegui resolver a questão do som com o comando "mixer pcm 100".
Assinar:
Postagens (Atom)