:::: MENU ::::

terça-feira, 15 de dezembro de 2015

Seria vergonhoso da minha parte não citar o grande mestre Aurélio, de onde eu sempre tiro alguma coisa pra me ajudar. Devo muito ao site desse cara.
Se você quer aprender MESMO shellscript, recomendo seguir as dicas dele.
Sem mais.



Aqui tem o canivete dele, super útil! Deixe uma cópia no seu smartphone, vai ajudar ;)
http://aurelio.net/shell/canivete
--
Vou tentar sempre referenciar alguns bons materiais aqui. Fiquem ligados.
Abs!

quarta-feira, 9 de dezembro de 2015

Chatinho... O Virtualbox tá problemático! Mas enfim... Ele também estava apresentando o erro após ser chamado para execução:

finarfin:~> virtualbox
WARNING: The vboxdrv kernel module is not loaded. Either there is no module
         available for the current kernel (4.1.13-5-default) or it failed to
         load. Please recompile the kernel module and install it by

           sudo /sbin/vboxconfig

         You will not be able to start VMs until this problem is fixed.


Tá de sacanagem né Virtualbox? Toda hora uma coisinha diferente!!!
Mas esse é mais fácil. Primeiro, certifique-se que o pacote DKMS está instalado, e depois, execute esse comandinho:

rcvboxdrv setup


E pronto, funcionou pra mim. A iluminação veio do fórum do Virtualbox, aqui: https://forums.virtualbox.org/viewtopic.php?f=7&t=74119
Tive esse problema após instalar o Virtualbox, pacote oficial da Oracle. Estranhamente, ele sempre apresentava a mensagem "Callee RC: NS_ERROR_FACTORY_NOT_REGISTERED" após a tentativa de execução, porém, quando tentava como root, funcionava normalmente. A partir daqui, já sabemos que é alguma coisa relacionada a permissão.

Pois bem, googlar eu fui.

Vi que é um bug veeeelho, com registros de 2009:

Callee RC: NS_ERROR_FACTORY_NOT_REGISTERED 0x80040154 unrelated to /tmp permissions => Fixed in SVN

 https://www.virtualbox.org/ticket/3568

Modo 01: Um cidadão resolveu da seguinte maneira[1]:


chmod ug-s /tmp
rm -fr /tmp/.vbox-rene-ipc/


Modo 02: Já eu, fui um pouco mais "violento":


finarfin:/tmp # ls | grep vbox
.vbox-raul-ipc
.vbox-root-ipc
finarfin:/tmp # rm -rf .vbox-r*


Mandei pra puta-que-pariu os arquivos do diretório /tmp/.vbox-$USER-ipc, no caso, .vbox-raul-ipc.



[1]: http://www.jbnet.fr/systeme/virtualisation/virtualbox-ns_error_factory_not_registered-0x80040154.html

sexta-feira, 4 de dezembro de 2015

Isso é útil em scripts, quando você quer que a saída padrão (STDOUT) seja emitida na tela e também seja anexada em um arquivo. Você pode fazer isso de duas maneiras:

1. Emitindo a saída duas vezes, sendo que a primeira vai direto para o STDOUT e depois você emite a mesma saída, mas dessa vez jogando para um arquivo ( > ou >> file.txt). Esse funciona melhor quando é usado o comando echo.
2. Usando o comando tee. Maneira mais simples.

Comando tee
O tee lê da entrada padrão (STDIN) e escreve na saída padrão (STDOUT) e arquivos, como a própria manpage descreve.


DESCRIÇÃO
        Copia a entrada padrão para cada arquivo, e também para a saída padrão.

       -a, --append
               anexa aos arquivos, não sobrescrevendo

       -i, --ignore-interrupts
              ignora sinais de interrupção

       --help mostra essa saída e sai

       --version
              mostra a versão e sai

       Se FILE é -, copie novamente para a saída padrão (standard output).

AUTORES
       Escrito por Mike Parker, Richard M. Stallman, e David MacKenzie.


Exemplo:

[root@digestor var]# du -sh * | tee -a file.txt
561M    cache
8.0K    db
8.0K    empty
4.0K    file.txt
4.0K    games

[root@digestor var]# cat file.txt
8.1G    .
561M    cache
8.0K    db
8.0K    empty
4.0K    file.txt
4.0K    games

[root@digestor var]#


Mas aí alguém pode dizer: Ô! Isso eu faço usando o > ou >>. É, faz, mas não vai conseguir jogar na tela e no arquivo ao mesmo tempo.

Use o tee para criar seus arquivos de log, fica muito prático.

Abs!

