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.

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.

O OTRS é uma ferramenta de service desk, muito boa por sinal. Estou fazendo alguns testes com ela em minha rede, para substituir o GLPI. Sei que o GLPI é muito bom, mas o acho muito feio e o designer que tinha, já saiu. Então, me resta utilizar algo pronto e bonito :)
Enfim, vamos as configurações:

As configurações do OTRS devem ser feitas diretamente no arquivo Config.pm, que fica dentro do diretório /opt/otrs/Kernel, caso você instale por meio de um pacote .rpm - até recomendo, simplifica e agiliza em muito, até na hora de atualizar as versões.

Então, segue o meu arquivo de configuração:

#Enable LDAP authentication for Customers / Users
  $Self->{'Customer::AuthModule'} = 'Kernel::System::CustomerAuth::LDAP';
  $Self->{'Customer::AuthModule::LDAP::Host'} = 'winad01.linux.local';
  $Self->{'Customer::AuthModule::LDAP::BaseDN'} = 'DC=linux,DC=local';
  $Self->{'Customer::AuthModule::LDAP::UID'} = 'sAMAccountName';
  $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = 'CN=otrs,OU=services,DC=linux,DC=local';
  $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = 'SeuPassword?';
    # CustomerUser
    # (customer user ldap backend and settings)
    $Self->{CustomerUser} = {
        Name => 'LDAP Data Source',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {
            # ldap host
            Host => 'winad01.linux.local',
            # ldap base dn
            BaseDN => 'dc=linux, dc=local',
            # search scope (one|sub)
            SSCOPE => 'sub',
            UserDN => 'CN=otrs,OU=services,DC=linux,DC=local',
            UserPw => 'SeuPassword?',
            AlwaysFilter => '(&(objectClass=user)(objectCategory=person))',
            SourceCharset => 'utf-8',
            DestCharset   => 'utf-8',
            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP)
            Params => {
#               port => 389,
                port => 3268,
                timeout => 120,
                async => 0,
                version => 3,
            },
        },
                ReadOnly => 1,
                # customer unique id
        CustomerKey => 'sAMAccountName',
        # customer #
        CustomerID => 'mail',
        CustomerUserListFields => ['cn', 'mail'],
        CustomerUserSearchFields => ['cn', 'givenname', 'mail'],
        CustomerUserSearchPrefix => '',
        CustomerUserSearchSuffix => '*',
        CustomerUserSearchListLimit => 250,
        CustomerUserPostMasterSearchFields => ['mail'],
        CustomerUserNameFields => ['givenname', 'sn'],
        # show not own tickets in customer panel, CompanyTickets
        CustomerUserExcludePrimaryCustomerID => 0,
        # add an ldap filter for valid users (expert setting)
#       CustomerUserValidFilter => '(!(description=locked))',
        # administrator can't change customer preferences
        AdminSetPreferences => 0,
#        # cache time to live in sec. - cache any database queries
        CacheTTL => 120,
  Map => [
            # note: Login, Email and CustomerID are mandatory!
            # if you need additional attributes from AD, just map them here.
            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly
#            [ 'UserSalutation', 'Title',      'title',           1, 0, 'var', '', 0 ],
            [ 'UserFirstname',  'Firstname',   'givenname',       1, 1, 'var', '', 0 ],
            [ 'UserLastname',   'Lastname',    'sn',              1, 1, 'var', '', 0 ],
            [ 'UserLogin',      'Username',    'sAMAccountName',             1, 1, 'var', '', 0 ],
            [ 'UserEmail',      'Email',       'mail',            1, 1, 'var', '', 0 ],
            [ 'UserCustomerID', 'CustomerID',  'sAMAccountName',            0, 1, 'var', '', 0 ],
#            [ 'UserCustomerIDs', 'CustomerIDs', 'second_customer_ids', 1, 0, 'var', '', 0 ],
            [ 'UserPhone',      'Phone',      'telephoneNumber', 1, 0, 'var', '', 0 ],
#            [ 'UserAddress',    'Address',    'postaladdress',   1, 0, 'var', '', 0 ],
#            [ 'UserComment',    'Comment',    'description',     1, 0, 'var', '', 0 ],
            [ 'UserMobile',     'Mobile',      'mobile', 1, 0, 'var', '', 0 ],
            [ 'UserRoom',       'Room',        'physicalDeliveryOfficeName', 1, 0, 'var', '', 0 ],
        ],
    };
