linux – Blog do Vieira
Taglinux
maio 8, 2017 / José Vieira / 0 Comments
Olá pessoal! Esse post foi criado, vendo a necessidade de muitas vezes após realizar uma nova instalação do RHEL/CentOS ter que alterar a configuração de endereçamento da interface de rede de DHCP para estático, ou vice-versa.
Iremos alterar o arquivo de configuração da interface de rede que pretendemos ajustar as configurações. Vamos utilizar o comando "ifconfig" para listar a devida interface de rede.
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.15 netmask 255.255.255.0 broadcast 10.151.53.255
inet6 fe80::a00:27ff:fe04:dfb7 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:04:df:b7 txqueuelen 1000 (Ethernet)
RX packets 12078 bytes 10297389 (9.8 MiB)
TX packets 7143 bytes 556064 (543.0 KiB)
loop txqueuelen 1 (Loopback Local)
Neste caso irei utilizar a interface "enp0s3", então vamos alterar o arquivo "/etc/sysconfig/network-scripts/ifcfg-enp0s3"
# vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
HWADDR=08:00:27:04:DF:B7
UUID=dbff828b-f8ac-4052-872f-cc8f1a02679a
IPADDR=10.10.10.15
As linhas de IPv6 (IPV6INIT, IPV6_AUTOCONF, IPV6_DEFROUTE, IPV6_PEERDNS, IPV6_PEERROUTES, IPV6_FAILURE_FATAL) foram comentadas pois não irei utilizar endereçamento IPv6. A linha "BOOTPROTO=dhcp" foi comentada e criada uma nova entrada "BOOTPROTO=" com o valor "static" (também pode ser utilizado o valor none) para informarmos que a interface irá utilizar endereçamento estático, sendo necessário adicionar as respectivas linhas "IPADDR", "NETMASK" e "GATEWAY".
Feito isso salve o arquivo e reinicie o serviço de rede
No RHEL/CentOS 6.x
No RHEL/CentOS 7.x
Para reiniciar somente a interface de rede
# ifdown enp0s3 && ifup enp0s3
Caso ocorra algum erro para resolução de nomes de domínio, adicione os servidores DNS da sua empresa ou o de sua preferência no arquivo "resolv.conf" conforme abaixo.
nameserver 10.10.10.1
nameserver 10.10.10.2
Pronto! Dessa forma temos nosso IP configurado de forma estática, caso queira alterar para DHCP, basta reverter o processo.
Olá pessoal! Este tutorial irá mostrar maneiras fáceis de realizar o backup e restaurar os dados em seu banco de dados MySQL.
Realizando backup do terminal utilizando o mysqldump
Iremos utilizar o comando "mysqldump" para realizar o backup dos dados do MySQL. Este comando se conecta ao servidor MySQL e cria um arquivo de despejo do SQL. O arquivo de despejo contém as instruções SQL necessárias para recriar o banco de dados. Veja abaixo a sintaxe utilizada:
$ mysqldump -u [usuario] -p[senha] [dbname] > [backupfile.sql]
[usuario] Usuário do banco de dados
[senha] A senha do usuário do banco de dados (não há espaço entre "-p" e a senha)
[dbname] O nome do banco de dados
[backupfile.sql] O nome do backup do banco de dados
Por exemplo, para fazer o backup do banco de dados "teste" com usuário "root" para um arquivo "teste_bkp.sql", você poderá utilizar o comando abaixo:
$ mysqldump -u root -p teste > teste_bkp.sql
Este comando irá fazer backup do banco de dados "teste" em um arquivo chamado "teste_bkp.sql" que conterá todas as instruções SQL necessárias para recriar o banco de dados.
Com o comando mysqldump você pode especificar determinadas tabelas do banco de dados que deseja fazer backup. Por exemplo, para fazer backup somente de tabelas php_teste e asp_teste da base de dados "teste" realize o comando abaixo. Cada nome de tabela tem de ser separado por espaço.
$ mysqldump -u root -p teste php_teste asp_teste > teste_bkp.sql
Às vezes, é necessário fazer backup de mais de um banco de dados ao mesmo tempo. Neste caso, você pode usar a opção " — databases" seguida pela lista de bancos de dados que você gostaria de fazer backup. Cada nome de banco de dados deve ser separado por espaço.
$ mysqldump -u root -p --databases teste tutoriais artigos > bancos_bkp.sql
Se você quiser fazer backup de todos os bancos de dados no servidor ao mesmo tempo, use a opção " — all-databases". Ele diz ao MySQL para realizar o dump de todos os bancos de dados existentes para o destino.
$ mysqldump -u root -p --all-databases > todosbancos_bkp.sql
O comando mysqldump tem também algumas outras opções úteis:
— add-drop-table: Diz ao MySQL para adicionar uma instrução DROP TABLE antes de cada CREATE TABLE no dump.
— no-data: Realiza o dump somente da estrutura do banco de dados, não o conteúdo.
— add-locks: Adiciona as instruções LOCK TABLES e UNLOCK TABLES que você pode ver no arquivo de dump.
O comando mysqldump tem vantagens e desvantagens. As vantagens de usar mysqldump são que é simples de usar e cuida de questões de bloqueio de tabela para você. A desvantagem é que o comando bloqueia tabelas. Se o tamanho das suas tabelas é muito grande mysqldump pode bloquear os usuários por um longo período de tempo.
Realizando backup do banco de dados com compactação
Se o seu banco de dados mysql é muito grande, você pode querer compactar a saída do mysqldump. Basta usar o comando de backup mysql abaixo e canalizar a saída para gzip, então você terá a saída como arquivo gzip.
$ mysqldump -u [usuario] -p[senha] [dbname] | gzip -9 > [backupfile.sql.gz]
Se você quiser extrair o arquivo .gz, use o comando abaixo:
Realizando restore do banco de dados
Acima realizamos o backup do banco de dados "teste" no arquivo "teste_bkp.sql". Para recriar o banco de dados "teste" você deve seguir duas etapas:
Crie um banco de dados com o mesmo nome na máquina de destino
Carregue o arquivo usando o comando mysql:
$ mysql -u root -p teste < teste_bkp.sql
Para restaurar arquivos de backup compactados, você pode fazer o seguinte:
$ gunzip < [backupfile.sql.gz] | mysql -u [usuario] -p[senha] [dbname]
Se você precisar restaurar um banco de dados que já existe, você precisará usar o comando mysqlimport. A sintaxe para mysqlimport é a seguinte:
$ mysqlimport -u [usuario] -p[senha] [dbname] [backupfile.sql]
Se você precisar restaurar todos os bancos de dados, segue abaixo a sintaxe. Para esse comando, os bancos de dados precisam existir ou o script "todosbancos_bkp.sql" precisa conter os parâmetros CREATE DATABASE para os bancos de dados.
$ mysql -u root -p < todosbancos_bkp.sql
abril 27, 2017 / José Vieira / 0 Comments
Esse post foi criado com a intenção de documentar um passo-a-passo para criar, remover e alterar LV's (Logical Volumes) em servidores e estações GNU/Linux
1. Criando partição LVM
Vamos localizar o disco de 50 GB adicionado recentemente à VM
root@vm-testes:~# fdisk -l
Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Vamos utilizar o disco "/dev/sdb" como exemplo
root@vm-testes:~# fdisk /dev/sdb
Vamos criar uma nova partição
Escolha o tipo de partição
Utilizando o sistema de particionamento MBR, somente é possível as quatro primeiras partições de um disco serem primárias.
Esta será a primeira partição
O fdisk agora pergunta qual setor a partição deverá iniciar e em Agora o fdisk me pergunta em qual setor essa partição deve começar e em seguida o último setor, definindo o tamanho, como iremos utilizar todo o disco vamos escolher as opções "default" com a tecla ENTER.
Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599):
Created a new partition 1 of type 'Linux' and of size 50 GiB.
Vamos listar as partições
Disk /dev/sdb: 64.4 GB, 64424509440 bytes
Disk identifier: 0xe61fc21b
/dev/sdb1 2048 125829119 62913536 83 Linux
Vamos escolher o tipo da partição
Vamos gravar as alterações no disco
Vamos listar agora a tabela de partições do disco "/dev/sdb" e veja a criação da partição "/dev/sdb1"
root@vm-testes:~# fdisk -l /dev/sdb
Disk identifier: 0x5673f5b0
Dispositivo Inicializar Start Fim Setores Size Id Tipo
/dev/sdb1 2048 104857599 104855552 50G 8e Linux LVM
2. Criando PV (Physical Volume)
Após criarmos uma partição LVM, vamos criar um PV
root@vm-testes:~# pvcreate /dev/sdb1
Vamos escanear os PVs e perceba que o "/dev/sdb1" foi criado conforme exibe abaixo.
root@vm-testes:~# pvscan
PV /dev/sda5 VG ubuntu-testvm-vg lvm2 [24,52 GiB / 32,00 MiB free]
PV /dev/sdb1 lvm2 [50,00 GiB]
Total: 2 [74,52 GiB] / in use: 1 [24,52 GiB] / in no VG: 1 [50,00 GiB]
Para maiores detalhes do PV criado utilize o comando "pvdisplay"
root@vm-testes:~# pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "50,00 GiB"
PV Size 50,00 GiB
PV UUID spINyj-nfj0-J3Tb-oprJ-ExVl-WSlO-DkVqk3
3. Criando um VG (Volume Group)
Vamos criar o VG de exemplo "vg-teste" conforme abaixo
root@vm-testes:~# vgcreate vg-teste /dev/sdb1
Volume group "vg-teste" successfully created
Vamos escanear os VGs e perceba que o "vg-teste" foi criado conforme exibe abaixo.
root@vm-testes:~# vgscan
Found volume group "vg-teste" using metadata type lvm2
Found volume group "ubuntu-testvm-vg" using metadata type lvm2
Para maiores detalhes do VG criado utilize o comando "vgdisplay"
root@vm-testes:~# vgdisplay vg-teste
VG Name vg-teste
VG Size 50,00 GiB
Total PE 12799
Free PE / Size 12799 / 50,00 GiB
VG UUID eZ2jyt-A8tb-e1Lo-bLhn-VYcG-H8qF-ClDMco
4. Adicionando PV (Physical Volume) ao VG (Volume Group)
Vamos adicionar o PV "/dev/sdc1" ao VG "vg-teste" usando o "vgextend" conforme abaixo
root@vm-testes:~# vgextend vg-teste /dev/sdc1
Volume group "vg-teste" successfully extended
5. Criando LV (Logical Volume)
Vamos criar agora o LV "lvubuntu" no VG "vg-teste"
root@vm-testes:~# lvcreate --name lvubuntu --size 40G vg-teste
Ou para criar com 100% do espaço livre do VG
root@vm-testes:~# lvcreate -l 100%FREE -n lvubuntu vg-teste
Logical volume "lvubuntu" created.
Vamos escanear os LVs e perceba que o "lvubuntu" foi criado conforme exibe abaixo.
root@vm-testes:~# lvscan
ACTIVE '/dev/vg-teste/lvubuntu' [40,00 GiB] inherit
ACTIVE '/dev/ubuntu-testvm-vg/root' [23,74 GiB] inherit
ACTIVE '/dev/ubuntu-testvm-vg/swap_1' [764,00 MiB] inherit
Para maiores detalhes do LV criado no "vg-teste" utilize o comando "lvdisplay"
root@vm-testes:~# lvdisplay vg-teste
LV Path /dev/vg-teste/lvubuntu
LV Name lvubuntu
LV UUID C8vdEw-oDV3-MfN4-Lb0V-azZa-Mhhe-X2e9rc
LV Creation host, time web, 2016-08-10 10:46:51 -0300
LV Size 40,00 GiB
6. Formatando a partição LVM
Vamos agora formatar a partição LVM
root@vm-testes:~# mkfs.ext4 /dev/mapper/vg--teste-lvubuntu
Creating filesystem with 10485760 4k blocks and 2621440 inodes
Filesystem UUID: aa2a4d29-554d-4dea-9ce8-bacec86a6b5f
Cópias de segurança de superblocos gravadas em blocos:
Allocating group tables: pronto
Gravando tabelas inode: pronto
Creating journal (32768 blocks): concluído
Escrevendo superblocos e informações de contabilidade de sistema de arquivos: concluído
7. Montando a partição LVM
Vamos criar o diretório que a partição será montada e realizar a montagem
root@vm-testes:~# mkdir -p /dados/lvubuntu
root@vm-testes:~# mount /dev/mapper/vg--teste-lvubuntu /dados/lvubuntu/
8. Configurando fstab
Vamos utilizar o "blkid" para listar o "UUID" da partição
root@vm-testes:~# blkid | grep "lvubuntu"
/dev/mapper/vg--teste-lvubuntu: UUID="aa2a4d29-554d-4dea-9ce8-bacec86a6b5f" TYPE="ext4"
Vamos adicionar a linha abaixo como uma entrada no arquivo "/etc/fstab"
root@vm-testes:~# vim /etc/fstab
UUID=aa2a4d29-554d-4dea-9ce8-bacec86a6b5f /dados/lvubuntu ext4 defaults 0 1
9. Expandindo o LV (Logical Volume)
Vamos desmontar o LV que será estendido
root@vm-testes:~# umount /dados/lvubuntu
Vamos estender o LV com mais 5 GB
root@vm-testes:~# lvextend -L +5GB /dev/mapper/vg--teste-lvubuntu
Size of logical volume vg-teste/lvubuntu changed from 40,00 GiB (10240 extents) to 45,00 GiB (11520 extents).
Logical volume lvubuntu successfully resized.
Vamos verificar o LV executando o "e2fsck"
root@vm-testes:~# e2fsck -f /dev/mapper/vg--teste-lvubuntu
Passo 1: Verificando inodes, blocks, e os tamanhos.
Passo 2: Verificando estrutura directory
Passo 3: Checando conectividade com o directory
Passo 4: Checando contagens de referência
Passo 5: Procurando informações de resumo group
/dev/mapper/vg--teste-lvubuntu: 11/2621440 files (0.0% non-contiguous), 209554/10485760 blocks
Vamos agora redimensionar a partição
root@vm-testes:~# resize2fs -p /dev/mapper/vg--teste-lvubuntu
Resizing the filesystem on /dev/mapper/vg--teste-lvubuntu to 11796480 (4k) blocks.
The filesystem on /dev/mapper/vg--teste-lvubuntu is now 11796480 (4k) blocks long.
Vamos novamente executar o "e2fsck", porém agora para verificar a partição redimensionada.
/dev/mapper/vg--teste-lvubuntu: 11/2949120 files (0.0% non-contiguous), 231139/11796480 blocks
Vamos montar novamente a partição
Vamos checar o tamanho da nova partição montada
root@vm-testes:~# df -kh /dev/mapper/vg--teste-lvubuntu
/dev/mapper/vg--teste-lvubuntu 45G 52M 42G 1% /dados/lvubuntu
10. Diminuindo o LV (Logical Volume)
Vamos desmontar o LV que será reduzido
Vamos verificar a partição "/dev/mapper/vg–teste-lvubuntu" primeiramente
Vamos reduzir o tamanho da partição para 40 GB
root@vm-testes:~# resize2fs -p /dev/mapper/vg--teste-lvubuntu 40G
Resizing the filesystem on /dev/mapper/vg--teste-lvubuntu to 10485760 (4k) blocks.
Iniciar passo 3 (máximo = 360)
Varrendo tabela de inodes XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/mapper/vg--teste-lvubuntu is now 10485760 (4k) blocks long.
Vamos agora reduzir o tamanho do LV para 40 GB e confirmar com "y"
root@vm-testes:~# lvreduce -L 40G /dev/mapper/vg--teste-lvubuntu
WARNING: Reducing active logical volume to 40,00 GiB
Do you really want to reduce lvubuntu? [y/n]: y
Size of logical volume vg-teste/lvubuntu changed from 45,00 GiB (11520 extents) to 40,00 GiB (10240 extents).
Vamos verificar a partição "/dev/mapper/vg–teste-lvubuntu" novamente
Vamos montar a partição novamente
root@vm-testes:~# mount /dados/lvubuntu
11. Removendo um PV (Phisical Volume)
Para remover o disco do VG, utilize o comando abaixo
root@vm-testes:~# vgreduce vg-teste /dev/sdb1
Para remover um disco PV
root@vm-testes:~# pvremove /dev/sdb1
setembro 17, 2016 / José Vieira / 0 Comments
setembro 4, 2016 / José Vieira / 0 Comments
Podemos utilizar o comando "crontab -e" para editar a tabela de agendamentos do cron do usuário ou editar o arquivo "/etc/crontab" com um editor de texto.
Segue abaixo a sintaxe utilizada:
[MINUTOS] [HORAS] [DIAS DO MÊS] [MÊS] [DIAS DA SEMANA] [USUÁRIO] [COMANDO]
O valor de cada campo:
MINUTOS: (0 a 59);
HORAS: (0 a 23);
DIAS DO MÊS: (1 a 31);
MÊS: (1 a 12 -> Janeiro à Dezembro);
DIAS DA SEMANA: (0 a 7 -> Domingo à Sábado, 0 e 7 equivalem ao Domingo);
USUÁRIO: usuário que vai executar o comando (não precisa ser informado no uso do comando "crontab -e");
COMANDO: comando que será executado
Podemos utilizar as 3 primeiras letras dos dias da semana em inglês (SUN,MON,TUE,WED,THU,FRI,SAT);
Podemos utilizar o "asterisco" (*), especificando que o valor não será relevante;
Podemos utilizar o "hífen" (-), especificando que será utilizado um intervalo entre os valores;
Podemos utilizar a "vírgula" (,), especificando que será utilizada uma lista de valores;
Podemos inserir comentários após o campo comando ou com o "cerquilha" (#) no início da linha;
Seguem abaixo um exemplo de agendamento realizado pela crontab:
# Limpeza do diretório Público
00 00 * * 6 /bin/rm -rf /dados/Publico/* >/dev/null 2>&1
No exemplo acima, o comando "/bin/rm -rf /dados/Publico/* >/dev/null 2>&1" é executado às 00 horas e 00 minutos, toda sexta-feira, em todos os meses e em todos os dias do mês. A primeira linha está comentada.
abril 13, 2016 / José Vieira / 0 Comments
O Teledeploy é uma ferramenta do OCS Inventory NG para deployment de pacotes, por isso vamos precisar do uso de certificados digitais e SSL para validar o servidor antes de tentar fazer o download dos pacotes. Para entender um pouco mais do uso de certificados digitais e SSL no apache, pode ser utilizado o post anterior clicando aqui.
Vamos adicionar o vitualhost abaixo (para uso das configurações ssl, configurações do php para envio de arquivos através do "Teledeploy" e configurações do diretório /download) no nosso arquivo de configurações "/etc/httpd/conf.d/ocsinventory-reports.conf".
SSLCertificateFile /etc/pki/tls/certs/ca/inventario.crt
SSLCertificateKeyFile /etc/pki/tls/private/inventario.key
ServerName   ocsvm01
ServerAlias  ocsvm01.home.local
DocumentRoot /usr/share/ocsinventory-reports/ocsreports
php_value post_max_size         51M
php_value upload_max_filesize   50M
<Directory /var/lib/ocsinventory-reports/download>
Vamos liberar o acesso ao apache na porta 443 pelo iptables
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
Existem três formas de criação de pacotes: STORE, EXECUTE e LAUNCH. Cada uma delas tem um comportamento diferente, o STORE faz o download de um arquivo e armazena em um diretório, o EXECUTE tanto executa um comando como um programa com um comando, e o LAUNCH faz o download de um arquivo, descompacta, e em seguida, executa a sua instalação. Para criar o pacote, é necessário o usuário "apache" ter acesso de gravação para a pasta "/var/lib/ocsinventory-reports/download/".
Antes de tudo, iremos definir alguns ajustes de configuração do "Deployment server" e "Redistribution Servers".
Vamos entrar na interface Web do OCS Inventory, selecionar o ícone "Config", opção "Config", e clicar na aba "Deployment". Iremos alterar as opções DOWNLOAD de OFF para ON (habilitar a função de distribuição automatica do deploy), nos campos DOWNLOAD_URI_FRAG e DOWNLOAD_URI_INFO iremos definir o nome do nosso servidor e clicar em UPDATE conforme a imagem abaixo:
Ainda nas configurações do servidor vá para a aba "Redistribution Servers" e altere a opção DOWNLOAD_REDISTRIB de ON para OFF e clicar em UPDATE(desabilitar a função de servidores de redistribuição, pois os pacotes somente serão utilizados pelo nosso "Deployment Server")
Então… vamos criar um primeiro pacote:
Vamos novamente entrar na interface Web do OCS Inventory, selecionar o ícone "Deployment" e "Build" para a criação do pacote.
Devemos atribuir um nome para o pacote, Descrição do pacote, Plataforma, Protocolo e Prioridade (opção que vai priorizar a ordem de execução do pacote no cliente, o menor terá a maior prioridade). Na hora de fazer upload de arquivos e programas, é necessário comprimir em .zip ou .tar.gz antes. Vamos escolher uma ação (podemos usar variáveis do sistema, como %SYSTEMDRIVE%, %TEMP%, %USERPROFILE%, %PROGRAMFILES%, etc) para armazenar o arquivo ou comando a ser executado. É possível escolher se queremos que o usuário seja avisado sobre a execução do pacote, e até mesmo para permitir ao usuário para atrasar a execução (útil para implantações de pacote de serviço, etc).
A próxima etapa vai nos permitir criar os fragmentos (quantidade de partes que o pacote será dividido para permitir uma melhor implementação, para em caso de erros, realizar apenas o download dos fragmentos com falha novamente, etc), bem como a soma de verificação para validade dos dados.
Seu pacote será criado em seguida em "/var/lib/ocsinventory-reports/download/#Pkgid#".
Ativando um pacote
Quando criamos o pacote, é criado um arquivo "info" (com informações das ações do pacote) e os fragmentos de pacotes, podemos tê-los somente em um servidor ou dividir entre diferentes servidores (Redistribution Servers) tendo que especificar onde está localizado cada pacote antes de usá-lo em nossas máquinas. Este processo é chamado de "ativação".
Ainda na interface Web do OCS Inventory, vamos selecionar o ícone "Deployment" e "Activate", para a ativação do pacote desejado.
Será exibida uma lista com os pacotes criados e prontos para ativação, vamos clicar no ícone ativar do pacote que iremos realizar a ativação (você pode observar que é criado um hiperlink sobre o nome dos pacotes que já estão ativados).
Após clicar em ativar vamos verificar se os campos "Fragments url" e Https url" estão configurados conforme definimos acima, vamos clicar em "Enable this alteration" e o pacote agora está criado e ativado!
Aplicando pacotes nos computadores
Nessa etapa podemos aplicar pacotes selecionando um (com a exibição de propriedades do computador, selecionando o ícone de personalização e adicionando o pacote) ou vários computadores. A melhor forma é aplicar os pacotes usando a busca avançada.
O certificado "cacert.pem" que foi gerado através da CA, deverá estar presente no diretório do agente do OCS Inventory NG no Windows (geralmente em "C:\Program Files\OCS Inventory Agent") e no Linux (/etc/ocsinventory-client). Desconsidere isso no caso em que o certificado tenha sido anexado no "OcsPackage.exe".
No exemplo abaixo, vamos através da busca avançada aplicar os pacotes em todos computadores Windows
A busca irá retornar apenas os itens que correspondem com a requisição
Podemos selecionar apenas alguns computadores que foram encontrados, como podemos aplicar os pacotes para todo o resultado da busca. Para isso, basta clicar em "deploy", escolher o pacote desejado e clicar em "Update".
Note que o status do pacote irá ficar como WAITING NOTIFICATION até o agente conectar novamente ao Communication Server.
Seguem abaixo alguns exemplos de STATUS do pacote
WAITING NOTIFICATION Server is waiting for agent communication to notify there is something to download.
NOTIFIED Agent has been notified there is something to download. Now server waiting for result code.
SUCCESS Agent has successfully download package and launch command or stored extracted data. With "Launch" action, this status may be completed with command execution return code. (return code 0).
ERR_EXIT_CODE_xxx Agent has successfully download package, BUT command of execution or data store associated terminated in error (return code xxx).
ERR_ALREADY_SETUP Package was previously installed successfully on this computer.
ERR_BAD_ID Agent is unable to download package because it cannot find package ID on deployment server.
ERR_BAD_DIGEST Downloaded data are has bad digest, so agent does not execute associated command.
ERR_DOWNLOAD_INFO Agent was unable to download INFO file associated to the package.
ERR_DOWNLOAD_PACK Agent was unable to download ZIP or TAR.GZ file.
ERR_BUILD Agent was unable to rebuild package fragments.
ERR_UNZIP Agent was unable to uncompress downloaded ZIP or TAR.GZ file.
ERR_OUT_OF_SPACE There is not enought space available on disk to uncompress and execute ZIP or TAR.GZ package.
ERR_BAD_PARAM A INFO file parameter of the package is incorrect.
ERR_EXECUTE_PACK Any execution command is specified in INFO file of package.
ERR_EXECUTE Agent was unable to execute associated package command.
ERR_CLEAN Agent was unable to clean downloaded package.
ERR_DONE_FAILED Agent can't retrieve execution result in package cache (cache is used to store result if the server is not responding at the end of package execution).
ERR_TIMEOUT Agent was unable to download package during DOWNLOAD_TIMEOUT days.
ERR_ABORTED User canceled package command execution (you've choosen to notify him, and allowed him to cancel).
Wiki OCS Inventory NG
abril 11, 2016 / José Vieira / 0 Comments
Utilizando o OCS Packager
março 10, 2016 / José Vieira / 0 Comments
Bom galera, o OCS Packager é uma ferramenta feita para preparar pacotes de instalação automatizada do OCS Inventory Agent para o windows. Ele é uma maneira mais rápida de instalar e implementar o OCS Inventory Agent em computadores, baseado em script NSIS (ferramenta que permite aos programadores criar tais instaladores para Windows) e RemCom tool (ferramenta que permite executar comandos em sistemas MS Windows remotos).
O Funcionamento do OCS Packager é simples, ele gera um arquivo "ocspackage.exe" com base nos parâmetros que você determina, permitindo em um clique, uma instalação em silent mode, etc. Utilizado com o "OcsLogon" fará um serviço de implantação muito rápido, fácil e útil no MS Windows (será assunto para outro post).
Algumas opções de comando para o OCS Inventory NG Agent:
/S – executa o instalador em silent mode (sem interação do usuário);
/NOSPLASH – desabilita a tela inicial do instalador;
/UPGRADE – implementa um novo agente através do recurso de deployment do OCS;
/NO_SERVICE – não registra o OCS Inventory NG Agent no gerenciador de serviços do Windows;
/NO_SYSTRAY – não cria um ícone ao lado do relógio do Windows;
/NOW – executa o OCS Inventory NG Agent ao final da instalação;
/NOSOFTWARE – ignora se o software está instalado;
/D – instala o OCS Inventory NG Agent em outro diretório;
/SERVER= – local do servidor OCS Inventory;
– Baixe o OCS Packager e o OCS Agent na seção de downloads no site do OCS Inventory;
– Execute o OcsPackager.exe e aceite o termo de licença;
A seguinte tela irá aparecer:
– No campo "Agent Setup file", adicione o OcsAgentSetup.exe que foi feito download;
– No campo "Certificate file" deveremos adicionar o arquivo ".pem" que será utilizado pelo Teledeploy;
– No campo "Plugins to include" permite que sejam adicionados plugins, porém essa parte irei tratar em outro post;
– No campo "comand line options" deverão ser especificadas todas as opções necessárias para criar o "ocspackage.exe" do ocs (no meu caso, /NO_SERVICE /S /SERVER=http://192.168.1.12/ocsinventory /proxy_type=0 /NOW).
– No campo "Label" será criado um arquivo de etiqueta contendo seu prompt do usuário. Na primeira execução do OcsInventory.exe, será exibido uma janela pop-up com este aviso. O valor inserido pelo usuário é chamado TAG, não utilizei esse campo também.
– Os campos "User" e "Password" não serão utilizados neste exemplo. Caso você tenha necessidade de utilizar autenticação remota no agente Windows para fornecer permissão de execução, recomendo o uso desses campos, bastando somente ter o "PsExec.exe" na mesma pasta do OCS Packager e inserir as credenciais de usuário e senha.
– Escolha o local onde o "ocspackage.exe" será salvo e clique em "Ok";
– Após isso, o "ocspackage.exe"será criado e você já poderá executar e publicar no Communication Server para ser executado através do "OcsLogon.exe". Então vamos publicar!
Por padrão o MySQL só permite que sejam anexados arquivos com o tamanho de até 1MB, então edite o arquivo "my.cnf" e insira ou modifique o valor da variável "max_allowed_packet". No meu caso, irei alterar para 10MB.
max_allowed_packet=10MB
Reinicie o MySQL
Acesse "http://ip-do-server/ocsreports", faça login com suas credenciais, clique no ícone "Configuração" e na aba "Agente";
Selecione o arquivo e clique em "Envio". Pronto, o "ocspackager.exe" já está publicado no nosso Communication Server.
OCS Packager
Instalação do OCS Inventory RHEL/CentOS 6.x
março 7, 2016 / José Vieira / 0 Comments
Pré-requisitos para instalação do OCS Inventory NG
– Apache 1.3.33 ou superior;
– Mod_perl 1.29 ou superior;
– Mod_php 4.3.2 ou superior;
– PHP 4.3.2 ou superior com suporte a ZIP e GD habilitados;
– PERL 5.6 ou superior;
– Perl module XML::Simple versão 2.12 ou superior;
– Perl module Compress::Zlib versão 1.33 ou superior;
– Perl module DBI versão 1.40 ou superior;
– Perl module DBD::Mysql versão 2.9004 ou superior;
– Perl module Apache::DBI versão 0.93 ou superior;
– Perl module Net::IP versão 1.21 ou superior;
– Perl module SOAP::Lite versão 0.66 ou superior (opcional);
– MySQL 4.1.0 ou superior com engine InnoDB habilitada;
Para instalar o MySQL, pode ser utilizado o meu post anterior clicando aqui.
Os pacotes do ocs não vêm nos repositórios padrão do RHEL/CentOS. Iremos instalar a versão 2.1.2 do ocs, pois já traz bastante melhoria de recursos comparada à versões anteriores, para isso vamos instalar o epel e o remi como repositório adicional.
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6*.rpm
O yum resolverá todas dependências informadas no início do post. Vamos instalar o OCS Inventory habilitando o uso do remi.
# yum --enablerepo=remi install ocsinventory
Vamos liberar o acesso ao apache e ao mysql nas portas 80 e 3306 pelo iptables
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
E deixar o SElinux no modo permissivo
Vamos criar o banco de dados "ocsweb", criar o usuário "ocs" e dar acesso ao banco.
GRANT ALL PRIVILEGES ON ocsweb.* to ocs@localhost IDENTIFIED BY 'senha';
Vamos agora checar se será necessário realizar alguma alteração nas informações do banco instalado
# vim /etc/httpd/conf.d/ocsinventory-server.conf
PerlSetEnv OCS_DB_NAME ocsweb //verifique se é o nome do banco que foi criado
PerlSetEnv OCS_DB_LOCAL ocsweb //verifique se é o nome do banco que foi criado
PerlSetEnv OCS_DB_USER ocs //verifique se é o nome do usuário do banco com permissões
PerlSetVar OCS_DB_PWD ocs //altere para a senha definida
Vamos iniciar o serviço httpd
Define a inicialização do httpd nos níveis padrão de inicialização do sistema
# chkconfig http on
Acesse o endereço "http://ip-do-servidor/ocsreports/install.php" e preencha conforme abaixo
Ao clicar em send, será executado o script install.php que realizará a configuração do banco de dados do OCS Inventory.
Acesse o endereço "http://ip-do-servidor/ocsreports" para acessar o OCS Inventory e use as credenciais abaixo
Após o login, poderão aparecer alertas na tela informando que o script install.php está presente no servidor, conforme imagem acima. O usuário e senha do banco e da interface web de administração estão definidos como padrão. Altere as senhas no banco de dados e na interface web de administração e apague o script conforme abaixo.
# rm -f /usr/share/ocsinventory-reports/ocsreports/install.php
Pronto. O serviço do OCS Inventory está instalado, configurado, executando e aguardando por novos inventários, instale o agente na sua estação e verifique!