Todos os posts de minimedia

Gerenciamento de software com apt-get

Para sistemas que estão conectados a internet, uma ferramenta muito valiosa é o apt-get. Este possui uma facilidade incrível na instalação de pacotes com apenas uma linha de comandos. Aqui listaremos as principais características e configurações deste poderoso gerenciador de pacotes. Para que o apt-get funcione corretamente, é necessário primeiramente que seu arquivo de configurações esteja configurado de forma correta, estas configurações podem ser realizadas em /etc/apt/sources.list. Abaixo temos um exemplo do arquivo de configurações /etc/apt/sources.list:

host:~# cat /etc/apt/sources.list
deb http://http.us.debian.org/debian stable main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free

Como visto acima, o arquivo possui configurações simples.  A primeira linha diz ao apt para que sejam verificados pacotes da distribuição stable nas seções main, contrib e non-free. A segunda linha tem o mesmo propósito, porém somente utilizada para atualizações de segurança. O primeiro passo para a configuração do apt é a definição do arquivo /etc/apt/sources.list como mostrado no exemplo acima, após a execução desta configuração, é necessário atualizar a lista de repositórios com o comando apt-get update. Realizado o passo anterior, o apt está pronto para a tarefa de instalar, remover ou ataulizar softwares. Abaixo listamos as opções mais utilizadas:

apt-get update

Comandos utilizados para atualizar a lista de pacotes, deve ser executado sempre antes de instalar qualquer pacote.

apt-cache search <palavra chave>

Localiza pacotes com as palavras chave especificadas. Abaixo o exemplo da procura pelo pacote php5-mysql:

host:~# apt-cache search php5-mysql
php5-mysql - MySQL module for php5

Foram exibidos todos os pacotes que contém php5-mysql em sua descrição. Caso deseje uma listagem detalhada de informações do pacote php5-mysql, pode ser utilizada a linha de comandos apt-cache show php5-mysql, no qual exibirá informações de dependências, tamanho, mantenedores, etc…

apt-get install <pacote>

Comandos utilizados para instalar um novo pacote. Por exemplo, para se instalar o pacote php5-mysql, de ver utilizada a linha de comandos apt-get install php5-mysql. Estes comandos irão instalar o pacote php5-mysql juntamente com todas as suas dependências e perguntando se realmente deseja realizadar a ação solicitada.

apt-get remove <pacote>

Comandos utilizados para a remoção de um pacote. Um detalhe é que estes comandos removem o pacote com suas dependências, neste caso fique atendo a remover um pacote, pois podem ser removidos pacotes que dependem do mesmo. Para remover o pacote php5-mysql utilizamos apt-get remove php5-mysql.

apt-get upgrade

Comandos utilizados para atualizar todos os pacotes do sistema. Ao utilizar estes comandos o apt irá procurar por todos os softwares mais recentes no arquivo de configuração /etc/apt/sources.list e efetuar a atualização. Por ser um comando de atualização global, em determinados casos pode ser necessário o reinício do sistema, noc aso da atualização do kernel por exemplo.

Neste artigo procuramos demonstrar as formas mais utilizadas do gerenciador de pacotes apt do dia dia, facilitando assim o gerenciamento de pacotes e mantendo o sistema sempre atualizado de maneira segura.

 

 

Identificação de partições

Ao lançamento da nova versão estável do Debian GNU/Linux codnome Squeeze, veio também um novo esquema de identificação de partições no arquivo /etc/fstab. O novo formato exibe id’s das partições ai invés dos caminhos, podemos tomar como exemplo abaixo o novo esquema de identificação:

UUID=6d3ca2ba-13a6-49a4-bd23-8db3e8a494cd /home           ext3    defaults        0       2

Anteriormente deveria ser especificado o caminho para o dispositivo físico, como por exemplo /dev/sda1. O novo modelo pode parecer complicado a primeira vista, porém traz mais benefícios. Imagine que você por algum motivo precisou mudar o hd primário ou secundário de posição, automaticamente sua identificação no diretório /dev também mudaria. Com este novo formato é gravado o id do disco, então o fstab sempre irá procurar pelo id ao invés do arquivo referente ao dispositivo em /dev. Porém resta-nos uma questão, como descobrir o UUID do dispositivo? Basta utilizar o comando blkid seguido do disco que desejamos confirmar seu UUID:

host:~# blkid /dev/sda1
/dev/sda1: TYPE="swap" UUID="d15f010b-37b9-48df-8986-41726836aaec"

Após este procedimento, basta inserir as configurações como no exemplo citado acima e executar o comando mount -a para que o arquivo /etc/fstab seja relido.

 

OpenVZ e Conteineres