No nosso exemplo:
linux.local: Nosso domínio
winad01.linux.local: endereço do Active Directory

Esse é exatamente meu arquivo de configuração, que autentica em um controlador de domínio Windows Server 2012 R2, que não aceita conexões anônimas por padrão.
Um detalhe que percebi é que ele se conecta a porta 3268, diferente da 389 do LDAP. A porta 3268 é a do Global Catalog Search Base. Para maiores informações, leiam aqui: http://technet.microsoft.com/en-us/library/cc978012.aspx

Até a próxima :)
 Esse é um problema raro, mas as vezes acontece. Aconteceu agora comigo. Explico:

Sou usuário da rede da PRODEB-BA (empresa de dados do Estado da Bahia), e, como estou dentro dela, recomenda-se que utilizemos os seus servidores de DNS como forwarder, pois alguns endereços não são publicados para fora de sua rede (ex: fiplan.ba.gov.br e etc.). De uma hora pra outra, não consegui mais acessar o site da bendita PRODEB. Entrei em contato com eles e disseram que o problema é comigo.
Ok. Depois de muito funçar, alterei o meu forwarder (encaminhador) para um endereço do DNS do Google - e funcionou!

Então, para que esse problema seja resolvido, faremos o seguinte:

Para o domínio prodeb.ba.gov.br, use os DNS 8.8.8.8 e 8.8.4.4



E para os outros domínios, use o forwarder da PRODEB:




Uma das grandes vantagens de se utilizar o Zabbix, é as suas infinitas possibilidades de expansão. O shellscript é um grande aliado na coleta de informações, visto que qualquer informação que você possa obter com o shellscript, ela pode ser jogada no Zabbix. 

Nesse post, vamos mostrar por etapas como consultar dentro da base de dados do GLPI, o número de tickets fechados no mês e jogar essas informações no Zabbix, e gerar também gráficos, porque chefe gosta é de gráfico! :D


Vamos dividir esse tutorial em:
1. Banco de dados
1.1 Criação de usuário no banco
1.2 Criação do select
2. Shell Script
2.1 Criação do script
2.2 Teste de script
3. Configuração do Zabbix
3.1 Inserção do shell script
3.2 Criação do template
3.2.1 Criação do item
3.2.2 Criação do gráfico

Read More
A algum tempo estou utilizando o Zabbix lá na empresa e com o passar do tempo, alguns problemas vieram aparecendo no servidor, como por exemplo:
  • Zabbix busy unreachable poller process
  • zabbix icmp pinger processes more than 75 busy
No momento 1, alteramos o parâmetros para o icmp pinger, e no momento 2 alteramos os parâmetros para o unreachable poller process. Veja no gráfico como a melhora é imediata.

Read More
Sem muitas delongas:

Aplique esse comando diretamente no banco do Zabbix

update zabbix.users set passwd=md5('mynewpassword') where alias='Admin';
São tempos difíceis. Não dá mais pra confiar na infraestrutura dos serviços web pois eles fornecem seus dados a quem não deveria. Nada mais confortável do que você manter seus dados dentro de casa, não é verdade? Certa vez eu quis fazer isso, mas sempre dava zica! Dessa vez, com um repositório pro Node.js, ficou bem mais fácil a resolver as pendengas que surgiram da primeira vez. Thanks bro!


Mas, o que é o Etherpad?


É um serviço que até o nosso governo brasileiro usa: http://notas.dados.gov.br/notas/
Não ajudou muito né? :D
Bom, é um serviço de edição de notas online, em que várias pessoas podem editar um documento simultaneamente. O Google Docs tem essa funcionalidade também, porém não dá pra rodar o Google Docs dentro de sua infraestrutura. #PrivacidadeFail.

Read More
Vazamento de energia inter-universos pode revelar mundos paralelos: Ninguém menos do que o Nobel de Física Frank Wilczek quer testar a existência de múltiplos universos, a famosa teoria dos multiversos.