quinta-feira, 3 de dezembro de 2015

Fala queridos!

Fiz esse script para preparar os hosts que receberão o agente do HP Data Protector de lá da empresa.
Percebam que ele:
Permite que o host servidor (de onde você vai executar os comandos) consiga logar no host cliente sem autenticação
Edita arquivos
Envia arquivos
Instala pacotes
Configura serviços

Tenham esse script como referência. Mudem como preferir. Usem a criatividade! :)


#!/bin/bash
# Instala software cliente de backup
# Raul Libório, raul.liborio@solutis.com.br
# 1.0

AUTH_KEYS_DIR="/root/.ssh"
AUTH_KEYS="$AUTH_KEYS_DIR/authorized_keys"
AUTH_ID="$AUTH_KEYS_DIR/id_rsa.pub"
DNSCLIENTE=$1
PASSWD="asdfghjklç"
SSH="sshpass -p "$PASSWD" ssh -o "StrictHostKeyChecking=no" root@$DNSCLIENTE"
SCP="sshpass -p "$PASSWD" scp -o "StrictHostKeyChecking=no""
DEPENDENCIAS="yum -y install xinetd rpm libstdc++ rsh-server glibc rsync"
RESPOSTA_OK="$( date ) - Iniciando instalacao no cliente $DNSCLIENTE"
RESPOSTA_NO="$( date ) - Instalacao cancelada pelo usuario $USER no host $DNSCLIENTE"
RESPOSTA_HOST_ERR="Use o FQDN do host. Exemplo: $(nslookup $DNSCLIENTE | awk /name/'{print $NF}')"
LOG="/var/log/hp_dataprotector_shell-installer.log"

# Testa se $1 recebeu um nome de host valido - o HP Data Protector so aceita FQDN
echo $1 | grep -q '.solutis.net.br'
[ $? != "0" ] && echo "$RESPOSTA_HOST_ERR" && exit 2

# Confirmacao se quer continuar a execucao do script
read -p "Deseja preparar o host $1 para instalar o HP Data Protector? " RESPOSTA
[ $RESPOSTA != "y" ] && echo $RESPOSTA_NO &>> $LOG && exit 1 || echo "$RESPOSTA_OK" &>> $LOG

# Desabilitar SELinux
$SSH sed -i 's/enforcing/disabled/' /etc/selinux/config

# Cria o diretorio $AUTH_KEYS_DIR caso ele nao exista
$SSH "mkdir $AUTH_KEYS_DIR 2> /dev/null"

# Copia o $AUTH_ID para o $DNSCLIENTE
$SCP $AUTH_ID root@$DNSCLIENTE:/tmp

# Adiciona $AUTH_ID ao $AUTH_KEYS
$SSH "touch $AUTH_KEYS"
$SSH "cat /tmp/id_rsa.pub >> $AUTH_KEYS"

# Instala as depenencias do HP Data Protector
$SSH $DEPENDENCIAS

# Habilite os servicos necessarios
$SSH "chkconfig rexec on"
$SSH "chkconfig rsync on"
$SSH "chkconfig rsh on"
$SSH "service xinetd restart"

# Confirmacao da execucao
echo "$( date ) - Host $DNSCLIENTE preparado com sucesso." &>> $LOG
exit 0

quarta-feira, 25 de novembro de 2015

Bem... Provavelmente se tentou instalar o sysdig usando o comandinho do site:

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Então viu que não funciona :D

O motivo é bem simples: O script deles quer adicionar o repositório do sysdig no /etc/yum.repos.d. Ora, os repositórios do openSUSE ficam no /etc/zypp/repos.d, e, a par dessa informação, vamos instalar esse troço!
Duas maneiras:
1. Você pode mudar o local do repositório, no script;
2. Instalar na mão. Eu gosto desse modo :D

Primeiro, importe a chave do repositório:

sudo rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public


Depois, não menos importante, baixe o arquivo do repositório para o zypp/repos.d:

sudo curl -s -o /etc/zypp/repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo


E agora, mate sua vontade e instale o sysdig!

zypper in sysdig


