BEM VINDO AO BLOG DO MARCOS CARRARO CRIADOR DO "CARRARO DASHBOARD". MUITO MAIS QUE UM SIMPLES BLOG.

sexta-feira, 19 de setembro de 2014

Criando pacotes RPM Centos 6.5 - 2

Buenas,

Continuidade de http://marcoscarraro.blogspot.com.br/2014/09/criando-um-repositorio-de-rpm-1.html

Então lá vamos nos criar os pacotes RPM.

Pacotes necessários
# yum install rpmdevtools

Vamos criar um usuário limpo para fazer a criação dos pacotes, para não puxar permissões especiais.
# adduser pacotes
# passwd pacotes

Logando no usuário
# su pacotes

Vamos criar a estrutura básica do RPM, o ideal é trabalhar sempre no ~ do usuário
# cd ~
# rpmdev-setuptree

Vai criar uma pasta chamada rpmbuild

Informações da estrutura criada.
BUILD é usado como espaço de rascunho para compilar realmente o software.
RPMS contém o RPM binário que o rpmbuild constrói.
SOURCES destina-se ao código-fonte.
SPECS contém seu arquivo ou arquivos spec— um arquivo spec por RPM que desejar construir.
SRPMS contém o RPM fonte construído durante o processo.

Ok, preparado o terreno, vamos criar a estrutura do nosso programa, a estrutura do programa pode ser /etc/programa , /usr/local/programa , /var/log/programa 

# mkdir -p pacote-1/opt/pacote/
# mkdir -p pacote-1/var/log/pacote/
# echo "Arquivo de testes" > ./pacote-1/opt/pacote/conteudo.conf

Depois da estrutura criada, os arquivos transferidos, é hora de compactar tudo, repare que vamos salvar dentro da pasta SOURCES.
# tar -czvf rpmbuild/SOURCES/pacote-1.tar.gz pacote-1/


Feito isso é a hora de criar o SPEC, esse cara é quem vai reger toda instalação.
# rpmdev-newspec rpmbuild/SPECS/pacote.spec

Utilize este arquivo pré elaborado por mim, ele é genérico, porém esta comentado referente ao que cada bloco ira fazer. Altere as demais informações, onde o Name é utilizado junto do Version, por isso criamos o pacote-1.tar.gz, também pode alterar as dependências do pacote, colocar ações pré instalação, pós instalação, pré desinstalação, pós desinstalação.


#
#  DESCRICAO DO PACOTE E CRIADOR
#
Name: pacote
Version: 1 
Release: 0
Summary: PACOTE ABC De testes
Group: APP
License: GPL
URL: http://marcoscarraro.blogspot.com

#
#  INFORMACOES DO PACOTE, E DEPENDENCIAS
#
Source0: %{name}-%{version}.tar.gz
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-buildroot 
#Requires: httpd php php-common

#
#   DESCRICAO GERAL
#
%description
Pacote criado para testes

#
#   ACOES A SEREM TOMADAS
#   %pre,      %post,       %preun,       %postun
#   pre instal, post instal, pre uninstal, pos uninstal
%pre
echo "Instalando O pacote aguarde..."


%prep
%setup -q

#
#  EXECUTA A INSTALACAO, PODEMOS INCREMENTAR A MESMA
#
%install
mkdir -p %{buildroot}
cp -R * %{buildroot}

#
#  FAZ A LIMPEZA DA INSTALACAO
#
%clean
rm -rf %{buildroot}

#
#  TERMINA A INSTALACAO, PODEMOS APLICAR COMANDOS AQUI
#
%post
echo "Pacote Instalado com sucesso"

#
#  INDICA OS ARQUIVOS,PASTAS INSTALADOS, PARA SABER QUANDO FOR FAZER UM RPM -E
#
%files
%defattr(-,root,root,-)
/var/log/pacote
/opt/pacote/pacote.conf
/opt/pacote/

Abraços
Marcos Carraro
Read More