O OpenVZ é uma solução baseada em conteineres para Linux. O OpenVZ é capaz de criar mútiplos, seguros e isolados conteineres (também conhecidos como VE (Virtual Environment) ou VPS (Virtual Private Server)) em um único servidor físico fornecendo uma melhor utilização do servidor sem impedir que ocorra conflitos entre as aplicações. Cada conteinere é executado exatamente como um servidor dedicado, um conteinere pode ser reiniciado, ter seu endereço ip modificado, ter as senhas de seus usuários modificadas e até mesmo sofrer alterações de hardware como quantidade de memória e espaço em disco. Veremos neste artigo, as principais formas de gerenciamento de um sistema utilizando o OpenVZ, neste estudo assumiremos que você já possui um servidor com Debian Squeeze (Stable na data da publicação deste documento) instalado e funcionando corretamente. Caso utilize outra versão do Debian, não há problemas basta modificar algumas ações como versão do kernel ou um ou outro arquivo de configuração :D A instalação do OpenVZ é bem simples, basta instalar a versão do kernel com suporte ao OpenVZ, para identificar a versão de seu kernel você pode utilizar o comando uname -r, em seguida com auxílio do apt-get você será capaz de instalar o OpenVZ, lembrando que utilizaremos um programa auxiliar para gerenciamento, o vzctl. Portanto abaixo efetuamos a instalação de ambos:

server:/# apt-get install linux-image-openvz-amd64 vzctl

Após efetuada a instalação, são necessários alguns ajustes no sistema, iniciaremos modificando o conteúdo do arquivo /etc/sysctl.conf, para tanto efetue backup da versão atual de seu arquivo e mantenha o mesmo com os seguintes valores:

net.ipv4.conf.all.send_redirects = 0
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.conf.all.accept_source_route = 0
kernel.sysrq = 1
kernel.core_uses_pid = 1
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.tcp_fin_timeout = 25
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_reordering = 5
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3
net.ipv4.tcp_max_syn_backlog = 2048
net.core.netdev_max_backlog = 1024
net.ipv4.tcp_max_tw_buckets = 360000
net.core.rmem_default = 65535
net.core.rmem_max = 8388608
net.ipv4.tcp_rmem = 4096 87380 8388608
net.core.wmem_default = 65535
net.core.wmem_max = 8388608
net.ipv4.tcp_wmem = 4096 65535 8388608
net.ipv4.tcp_mem = 8388608 8388608 8388608
net.core.optmem_max = 40960
net.ipv4.conf.default.forwarding = 1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.default.send_redirects = 1

Como o OpenVZ trabalha diretamente com o kernel do Linux, estas alterações se fazem necessárias no arquivo /etc/sysctl.conf, para que as mesmas tenham efeito sem que o servidor precise ser reiniciado, é necessário executar o comando sysctl -w. Após este procedimento nosso sistema está preparado para trabalhar com o OpenVZ, bastando apenas baixar o template, que no caso é uma pré instalação do sistema operacional que estaremos instalado, o mesmo pode ser baixado aqui. No caso escolhemos uma imagem mínima do Debian, mas sinta-se a vontade para baixar a imagem desejada. Após baixar a imagem, salve-a em /var/lib/vz/template/cache/.

Criaremos agora nossa máquina virtualcom a seguinte linha de comandos:

server:~# vzctl create 100 --config basic --ostemplate debian-5.0-x86_64

Repare que utilizamos o comando vzctl com a opção create e o número 100, este é um identificador deste servidor para questões de organização, o mesmo não pode se repetir, pois é a identificação de cada servidor virtual no sistema, e com a opção –ostemplate informamos o template desejado, no caso o que acabamos de baixar. Um detalhe importante é que na hora da especificação do template deve ser omitida a extensão .tar.gz. Abaixo definimos os limites de espaço em disco:

server:~# vzctl set 100 --diskspace 10G:10G --save

Como desejamos configurar a memória de 256MB destinada a este vps, manteremos os limites mínimo e máximo com as seguintes linhas de comando:

server:~# vzctl set 100 --vmguarpages 256m --save
server:~# vzctl set 100 --privvmpages 256m --save

Abaixo configuramos o vps para ser inicializado no boot do servidor dedicado:

server:~# vzctl set 100 --onboot yes --save

O comando vzctl é bastante intuitivo, definiremos agora o hostname do servidor:

server:~# vzctl set 100 --hostname server-vps --save

Endreço ip:

server:~# vzctl set 100 --ipadd 192.168.0.200 --save

Chegando perto da finalização da configuração, iremos agora definir o servidor de nomes utilizado:

server:~# vzctl set 100 --nameserver 192.168.0.245 --save

E finalmente iniciaremos nosso vps:

server:~# vzctl start 100

Com o vps iniciado,utilizamos o comando vzctl com o parâmetro enter, a partir deste ponto nosso servidor já está totalmente funcional. Para sair basta digitar o comando exit:

server:~# vzctl enter 100
entered into CT 100
server-vps:/#

Apartir deste momento, possuímos um servidor na rede da mesma forma que um servidor físico, portanto os cuidados com segurança, atualizações de software e administração do sistema são exatamente os mesmos.