Observação: O sysdig vai pedir como dependência o pacote dkms, que pode ser encontrado no repositório Packman Repository (http://ftp.gwdg.de/pub/linux/packman/suse/openSUSE_13.2/). Se não o tiver, vai precisar adicionar também o Packman.

Um abraço!

domingo, 15 de novembro de 2015

Sobre

O Slack é uma ferramenta sensacional! O Slack é um software de comunicação de equipes com suporte a canais, conversas privadas, integração com serviços externos e diversos detalhes bacanas que fazem dele simplesmente viciante. Ele integra Dropbox, Wunderlist, Github, Google Drive, Trello, RSS, faz vídeo-conferência pelo Hangout do Google, recebe informações via API, e outras dezenas de integrações. É muita coisa!

Faça o seguinte: Leia essa matéria do Tecnoblog e depois volte. Vai ver que a ferramenta é algo que faltava no seu dia-a-dia
https://tecnoblog.net/179267/slack-motivos-para-usar/


A Configuração

No slack.com

Primeiramente vá no slack.com, clique em integrations e no fim da página, procure pela integração "Incoming WebHooks". Clique.
Em "Post to Channel", selecione qual canal ou usuário receberá as notificações (#zabbix ?). Em seguida, aparecerá a tela "Setup Instructions".

Observe o campo "Webhook URL". Essa URL é única e será a ponte de ligação para o envio das mensagens. Anote e guarde!
Atenção: Caso você venha a refazer esse caminho (slack > Integrations > Incoming WebHooks), ele gerará uma nova URL.

Com a webhook url anotada, vamos ao próximo passo: o script slack.sh


SCRIPT

Configuração

Verifique o local do seu AlertScriptPath no zabbix_server.conf:


grep AlertScriptsPath /usr/local/etc/zabbix_server.conf
### Option: AlertScriptsPath
AlertScriptsPath=/etc/zabbix/alertscripts


O nosso diretório é o /etc/zabbix/alertscripts. Agora precisamos colocar o script aqui.

Baixe o script para este diretório:
wget -P /etc/zabbix/alertscripts/ https://github.com/ericoc/zabbix-slack-alertscript/raw/master/slack.sh

Dê permissões de execução

chmod +x /etc/zabbix/alertscripts/slack.sh



Lembra do WebHook URL? Pois bem, vamos usá-lo nesse script. Edite o script e procure pela linha url='CHANGEME'. Acho que já sabem o que devem fazer né?
Remova o CHANGEME e coloque o a sua url. Como por exemplo:

url='https://hooks.slack.com/services/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'


A linha 'username' é a do nome do bot que irá postar. Zabbix (o default) é uma boa pedida.

Agora, a última parte, a configuração na interface web do Zabbix.


INTERAFCE WEB


Crie o tipo de mídia:

Logado no Zabbix Server como Super-Administrador, clique em "Administração" > "Tipos de mídias" e depois em "Criar tipo de mídia".
Então teremos:
Nome: Slack
Tipo: Script
Nome do script: slack.sh
Ativo: sim

Crie o usuário Slack

Em "Administração" > "Usuários", clique em "Criar usuário"
Na guia Usuário, defina o apelido "Slack". Fique a vontade com os outros parâmetros. Coloque-o em um grupo que tenha acesso as notificações que deseja emitir. O Zabbix administrators é uma sugestão.
Na guia Mídia, clique em adicionar. Defina:
Tipo: Slack
Enviar para: Aqui você colocará para qual canal irá receber as notificações. Se você criou o canal #zabbix, então defina #zabbix.
Quando ativo: Período de notificação. O padrão é 24/7.
Usar se risco: Com todos os campos marcados, ele gerará notificações sobre qualquer alerta das triggers. Configure de acordo sua vontade.
Ativo: Sim


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Defina as ações

Na guia "Configuração" > "Ações", clique em "Criar ação"
Na guia "Ação", defina o nome "Slack".
No campo "Assunto padrão", defina "PROBLEM". Isso fará com que, quando ocorra uma notificação de incidente, aparecerá um emoji de carinha de espanto.
No campo "Mensagem padrão", defina algo simples, como por exemplo:

{TRIGGER.NAME} - {HOSTNAME} ({IPADDRESS})


Marque o campo "Mensagem de recuperação" e defina o "Assunto da recuperação" como "RECOVERY". A mensagem de recuperação deixe igual (se quiser, claro!) a mensagem padrão.
Mais na frente vamos aprender a customizar isso ;)

Na guia "Ações", em "Operações da ação", clique em "Nova".
defina, em "Detalhes da operação" > "Enviar para usuários", clique em "Adicionar" e selecione "Slack" e adicione a ação.

 

 

 

HORA DO TESTE!

Agora é a hora da verdade, vamos ver se funciona!
Vá no diretório do seu AlertScriptsPath e execute o script dessa maneira:


$ bash slack.sh '@SeuUsuario' PROBLEM 'Oh não! Algo está errado!'






Onde: @SeuUsario é o seu usuário (¯\_(ツ)_/¯), e ele deverá receber essa mensagem.


Tudo ok? Ótimo! Vamos aprender a customizar no próximo post.
Abraços.

Fonte

Todas as informações desse post foram aprendidas e inspiradas do GitHub do criador, o Eric O'Callaghan https://github.com/ericoc

quinta-feira, 24 de setembro de 2015


Tentou habilitar o SNMP mas não rolou? tsc tsc tsc... Tente esse comandinho:


 ps: Troque o public da communities pela que você usa em sua rede.

esxcli system snmp set --communities public
esxcli system snmp set --enable true
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
esxcli network firewall ruleset set --ruleset-id snmp --enabled true
/etc/init.d/snmpd restart
Funcionou aí?

fonte: EverythingShouldBeVirtual

domingo, 6 de setembro de 2015

Zorka

Estava pesquisando uma maneira de monitorar o WildFly, já que o método convencional via JMX não estava funcionando, e encontrei o Zorka. Ele é um agente de monitoramento, que possui uma série de funcionalidades. São muitas, destacando algumas:
  • Funcionalidades básicas: Acesso JMX, Zorka Stats, Audit logs...
  • Ele consegue monitorar os componentes: HTTP, SQL, EJB, LDAP,JMS;
  • Suporta sistemas monitorados e protocolos: Zabbix, Nagios, syslog, SNMP, arquivos locais, ZICO colletor (e da família do Zorka);
  • Suporta servidores de aplicações: Tomcat 6/7, JBoss 4/5/6/7, EAP 6, Jetty 6/7/8/9, IBM Websphere 7/8, Mule ESB.
recomendo você ler aqui: http://zorka.io/features.html

Configuração do laboratório
host 01: CentOS 6.6 + Zabbix 2.4.6
host 02: CentOS 6.6 + WildFly 9.0.1, modo standalone

Instalação

Acesse a página de downloads e baixe a última versão do zorka. No nosso exemplo, a 1.0.14:
wget  http://zorka.io/files/zorka-1.0.14.zip

Após o download, descompacte o seu conteúdo dentro do diretório do seu WildFly. Digamos que ele esteja no /opt/wildfly:
unzip -l /opt/wildfly zorka-1.0.14.zip
E essa foi a instalação :)
O Zorka funcionará como o zabbix-agent, então, fica a seu critério instalá-lo ou não - a não ser que queira também as informações do host, que são importantes.