quinta-feira, 18 de setembro de 2014

Criando um repositório de RPM - 1

Buenas,

Começa aqui uma documentação para equalizar a estrutura linux.

A ideia é, montar um repositório de pacotes central, e recriar ISO do Centos pré configurado.

Porque, assim você pode homologar os pacotes antes que seus servidores baixem eles, ou deseja disponibilizar algum pacote recompilado...

Para isso é necessário que a máquina que vai conter todos RPM precisa ter os seguintes pacotes.
# yum install yum-plugin-downloadonly httpd createrepo

Primeiro vamos criar a estrutura básica para disponibilizar os pacotes.

# mkdir -p /var/www/html/repo/6/x86_64/pacotes 

Onde 6 é a versão do Centos, e onde x86_64 é a arquitetura dos pacoes no nosso caso é x64.

Criado a estrutura vamos baixar os pacotes que vamos disponibilizar no repositório.

# yum install --downloadonly --downloaddir=/var/www/html/repo/6/x86_64/base/ httpd httpd-tools php php-cli php-common php-mysql php-pdo php-gd 

Porém muitas vezes temos instalações super leves, minimalistas, então é necessário também disponibilizar além dos pacotes as dependências dos mesmos.

# yum install --downloadonly --downloaddir=/var/www/html/repo/6/x86_64/base/ $(repoquery --requires httpd httpd-tools php php-cli php-common php-mysql php-pdo php-gd  )

Ok, efetuado todos downloads, vamos criar o índice para que seja mais fácil do yum verificar se o pacote que ele precisa tem no nosso repositório.

# createrepo /var/www/html/repo/6/x86_64/pacotes

Pronto, agora já temos o repositório ativado, vamos criar o arquivo para o servidor utilizar o nosso repo.

[pacotes]
name= pacotes homologados
baseurl=http://repo.casa.local/repo/$releasever/$basearch/pacotes
gpgcheck=0


Pronto, o repositório esta criado, próximo post sera criando a ISO personalizada. e o outro post sera criando um pacote rpm.

Abraços
Marcos Carraro
Read More

quarta-feira, 17 de setembro de 2014

Xenserver configurando repositório USB/INTERNO de ISO

Buenas,

Quem nunca teve que subir uma VM no xen e estava sem o CD somente a ISO e sem nenhum compartilhamento na rede???

Pois bem, foi o que deu, precisei subir uma VM onde eu tinha a ISO na pendrive foi que me ocorreu de procurar a informação de como configurar.

Primeiro crie um diretorio para fazer a montagem ou o armazenamento das ISO.

# mkdir /mnt/usb

# mount -t auto /dev/sdc1 /mnt/usb

// Agora sim vem o pulo do gato

# xe sr-create name-label=ISOs type=iso device-config:location=/mnt/usb device-config:legacy_mode=true content-type=iso

Se você deseja despejar as ISOs no servidor, é so pular a parte de montar o dispositivo externo.

Abraços
Marcos Carararo
Read More

sexta-feira, 5 de setembro de 2014

Postgresql - Cacuum+ Reindex = Todo Banco

Buenas,

Talvez para os deconhecidos, ou não, segue um script para fazer uma pequena manutenção no banco Postgresql

#!/bin/bash

# Vaccum organiza os registros
# -a  Todos os Banco de Dados.
# -f  Full
# -z  Analyze
# -v  Exibe mensagens de debug
/usr/bin/vacuumdb -a -z -f -U postgres


# REINDEX
# -a Todos os bancos
# -s Reindexa os catálogos do sistema do banco de dados.
/usr/bin/reindexdb -a -U postgres


Lembrando que no pg_hba.conf deve estar setado para não pedir senha para as conexões locais, caso contrário terá que informar no script a senha utilizando o parâmetro -W.
local   all             all                                     trust

Forte abraços
Marcos Carraro
Read More

Posts que a turma mais esta lendo...

Posts que a turma mais esta lendo...

Marcos Carraro