segunda-feira, 28 de fevereiro de 2011

http://lgerardlucas.blogspot.com/

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
  1. Linux - Ubuntu Server 10.04 LTS - Versão com 5 anos de atualizações
    1. Dados para Instalação:
      1. Nome do usuário: servidor
      2. Senha: *****
      3. Teclado: Portugues
      4. Login: Pedir senha e usuário
      5. Desktop: Sem Desktop
      6. Sistema de Arquivo Recomendado: Ext3 ou Ext4(Padrão)
        1. Preferêncialmente usar Ext4;
        2. Este sistema de arquivo, tem melhor desempenho para arquiteturas 64Bits;
        3. Totalmente compatível com Ext3;
        4. Melhor segurança nos processo de I/O.
      7. Linguagem: Português - Brazil
    2. Nº de hds que a máquina possui
      1. Analise: No meu servidor, há dois hds de 150GB cada, com isto, foi feito o seguinte processo:
        1. No sda1 foi instalado do sistema operacional mais a swap
        2. No sdb1 foi formatado e montado no /mnt/dados
      2. Configurações para os procedimentos acima
        1. Reconhecimento: Foi usado fdisk -l para listar os hds existentes. Neste ponto foi reconhecido dois, o sda e o sdb.
        2. Preparação:
          1. Foi criado o disco com o comando fdisk /dev/sdb1;
          2. Foi dado um sistema operacional ext4;
          3. Foi formatado o discso em questão com mkfs.ext4 /dev/sdb1
          4. Foi criado um diretório em /mnt/dados com permissão 777
          5. 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
    3. Sistema operacional, após a instalação:
      1. Atualizar todo o sistema
        1. Comando:
          1. sudo apt-get update;
          2. sudo apt-get upgrade;
      2. Instalação e configuração de programas
        1. SSH: Instalar o serviço ssh para acesso remoto, tanto do nxmachine como por linha de comando.
          1. Comando: apt-get install ssh
        2. 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. 
        3. 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.
          1. Comando: sudo apt-get install samba
          2. Menu: Sistema/Administração/Gerenciador de pacotes Synaptic
          3. Arquivo: /etc/samba/smb.conf
          4. 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
          5. Comando: Utilizar a linha de comando a seguir para aplicar a configurações feitas no samba /etc/init.d/smbd restart, stop ou start;
          6. 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;
            1. Comando: apt-get install smbfs
        4. 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
          1. Arquivo: sudo /etc/fstab
          2. 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
      1. Rede
        1. Rede Linux: Configuração responsável por introduzir o sistema operacional linux na rede.
        2. Arquivo: /etc/network/interfaces
          1. Uso: Arquivo responsável por colocar na rede a máquina em questão, no seu ip, máscara e gateway correto;
          2. 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.
          3. 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;
        3. Arquivo: /etc/network/interfaces
          1. Uso: Arquivo responsável por colocar na rede a máquina em questão, no seu ip, máscara e gateway correto;
          2. 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;
          3. 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
          4. Ativando e instalando módulos:
            1. 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
            2. 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=1
              Obs: 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.
        4. Arquivo: /etc/resolv.conf 
          1. Uso: Arquivo responsável por resolver o DNS
          2. Conteúdo do Arquivooptions rotate nameserver 8.8.4.4  #DNS Public da Google
        1. Arquivo: /etc/hostname
          1. Uso: Arquivo responsável em dar um nome a máquina
          2. Conteúdo do arquivo: servidor
      1. Comando para informações
        1. free -mt: Retorna o espaço total e livre em MB;
        2. df -h: Retorna o espaço total e livre em MB mais detalhado;
        3. dpkg -l: Mostra todos os pacotes instalados. dpkg -l | grep ssh mostra se o pacote ssh esta instalado;
        4. cat /proc/cpuinfo/: Mostra o conteúdo do arquivo que guarda os dados da máquina, como o processador; 
        5. mount: Mostra informações como sistema de arquivo.
  1. Desktop
    1. 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 apt­get install ubuntu­desktop

Banco de dados
  1. Instalação PostgreSQL 8.2 
  1. 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.
  2. Sourceslis: Entra no arquivo /etc/apt/soucer.list e incluir a seguinte linha dentro: deb http://br.archive.ubuntu.com/ubuntu hardy main universe
  3. Instalando:
    1. sudo apt­-get update
    2. sudo apt­-get install postgresql­8.2
      1. 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
    3. sudo apt­-get update
  4. Configuração Cluster
  1. 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
  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
          # su postgres
          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.