Configuração

$WILDFLY_HOME/zorka/zorka.properties

Acesse o diretório zorka, dentro do home do WildFly
cd /opt/wildfly/zorka
Existe um arquivo chamado zorka.properties. Vamos editar esse arquivo e setar alguns parâmetros:
Descomente a linha e adicione o parâmetro -XX:-UseSplitVerifier. Vai ficar assim:
scripts = jvm.bsh, zabbix.bsh, jboss/jboss7.bsh
-XX:-UseSplitVerifier
Um pouco mais embaixo, você setará os parâmetros para o Zabbix:
# Add IP addresses of your zabbix servers here.
# Only servers from this list will be allowed to access agent using zabbix protocol.
zabbix.server.addr = 192.168.0.3

# Default port Zabbix protocol will listen on.
zabbix.listen.port = 10055

# Enter name of your application and host here.
# Should be unique for every monitored application.
zorka.hostname = wildfy

 São bem intuitivos: server.addr para endereço do servidor, listen.port para a porta que o zabbix server irá consultar e hostname, para o nome do host a ser monitorado.
Após isso, salve o arquivo e vamos para o próximo.

$WILDFLY_HOME/bin/standalone.conf

Procure pela linha
if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then   JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman"
fi

E adicione ",com.jitlogic.zorka.core.spy", logo após o byteman. Vai ficar assim (recomendo que copie e cole)

if [ "x$JBOSS_MODULES_SYSTEM_PKGS" = "x" ]; then   JBOSS_MODULES_SYSTEM_PKGS="org.jboss.byteman,com.jitlogic.zorka.core.spy"
fi
 E, após as definições de variáveis, adicione a sua.
ZORKA="/opt/wildfly/zorka"
JAVA_OPTS="$JAVA_OPTS -javaagent:$ZORKA/zorka.jar=$ZORKA"
 Feito isso, salve o arquivo e reinicie o WildFly para carregar as novas configurações definidas no standalone.conf.

Zabbix

Importação dos templates

Pois bem, o Zorka já possui templates bem completos para te ajudar nessa labuta. No diretório zorka/templates, existem vários.
E dentro dos diretórios ainda tem mais!

Bom proveito. 

Criação do host

