Instalação Ubuntu Server 10.04 LTS
Neste documento, é definido a preparação de um servidor Linux para ser um servidor de banco de dados PostGreSQL.
Sistema Operacional
- Linux - Ubuntu Server 10.04 LTS - Versão com 5 anos de atualizações
- Dados para Instalação:
- Nome do usuário: servidor
- Senha: *****
- Teclado: Portugues
- Login: Pedir senha e usuário
- Desktop: Sem Desktop
- Sistema de Arquivo Recomendado: Ext3 ou Ext4(Padrão)
- Preferêncialmente usar Ext4;
- Este sistema de arquivo, tem melhor desempenho para arquiteturas 64Bits;
- Totalmente compatível com Ext3;
- Melhor segurança nos processo de I/O.
- Linguagem: Português - Brazil
- Nº de hds que a máquina possui
- Analise: No meu servidor, há dois hds de 150GB cada, com isto, foi feito o seguinte processo:
- No sda1 foi instalado do sistema operacional mais a swap.
- No sdb1 foi formatado e montado no /mnt/dados
- Configurações para os procedimentos acima
- Reconhecimento: Foi usado fdisk -l para listar os hds existentes. Neste ponto foi reconhecido dois, o sda e o sdb.
- Preparação:
- Foi criado o disco com o comando fdisk /dev/sdb1;
- Foi dado um sistema operacional ext4;
- Foi formatado o discso em questão com mkfs.ext4 /dev/sdb1
- Foi criado um diretório em /mnt/dados com permissão 777
- Foi feito a montagem usando o seguinte comando no arquivo /etc/fstab
Comando: # Particao referente ao segundo hd sdb1 para gravar dados do banco postgres
/dev/sdb1 /mnt/dados/ ext4 auto,user,exec 0 0 - Sistema operacional, após a instalação:
- Atualizar todo o sistema
- Comando:
- sudo apt-get update;
- sudo apt-get upgrade;
- Instalação e configuração de programas
- SSH: Instalar o serviço ssh para acesso remoto, tanto do nxmachine como por linha de comando.
- Comando: apt-get install ssh
- PORTA: Liberar no modem a porta 22(Ou definir uma porta mais segura) apontando para o ip da máquina servidor de acesso, que deverá ser uma, pré-definida e que tenha linux. Obs: Esta configuração, servirá para uso dos programas acima citados.
- SAMBA: Instalar serviço samba Versão 3.4 ou superior(A partir desta versão, já suporta acesso a máquinas com Windown 7), para que máquinas windows enxergem as máquinas linux.
- Comando: sudo apt-get install samba
- Menu: Sistema/Administração/Gerenciador de pacotes Synaptic
- Arquivo: /etc/samba/smb.conf
- Conteúdo: [global]
workgroup = meu grupo
server string = %h Servidor Linux (Servidor)
dns proxy = no
name resolve order = lmhosts wins bcast host
interfaces = 127.0.0.0/8 eth0
cups options = raw
socket options = TCP_NODELAY
security = share
printing = cups
printcap name = cups
printcap cache time = 750
[servidor]
comment = Servidor Linux - PostGreSQL8.2
path = /home/servidor/.wine/drive_c/
browseable = yes
guest ok = yes
writeable = yes
read only = no
create mask = 0777
directory mask = 0777
public = yes - Comando: Utilizar a linha de comando a seguir para aplicar a configurações feitas no samba /etc/init.d/smbd restart, stop ou start;
- Serviço smbfs: Instalar o serviço smbfs. Algumas vezes, este serviço não é instalado junto com o samba e, é com ele, que a rede funciona;
- Comando: apt-get install smbfs
- FSTAB: Arquivo responsável por manter as montagens feitas entre máquinas, preferencialmente criadas na pasta /mnt. Neste ponto é feito a montagem das estão no Servidor compartilhadas. Isto garante, o acesso aos arquivos necessários ao sistema
- Arquivo: sudo /etc/fstab
- Conteúdo: #Apontar para o ip do Servidor
//192.168.1.250/Compartilhamento/ /home/trabin/.wine/drive_c/pasta smbfs user=servidor,password=*****,user,rw,uid=1000,
gid=1000,umask=022 0 0
Obs: Após deixar o arquivo citado configurado, criar dentro do caminho onde haverá a montagem, o diretório da montagem e dar permissão 7777 - Rede
- Rede Linux: Configuração responsável por introduzir o sistema operacional linux na rede.
- Arquivo: /etc/network/interfaces
- Uso: Arquivo responsável por colocar na rede a máquina em questão, no seu ip, máscara e gateway correto;
- Placas: Na configuração abaixo, considero que a máquina tenha somente uma placa de rede. Mesmo que tenha duas, o máximo que poderiamos fazer é dar outro ip para a outra placa de rede.
- Conteúdo do arquivo:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.250
netmask 255.255.255.0
gateway 192.168.1.1
Obs1: Neste ponto, analisando as camadas do modelo OSI, aqui seria a camada Sessão; - Arquivo: /etc/network/interfaces
- Uso: Arquivo responsável por colocar na rede a máquina em questão, no seu ip, máscara e gateway correto;
- Placas: Na configuração abaixo, considero que a máquina tenha duas placas de rede, e que iremos fazer uso das duas em um único ip. Se uma placa parar a outra assume;
- Conteúdo do arquivo: auto lo
iface lo inet loopback
# Acesso a primeira interface de rede
auto bond0
iface bond0 inet static
address 192.168.1.251
netmask 255.255.255.0
gateway 192.168.1.1 - Ativando e instalando módulos:
- Instalar: Para o gerenciamento de duas placas em um só ip, é preciso ter, isto no caso do Ubuntu, os módulos ifenslave e bonding instalado e pra isto execute o comando: aptitude ifenslave bonding
- Ativando: Após a instalar os módulos acima, é preciso ativar o módulo bonding. Pra isto, no meu caso, foi criado um arquivo sh para fazer as ativações e associações necessárias, com o seguinte conteúdo:
Ativa o módulo bonding
modprobe bonding
Vincula ao serviço bond as placas de rede 0 e 1
ifenslave bond0 eth0
ifenslave bond0 eth1
Ativa o vinculo acima criado
alias bond0 bonding
Configurações do serviço bond
options bond0 miimon=1000 mode=1Obs: O arquivo acima, foi dado um nome com a extensão sh com permissão 777 e colocado no diretório /mnt/init.d/, onde será executado ao ligar a máquina.
- Arquivo: /etc/resolv.conf
- Uso: Arquivo responsável por resolver o DNS
- Conteúdo do Arquivooptions rotate nameserver 8.8.4.4 #DNS Public da Google
- Arquivo: /etc/hostname
- Uso: Arquivo responsável em dar um nome a máquina
- Conteúdo do arquivo: servidor
- Comando para informações
- free -mt: Retorna o espaço total e livre em MB;
- df -h: Retorna o espaço total e livre em MB mais detalhado;
- dpkg -l: Mostra todos os pacotes instalados. dpkg -l | grep ssh mostra se o pacote ssh esta instalado;
- cat /proc/cpuinfo/: Mostra o conteúdo do arquivo que guarda os dados da máquina, como o processador;
- mount: Mostra informações como sistema de arquivo.
- Desktop
- Instalação: Para fins de acesso seguro e manutenção dos bancos de dados pelos funcionários sem conhecimento do uso do servidores via linha de comando, no final desta documentação, irei instalar o dektop no server digitando o seguinte comando:
sudo aptget install ubuntudesktop
Banco de dados
- Instalação PostgreSQL 8.2
- Preparação: Para instalar o PostgreSQL 8.2 no Ubuntu Server 10.04, é de fato que teremos de utilizar os repositórios do ubuntu 8.04, pois para esta versão de postgresql a versão de linux, jás não possui os repositórios necessários.
- Sourceslis: Entra no arquivo /etc/apt/soucer.list e incluir a seguinte linha dentro: deb http://br.archive.ubuntu.com/ubuntu hardy main universe
- Instalando:
- sudo apt-get update
- sudo apt-get install postgresql8.2
- Apos a instalação no ubuntu os arquivos do postgresql ficarão no seguinte caminho:
# ls -l /var/lib/postgresql/8.2/main/
drwx------ 5 postgres postgres 4096 2011-02-25 16:13 base
drwx------ 2 postgres postgres 4096 2011-02-25 16:14 global
drwx------ 2 postgres postgres 4096 2011-02-25 16:13 pg_clog
drwx------ 4 postgres postgres 4096 2011-02-25 16:13 pg_multixact
drwx------ 2 postgres postgres 4096 2011-02-25 16:13 pg_subtrans
drwx------ 2 postgres postgres 4096 2011-02-25 16:13 pg_tblspc
drwx------ 2 postgres postgres 4096 2011-02-25 16:13 pg_twophase
-rw------- 1 postgres postgres 4 2011-02-25 16:13 PG_VERSION
drwx------ 3 postgres postgres 4096 2011-02-25 16:13 pg_xlog
-rw------- 1 postgres postgres 125 2011-02-25 16:13 postmaster.opts
-rw------- 1 postgres postgres 54 2011-02-25 16:13 postmaster.pid
lrwxrwxrwx 1 root root 36 2011-02-25 16:13 server.crt -> /etc/ssl/certs/ssl-cert-snakeoil.pem
lrwxrwxrwx 1 root root 38 2011-02-25 16:13 server.key -> /etc/ssl/private/ssl-cert-snakeoil.key - sudo apt-get update
- Configuração Cluster
- Entrei no soucer.list e incluir a seguinte linha
deb http://br.archive.ubuntu.com/ubuntu hardy main universe
Isto me proporcionou a instalação do postgresql-8.2 - Após a instalação executei os seguintes comandos:
# pg_lsclusters O resultado foi este:
Version Cluster Port Status Owner Data directory Log file
8.2 main 5432 online postgres /var/lib/postgresql/8.2/main /var/log/postgresql/postgresql-8.2-main.log
Isto indica que meu cluster(agrupamento de bancos) esta ok.
Verificando status do serviço postgres
# /etc/init.d/postgresql-8.2 status
O resultado foi este: Running clusters: 8.2/main
Excluindo o cluster, já que a instalação e toda nova e não tem banco
# pg_dropcluster --stop 8.2 main
O resultado foi este: nada, a principio eu matei o meu cluster
Listando os clusters existentes
# pg_lsclusters
O resultado foi este:
Version Cluster Port Status Owner Data directory Log file
Agora já não possuo mais um cluster, ficanco pronto para criar um novo.
Nas linhas abaixo, iremos mudar o econding do sistema operacional. Isto é necessário para que o novo cluster seja criado no econding correto para o nosso caso.
# locale
LANG=pt_BR
LANGUAGE=pt_BR:pt:en
LC_CTYPE=”pt_BR”
LC_NUMERIC=”pt_BR”
LC_TIME=”pt_BR”
LC_COLLATE=”pt_BR”
LC_MONETARY=”pt_BR”
LC_MESSAGES=”pt_BR”
LC_PAPER=”pt_BR”
LC_NAME=”pt_BR”
LC_ADDRESS=”pt_BR”
LC_TELEPHONE=”pt_BR”
LC_MEASUREMENT=”pt_BR”
LC_IDENTIFICATION=”pt_BR”
LC_ALL= pt_BR.ISO-8859-1
Criando o novo cluster. A opção "-e" indica a criação, mas é possivel usar a outras opção conforme man pg_createcluster, por exemplo para criar o cluster em outro diretório. "-d"
# pg_createcluster -e LATIN1 8.2 main
Creating new cluster (configuration: /etc/postgresql/8.2/main, data: /var/lib/postgresql/8.2/main)...
Moving configuration file /var/lib/postgresql/8.2/main/postgresql.conf to /etc/postgresql/8.2/main...
Moving configuration file /var/lib/postgresql/8.2/main/pg_hba.conf to /etc/postgresql/8.2/main...
Moving configuration file /var/lib/postgresql/8.2/main/pg_ident.conf to /etc/postgresql/8.2/main...
Configuring postgresql.conf to use port 5432...
Logando com usuário postgres para trabalhar no banco
# su postgres
Entrei com usuário postgres
Acessando o banco template1 para teste
# \c template1
Acessei um banco de dados
Criando meu banco de dados
postgres =# CREATE DATABASE "MeuBancoDeDados"
Criei um banco de dados
Analisando o encondig do banco
postgres =# \encoding LATIN1
Entrei com usuário postgres
#postgres =# \encoding
LATIN1
Hoje é só isto que fiz, conforme vou evoluindo irei postar mais.
Nenhum comentário:
Postar um comentário
Comente sempre por favor.