A parte do Zabbix é bem simples: Crie o host e defina a porta 10055.
Na aba templates, adicione os que preferir. Nos meus testes, adicionei o Template_Zorka_JBoss7_RequestProcessors, Template_Zorka_JBoss7_Servlets e Template_Zorka_JVM. Olha o que obtive:

Legal né :D
Bem amigos, é isso aí. Maiores informações ou dúvidas, recomendo o pai da criança, em http://zorka.io/install/jboss7.html ou a sua lista de email, no google groups https://groups.google.com/forum/?fromgroups#!forum/zorka-user

Abraço e até a próxima.

segunda-feira, 24 de agosto de 2015

Situação:

Empresa com o servidor web, que possui várias aplicações GLPI, um para cada cliente.

Problema:

A aplicação GLPI, está criando arquivos de log muito grandes, no diretório /var/www/html/glpi/files/_log, e isso está fazendo o servidor estourar o espaço em disco.

Solução: Script!

Script que crie um arquivo de logrotate para cada cliente, que é executado mensalmente - para caso apareça algum novo cliente.

Show me the code:

#/bin/bash
# Raul Libório, <rauhmaru@opensuse.org>
# Versao: 1.0 - 24/08/2015
# Problema: Arquivos do GLPI no diretorio
# /var/www/html/$CLIENTES/files/_log/
# que crescem bastante, levando ao
# estouro de disco
#
# Funcao: Cria arquivos de config. do logrotate
# para as aplicacoes do GLPI. e resolver
# problema do tamanho dos arquivos de log.
#
## Variaveis
LOGROTATE_FILE="/etc/logrotate.d/glpi"
GLPI_DIR="/var/www/html/"
LOGROTATE_PARAMS="
{\n
        missingok\n
        monthly\n
        notifempty\n
        size 20M\n
        rotate 7\n
        compress\n
        create 0664 apache apache\n
}
"
## Cria arquivo do logrotate para o GLPI
rm $LOGROTATE_FILE
for CLIENTES in $(ls $GLPI_DIR | grep glpi ); do
        GLPI_LOGS="/var/www/html/$CLIENTES/files/_log/logfiles"
        echo -e $GLPI_LOGS >> $LOGROTATE_FILE
done
echo -e $LOGROTATE_PARAMS >> $LOGROTATE_FILE
sed -i 's/logfiles/\*.log/g' $LOGROTATE_FILE
## Executa o arquivo criado
logrotate -f /etc/logrotate.conf
E adicione a linha ao cron: (supondo que seu script está no /scripts)
@monthly  /scripts/logrotate_glpi.sh

segunda-feira, 17 de agosto de 2015



FreeNAS

O que é

O FreeNAS é uma solução gratuita e livre de servidor NAS (Network Attached Storage) baseada no FreeBSD. Suporta diversos protocolos e serviços de comunicação como: NFS, CIFS, AFP, FTP e TFTP, autenticação local de utilizadores, suporte a RAID (0,1,5), e com uma interface de gestão via browser. Na prática, com o FreeNAS, podemos ter o nosso próprio servidor de armazenamento, centralizado, e ainda uma interface de gestão web para efectuar todas as configurações e gestão dos mais diversos serviços

O FreeNAS está disponível para Windows, Linux e OSX. Pode ser instalado nativamente ou então ser virtualizado através das mais diversas plataformas (XenServer, Virtualbox, VMWare, etc).

 Requisitos Aconselhados
  • CPU 64-bits
  • 8GB RAM
  • 2GB de memória de armazenamento (Para instalação)
  • Pelo menos um disco adicional
  • Interface de rede

O que posso fazer com o FreeNAS?

Com o FreeNAS o utilizador terá um servidor para guardar música, vídeos, podendo estes conteúdos ser partilhados com dispositivos móveis, smartTVs, etc. Além disso podemos também ter um servidor de torrents, servidor de streaming, de backups, etc. Dos vários plugins disponíveis para o FreeNas, destacam-se:
  • Own-Cloud – Storage na cloud
  • Plex Media Server – Criação de um servidor de streaming
  • Bacula – Plataforma para backups
  • Transmission – Servidor de torrents

Download do FreeNAS

Para obter o FreeNAS, basta que clique aqui e escolha a arquitetura do seu sistema (32bits/64 bits).

Conceitos

Nesse post, vamos demonstrar como setar o link aggregation (LAGG) no FreeNAS 9.3 usando switches Cisco. Agregação é o método de entregar vários links ethernet para prover largura de banda adicional e redundância.

O FreeNAS suporta vários protocolos diferentes para LAGG, mas o LACP é o mais robusto entre eles. O protocolo LACP funciona através de troca de pares de frames para agrupar automaticamente múltiplos links.
Se você não tem um switch Cisco, você pode verificar um que suporte o protocolo IEEE 802.3ad. Caso não consiga, então recomendo que utilize no FreeNAS a opção de Round Robin ou Load Balance.

Quantos links eu posso ligar?

Os switches da Cisco suportam até 8 links físicos em um único grupo ativo.
Você pode vincular conexões Fast, Gigabit ou 10-Gigabit, mas todos os links devem ser da mesma velocidade (Fast só com Fast, Gbit só com Gbit).
Para garantir uma distribuição uniforme de tráfego através dos links, é recomendado que use 2, 4 ou 8 ligações.

Interfaces de rede

Recomendo que use interfaces gigabit. E não esqueça também de usar cabos de uma categoria que suporte o gigabit! UTP CAT-5 nem pensar!

O switch

Precisamos de um switch que suporte LACP (IEEE 802.3ad). No laboratório, foi utilizado um Cisco Catalyst 3560.

Versão do FreeNAS

A mais recente versão estável possível.

Instalando o FreeNAS e configurando a interface LAGG pela GUI

Pra facilitar a vida de vocês, segue a instalação em vídeo. Caso youtube seja bloqueado em sua empresa, visite os links de referência abaixo, vão ajudar.

Instalando o FreeNAS no VirtualBox


Configurando o LACP + Compartilhamento iSCSI


Feito isso, seguimos para a configuração do switch.

 Configuração do switch Cisco 3560


Primeiro, verifique se as interfaces estão conectadas no FreeNAS e possuem a mesma velocidade. Caso alguma porta não seja da mesma velocidade, não irá funcionar.

Para verificar, faça:
sh int status | i connected

No nosso exemplo, usaremos as portas 1, 2, 3 e 4.
Esses comandos adicionam as portas ao channel group ou port channel 1, e instrue o switch a utilizar o protocolo LACP. Configure cada porta conforme descrito abaixo:

#conf terminal
(config)#int gi1/1
(config-if)#des FreeNAS LAGG - 1
(config-if)#channel-group 1 mode active
(config-if)#channel-protocol lacp
exit
(config)#int gi1/2
(config-if)#des FreeNAS LAGG - 1
(config-if)#channel-group 1 mode active
(config-if)#channel-protocol lacp
exit
(config)#int gi1/3
(config-if)#des FreeNAS LAGG - 1
(config-if)#channel-group 1 mode active
(config-if)#channel-protocol lacp
exit
(config)#int gi1/4
(config-if)#des FreeNAS LAGG - 1
(config-if)#channel-group 1 mode active
(config-if)#channel-protocol lacp
exit

Depois, configure o port channel interface, setando uma descrição e habilitando a porta:
(config)#int port-channel 1
(config-if)#des FreeNAS LAGG Group
(config-if)#description FreeNAS LACP Group
(config-if)#no shut

Uma vez configurado, a interface port channel Po1 deve mostrar que está conectada.

int status | i Po

Caso não apareça, verifique a configuração de cada porta novamente, se estão ativas, e também verique as configurações no FreeNAS.
Caso persista, reiniciar o FreeNAS pode ser uma alternativa :)

Mais fácil:


Para verificar o status de cada porta individualmente, execute o comando "show etherchannel port-channel". Cada uma das portas devem possuir o mesmo status.
show etherchannel port-channel

Redundância e teste de Failover

Além do aumento da largura de banda, os benefícios da utilização do LAGG é a segurança em caso de perda de um link membro. Quer testar se sua configuração está funcionando? Simples! A partir de uma máquina qualquer, comece a pingar no seu FreeNAS, no endereço IP da interface lagg0 e então remova os cabos, um a um e, claro, sempre deixe um cabo conectado. Brinque removendo um e outro.


Referências:

Todos acessados em 17 de Agosto de 2015


sábado, 15 de agosto de 2015

Hoje começaremos uma série de alguns posts, mostrando como montar uma solução de alta disponibilidade e desempenho de storage para virtualização. Utilizaremos o FeeNAS, com o protocolo LACP (Link aggregation), em conjunto ao VMware ESXi, utilizando o iSCSI Multipath.


Como todo bom projeto, a etapa inicial é sentar e escrever o que vamos fazer: Definir equipamentos, dimensionar discos, endereçamento de rede, ver as versões de software que serão usadas, e tudo aquilo que seja necessário. Nessa etapa, analise com calma tudo que você pretende fazer para não ter de mudar o escopo do projeto com ele andando!!!


Definição de equipamentos

Nesse laboratório, usaremos as ferramentas:
Virtualbox, para instalação do FreeNAS 9.3 e VMware ESXi 5.5
GNS3, para configuração do switch
update
Descobri que o GNS não consegue emular os switches da linha Catalyst, e uma série de funcionalidades, dentre elas, uma que usaremos, o LACP. Mas, calma. Isso no máximo vai inviabilizar de vermos o lab inteiro no mesmo computador. Os comandinhos estarão disponíveis para quem quiser implementar em hardware real, o Cisco Packet Tracer  ou o NetSim (que é pago).

Na vida real, se você for usar na sua empresa A SÉRIO, recomendo o uso de RAID 6 (no mínimo 4 discos) no FreeNAS. Um problema que deve ser levado em consideração, é que você vai perder discos importantes para o sistema operacional. Então, se você tiver um SSD de 8GB, será de grande valia. Imagine que você tem no seu servidor apenas 6 discos. Você vai perder pelo menos dois para a instalação do FreeNAS, o que é muito ruim quando se tem poucos discos. É possível também usar em um pendrive, A Kingston e a Patriot tem uns modelos bem pequenos, que dá pra espetar no fundo do servidor e esquecer lá.

Configuração de ativos

FreeNAS: 01 processador, 2GB de RAM (mas funciona com 512MB) , 4 interfaces de rede, 2 discos (5GB e 20GB)
ESXi: 02 processadores, 4GB de RAM, 3 interfaces de rede, 2 discos de 10GB

Endereçamento

VMware ESXi

vmnic0: Interface de gerenciamento - 172.29.1.1
vmnic1: iSCSI Mutipath 01 - 192.168.168.2
vmnic2: iSCSI Mutipath 02 - 192.168.168.3

FreeNAS

bge0: Interface de gerenciamento - 172.29.1.2
bge1: Interface 01 do lagg0
bge2: Interface 02 do lagg0
bge3: Interface 03 do lagg0
lagg0: Link aggregation - 192.168.168.1


Topologia

Topologia do projeto FreeNAS com LACP + ESXi com iSCSI Multipath

E é isso aí galerinha. No próximo post, vamos fazer a instalação do FreeNAS e configurar o LACP nas suas interfaces.
Até a próxima!

quarta-feira, 12 de agosto de 2015

Meus jovens, virtualização é um caminho sem volta, creio que todos sabem disso.
Virtualbox é bom, mas rarissimamente você verá em ambiente de produção.
VMware é o que tem de sobra por aí. Então, prepare-se, pois é o que tem de sobra no mercado.

Provavelmente os próximos laboratórios que forem postados aqui, serão utilizando VMware ESXi, e algumas (muitas) vezes utilizando o CentOS como sistema operacional. Nesses casos, saiba que a implementação foi feita no trabalho. Quando for openSUSE no Virtualbox, aí é laboratório feito em casa :)

Então, sem mais delongas, ao post:

Fazer o ESXi autenticar no Active Directory!

Sendo direto, o que iremos fazer é: Ingressar com o ESXi no Active Directory (chamaremos de AD), como uma máquina normal. Eu fiquei até espantado com a velocidade em que ele ingressa: 2 segundos (na minha rede). Raramente vejo um host windows ingressando com menos de 5 segundos. Aos passos:

Premissas:
O host deve estar com o DNS setado para o DNS do AD, como qualquer máquina. Geralmente é o mesmo servidor;
O NTP deve estar correto. Esse também geralmente é o mesmo do AD;
O Grupo ESX Admins DEVERÁ existir no seu AD, e nesse grupo, as contas que terão acesso ao hypervisor.

Após acessar o hypervisor, clique em Configuration e no grupo Software, clique em DNS and Routing
 Verifique se as configurações de nome e DNS estão de acordo. Essas informações serão usadas para criar o objeto dentro do AD.
 Caso não esteja, clique em Properties... e defina o domínio, servidor DNS preferencial e qual os domínios onde deverá ser feito o lookup.
Em seguida, ainda no grupo Software, clique em Authentication Services. No canto superior direito, clique em Properties..
 Altere o tipo de serviço de diretório (Select Directory Service Type) para Active Directory. Em Domain Settings, defina o domínio como o da sua empresa e clique em Join Domain.
E pronto! Seu hypervisor ingressou no domínio.
 Viu? Tá dentro!
 Configurações Adicionais
Se você precisa utilizar um grupo diferente, por exemplo, um grupo com permissões limitadas para executar tarefas dentro do hypervisor, você pode fazer seguinte:

Clique em Permissions
Clique com o botão direito na tela e selecione Add Permission...
Defina quais as permissões (Assigned Role) que serão atribuídas a esse grupo. Clique em Add...
 Em Domain, selecione o seu domínio...
...E coloque o nome de seu grupo no campo Search. Faça a busca e dê dois cliques no grupo. Depois, clique em OK.
 Verifique se está tudo ok. Se sim, clique em OK.
 Veja que o grupo do AD agora está com as permissões.


Em breve, mais posts sobre VMware ESXi. Aguardem o/

quinta-feira, 4 de junho de 2015

Também fez a cagada de colocar o teclado em inglês né? tsc tsc tsc...

Edite o arquivo /etc/sysconfig/keyboard. Esses são os parâmetros:


KEYTABLE="br-abnt2"
MODEL="abnt2"
LAYOUT="br"
KEYBOARDTYPE="pc"

E mais cuidado na próxima champs!

quinta-feira, 21 de maio de 2015

Situação

Máquina Windows XP clonada pelo VMware Converter.
Esta, mesmo após a instalação do VMware Tools, apresenta lentidão no ponteiro do mouse e também não funciona a integração com a área de trabalho, sendo necessário pressionar crtl + alt para soltar o mouse.

Solução

Abra o gerenciador de dispositivos, e verifique que o driver do mouse é o PS/2 Compatible Mouse.

Clique com o botão direito sobre ele e mande atualizar.
Ele deverá instalar o VMware Pointing Device.


E só. Bjs.

terça-feira, 12 de maio de 2015

Queridos! Sim, estou sumido, mas é por conta de que estava trabalhando com outras ferramentas, mas voltei para o querido mundo Linux. Então, vamos voltar as nossas postagens sempre que possível, beleza? Então, segue o enterro :)

Situação

Estamos testando uma ferramenta, e foi necessário levantar algumas máquinas Linux. Criei 40 máquinas virtuais usando o CentOS (openSUSE me perdoe, mas a instalação do CentOS é muito rápida), e em determinado momento, foi identificado que o firewall dessas máquinas deveria ser desabilitado, além de que, era preciso colocar o nome das máquinas no arquivo /etc/hosts.

Problema

Acessar as máquinas remotamente e executar os comandos:
echo "127.0.0.1 $(hostname).intranet.cliente.br" >> /etc/hosts
chkconfig iptables off
iptables -F

Solução

Que eu teria de usar o ssh não era novidade, mas o problema é ter de passar a senha, isso seria desgastante. Eu precisava de uma forma de fazer essa entrada automaticamente. Me veio na cabeça o expect, mas esse cara nunca funcionou direito comigo (mesmo seguindo a risca cada tutorial).
Me bati com o sshpass pela webs, que resolveu minha vida (nesse momento e futuramente quando surgir a necessidade!)
Segue o comando:

for i in $(seq 10 1 54); do \
sshpass -p MinhaSenha ssh -oScrictHostKeyChecking=no 10.0.1.$i 'echo 127.0.0.1 $(hostname).intranet.cliente.br >> /etc/hosts'; done

Explico o necessário

O laço é por conta de que as máquinas estão do endereço IP 10.0.1.10 até o 10.0.1.54, conforme setado no escopo do dhcp. Como somente o último octeto varia, eu fiz um for que incrementa de um em um, começando do 10 e indo até o 54.

O sshpass vai passar a senha para o ssh quando for solicitado, mas só isso não resolve nosso problema, já que o ssh quando acessa uma máquina em que ainda não aceitou suas chaves, vai questionar isso pelo terminal. É aí que entra as opções do -o. Usando o parâmetro -oScrictHostKeyChecking=no, eu digo que ele não deve verificar as chaves naquele momento, e, daí pra frente, é só seguir com os comandos.

O echo 127.0.0.1 $(hostname).intranet.cliente.br >> /etc/hosts eu acho que ficou bem auto-explicativo, mas, pra quem não entendeu, eu estou adicionando no arquivo de hosts, o nome da máquina + o domínio.


Creio que não é necessário explicar o chkconfig iptables off (desabilitar o serviço iptables) e o iptables -F (limpar as regras do iptables) dentro do laço.
Então é isso galera. Essa linha me ajudou PRACARALHO e vai me ajudar muito quando for preciso acessar máquinas remotamente.

Observações

No meu caso, funcionou de maneira simples por conta de que as senhas das máquinas estão iguais. Mas, nada impede de que você tenha um .csv ou até mesmo uma lista com login e senha, e daí o seu script/one-liner cate cada parâmetro e encaminhe para o sshpass e o ssh. Tudo vai de sua imaginação e habilidade.

Posts populares