Pequeno manual do administrador

De Wikoleculares
Revisão de 17h51min de 29 de abril de 2015 por Paulo (discussão | contribs) (Detalhes finais)
Ir para navegação Ir para pesquisar

Este espaço é reservado para os administradores mais experientes escreverem instruções para os admins juniores sobre a sala de computação.

Configurar um computador (do zero)

Xubuntu

Para isso, as seguintes etapas são necessárias:

  • Primeiramente, é preciso instalar o sistema. Estamos usando a distribuição Xubuntu, em sua versão 32 bit, atualmente. Nossa política é: manter na versão LTS (atualmente, a 12.04) até que ela perca suporte - a estabilidade da rede é vital, e é MUITO trabalhoso ficar atualizando a cada versão que sair. Nossas partições, atualmente, seguem o seguinte esquema:
ext4, 20 GB. Ponto de montagem: /
swap, 2 GB.
ext4, o que sobrar de espaço livre. Ponto de montagem: /scratch

Observação: se estiver formatando um computador que já estava em uso, tome cuidado para não formatar a /scratch!

  • Então, é preciso instalar os pacotes que nós usamos na rede. A lista atual de pacotes a instalar é:

armagetronad audacious audacity awesome binutils-gold brasero build-essential chromium-browser eclipse elinks emacs evilwm evince finger firefox flashplugin-nonfree fluxbox fortune freeglut3-dev frozen-bubble fvwm gdb geany gedit ghc gimp git-core gnuplot grace imagemagick inkscape ipython jumpnbump jython kile kolourpaint4 koules libglw1-mesa-dev lyx mercurial moc mplayer nfs-common nis ocaml okular openjdk-6-jre openntpd openssh-server pidgin pidgin-skype pymol python3 python-matplotlib python-numpy python-scipy python-sympy qemu quota rar ratpoison r-base rtorrent scite screen solarwolf subversion terminator texlive texmaker traceroute transmission unrar unzip valgrind vim vlc wxmaxima xbindkeys xclip xdotool xfig xjump xlockmore xmonad xpdf xtrlock zip zsh

Obviamente, dê apt-get update e então apt-get install tudo isso. Note que, no meio da instalação dos pacotes, será perguntado qual o servidor NIS que você deseja usar. Coloque nis.proccm.redealuno.usp.br.

  • NIS: As contas dos alunos ficam no proccm, e a autenticação do login nos computadores é feita usando esse serviço, sendo o proccm o servidor NIS.

Para configurar, adicione ao /etc/passwd:

+::::::

E ao /etc/shadow:

+::::::::

E ao /etc/gshadow:

+:::
  • NFS: a /home dos usuários fica no proccm, assim como os scores dos joguinhos e os scripts personalizados da rede. O compartilhamento é feito por meio do serviço NFS (Network File System), que permite montar partições de um sistema alheio no computador.

Para configurar, adicione as seguintes linhas ao /etc/fstab:

# /home
192.168.0.127:/home     /home   nfs     tcp,wsize=16384,rsize=16384     0       0
# /var/games
192.168.0.127:/var/games        /var/games      nfs     bg,tcp,wsize=16384,rsize=16384  0       0
# /scripts
192.168.0.127:/scripts          /scripts        nfs     bg,tcp,wsize=16384,rsize=16384  0       0

Certifique-se de que a pasta /scripts existe. Se não existir, crie-a.

Depois deste passo, você pode ou reiniciar o computador, ou montar tudo na mão, rodando, como root:

mount 192.168.0.127:/home /home

E o mesmo para a /var/games e para a /scripts.

  • Definir o IP do computador: troque o conteúdo do /etc/network/interfaces por
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.N
netmask 255.255.255.0
gateway 192.168.0.127

Sendo N o número do computador. Por convenção, N = 1 para o computador imediatamente à frente da mesa do CEO Mineo, 2 para o próximo, etc.

Feito isso, rode /etc/init.d/networking restart, para as mudanças fazerem efeito.

  • Definir servidores DNS: acrescente ao arquivo /etc/resolvconf/resolv.conf.d/head as seguintes linhas:
domain proccm.redealuno.usp.br
search proccm.redealuno.usp.br
nameserver 192.168.0.127
nameserver 143.107.253.3
nameserver 143.107.253.5

Feito este passo, rode /etc/init.d/resolvconf restart para fazer o DNS. Feito isso, a conexão do computador com a rede local e com a internet está finalizada. Nas próximas vezes em que ele for ligado, a conexão será estabelecida automaticamente.

Para entender melhor este passo e o anterior, veja o primeiro link recomendado.

  • Permitir acesso por SSH como root sem senha, a partir do proccm: adicione a chave pública do proccm ao /root/.ssh/authorized_keys (pode ser preciso criar a pasta .ssh):

ssh-dss AAAAB3NzaC1kc3MAAACBANlP6zHw+3C7OhdkO4EXvrgdT590+g4LzFvp4mLL0DkDRlvPSfqrwrYmF6H7ATeGtXUoOCmiWpxsvm4ERKn6wbuRIuA8DZ2AE8re8UM8oVmSJL0V1uyLdx/0BhbRVK9lRwJ7/EaqK0mwl0T9ripzdWTnYvauxGg3PluztSbGpoNXAAAAFQD55+nR0jLNLVJy/WbMrEmyjaqr/wAAAIEApKpkHOiD6IrSIIvci0iP63Kc+ozKfI+LkDK/JXPUduggSJ5kRXbqAX5HCnGZnCwh64lOpXC8fhgSsx3stqtV/zzQJ4P31PoXKSBvlT6E5/Iillr/5aAT2OJ9i98jWg1G+gcEjoN1a2AoKpgmJgnLuvyH1CE3Sqe1yI5IVB5iPqQAAACALwuYFCc9U/510egrV37PSPFSvDVFsqgtGk8EPYZRE1H3jqKqtXxEUtabsGpDKJeVYPia2Wr70Ju+v+WVQBQ02h0O3KdcIhSNoi6KVN3XLjmCgu7XnQ60hNN0SZKY1rU86qPtGce7okWrsX9MKKTyDJopqMNOyTx5utR9yx4Hnzg= root@proccm2

  • Fazer a impressora funcionar: instale o driver, disponível aqui, e adicione a impressora pelo menu do Xfce (Menu > Sistema > Impressão, instalação bem intuitiva)
  • Só mais um detalhe: para evitar que o LightDM dê a opção para guests logarem, adicione a seguinte linha ao /etc/lightdm/lightdm.conf:
allow-guest=false


E é isso! O computador deve estar pronto para uso, feitos esses passos.

ArchLinux

Neste tutorial é ensinado a instalar a distribuição ArchLinux em um computador. É altamente recomendado o uso da versão 64 bits. A ArchWiki é sua amiga. Aprenda a usá-la: Beginners' Guide da ArchWiki (ou Installation Guide para os malandrinhos).

Instalação base

Esta seção deve ser seguida junto ao manual de instalação. Leia tudo antes de começar.

Quando instalando os pacotes básicos, para acelerar o processo, já instale:

pacstrap -i /mnt base base-devel cups libcups mkinitcpio-nfs-utils net-tools networkmanager nfs-utils ntp pkgfile yp-tools ypbind-mt

Os pacotes podem ser separados em grupos:

  • base base-devel: pacotes básicos para instalação do sistema
  • mkinitcpio-nfs-utils networkmanager nfs-utils: montar as partições NFS (presentes no proccm) no novo computador
  • yp-tools ypbind-mt: uso do servidor NIS, relativo aos logins/senhas dos usuários no proccm, que devem ser disponibilizados no novo computador
  • openssh: usar SSH no novo computador
  • cups libcups: uso da impressora (necessitando os drivers da impressora, que instalaremos mais tarde)
  • ntp net-tools pkgfile: utilitários necessários para facilitar a administração do sistema

Não esqueça de formatar uma partição que será usada como /scratch. Esta partição é livre para os usuários brincarem localmente, sem exceder sua quota. Deixe um espaço razoável nesta partição. Esta partição e a partição de swap devem ser adicionadas ao arquivo /etc/fstab para que sejam montadas na inicialização do sistema.

Nas máquinas atuais, que usam BIOS e partições MBR, o ideal é instalar o bootloader grub (e o os-prober caso a máquina possua outro sistema operacional ou Window$). Isso deve ser feito na relativa etapa do manual de instalação. Caso a máquina use UEFI, é recomendado o uso do gummiboot.

Neste ponto, o sistema deve estar funcionando, mas apenas o usuário root estará acessível. Garanta que o sistema está ligando normalmente e que os eventuais outros sistemas operacionais continuam ligando normalmente. Além disso, as partições /scratch e de swap devem estar sendo montadas durante a inicialização do sistema.

Rede (Winter is coming)

A partir daqui configuraremos a rede (para usar IP fixo, partições NFS e o servidor NIS).

IP fixo

Para configurar a conexão de IP fixo, vamos alterar os seguintes arquivos:

/etc/dhcpcd.conf

Esse arquivo configura a interface ethernet através do cliente dhcpcd. Isso irá configurar o IP estático da máquina em questão, o gateway, e o servidor de nomes

interface nome da interface ethernet
static ip_address=192.168.0.X/24
static routers=192.168.0.127
static domain_name_servers=192.168.0.127 143.107.253.3 143.107.253.5

Aqui X é o número da máquina sendo configurada (verificar no arquivo /etc/hosts do servidor PROCCM).

/etc/resolvconf.conf

Esse arquivo tem algum bagúio a ver com DNS (aceito explicações)

resolv_conf=/etc/resolv.conf
search_domains=proccm.redealuno.usp.br
name_servers=143.107.253.3 
name_servers=143.107.253.5
name_servers=192.168.0.127 

/etc/hosts

Comente o que já está no arquivo, pois não será necessário para nós (insira # ao início das linhas) e insira as seguintes linhas:

127.0.0.1    localhost
127.0.1.1    nome da máquina

Verificar o nome da máquina no arquivo /etc/hosts do servidor.

/etc/hostname

Basta escrever mais uma vez o nome da máquina

A partir deste ponto já será possível:

  • Verificar que o IP da máquina está fixo (192.168.0.X)
  • Se comunicar com o servidor através do seu nome (ping proccm)
  • Logar na máquina a partir do servidor (ssh usuário@nome-da-máquina)
  • Logar no servidor a partir da máquina (ssh usuário@proccm)

Montando partições NFS

Nesta seção, vamos montar as partições NFS /home, /scripts e /var/games do servidor. Para isso, devemos ligar alguns serviços do systemd:

systemctl start rpcbind.service
systemctl start nfs-client.target
systemctl start remote-fs.target

Além disso, habilitaremos os serviços para serem iniciados junto ao sistema:

systemctl enable rpcbind.service
systemctl enable nfs-client.target
systemctl enable remote-fs.target
systemctl enable NetworkManager-wait-online.service

O último serviço habilitado serve para garantirmos a conexão ao servidor PROCCM antes de tentarmos montar as partições NFS. Caso não o fizéssemos, o sistema poderia tentar montar as partições antes de se conectar e falharia.

A partir daqui, devemos conseguir montar a partição /home usando:

mount -t nfs -o 'vers=3' proccm:/home /home

Agora, precisamos editar o arquivo /etc/fstab para definir a montagem automática. Neste arquivo, adicione as linhas:

# /home
192.168.0.127:/home	   /home	nfs	vers=3,x-systemd.automount,x-systemd.device-timeout=10,tcp,wsize=16384,rsize=16384     0 0
# /var/games 
192.168.0.127:/var/games  /var/games	nfs	vers=3,bg,x-systemd.automount,x-systemd.device-timeout=10,tcp,wsize=16384,rsize=16384  0 0
# /scripts
192.168.0.127:/scripts	   /scripts	nfs	vers=3,bg,x-systemd.automount,x-systemd.device-timeout=10,tcp,wsize=16384,rsize=16384  0 0

Neste ponto, o sistema deve conseguir montar as partições automaticamente durante a inicialização. Um fato relevante é que este passo deve ser feito após a configuração da rede, pois o servidor só permitirá a montagem de partições para máquinas correspondentes a IPs conhecidos.

Cliente NIS

Agora, vamos configurar a máquina para usar o servidor NIS, de forma que consiga logar em usuários definidos no PROCCM. Para isso, executamos o seguinte comando:

ypdomainname nis.proccm.redealuno.usp.br

Além disso, editamos os arquivos (NÃO sobrescrever o que já está nos arquivos) :

/etc/yp.conf

Adicionar a seguinte linha ao final do arquivo:

ypserver nis.proccm.redealuno.usp.br

/etc/nisdomainname

Alterar a seguinte linha do arquivo

NISDOMAINNAME="nis.proccm.redealuno.usp.br"

/etc/nsswitch.conf

Alterar as seguintes linhas do arquivo

passwd: files nis
group: files nis
shadow: files nis

/etc/gshadow

Adicionar a seguinte linha ao final do arquivo

+:::

/etc/shadow

Adicionar a seguinte linha ao final do arquivo

+::::::::

/etc/passwd

Adicionar a seguinte linha ao final do arquivo

+::::::

/etc/hosts

Adicionar a seguinte linha ao arquivo

192.168.0.127 nis.proccm.redealuno.usp.br

Agora precisamos iniciar e habilitar os serviços do systemd para a conexão com o servidor NIS:

systemctl start rpcbind
systemctl start ypbind
systemctl enable rpcbind
systemctl enable ypbind

É IMPORTANTE QUE OS SERVIÇOS SEJAM INICIALIZADOS NA ORDEM ESPECIFICADA

Podemos então testar a configuração usando:

yptest

Se bem sucedido, você verá, entre outras coisas, o conteúdo do banco de dados do NIS (no mesmo formato do arquivo /etc/passwd). Neste ponto, ao reiniciar a máquina, será possível logar em contas do PROCCM a partir deste terminal. Verifique se, ao logar, a pasta /home/nome-do-usuário possui os conteúdos esperados.

Interface gráfica

Apesar de opcional, é importante que instalemos a interface gráfica nos computadores que configuramos. Neste tutorial, iremos instalar o servidor Xorg e os ambientes GNOME e MATE.

Xorg

NOTA: Futuramente é possível que seja instalado apenas o 'Wayland' ao invés do 'Xorg'.

GNOME

Para instalar esse ambiente, instalamos o grupo 'gnome', fazendo:

pacman -S gnome file-roller brasero gedit gnome-tweak-tool

E iniciamos o seriço referente ao GDM:

systemctl enable gdm

Neste ponto, deve ser possível fazer login na interface gráfica.

Detalhes finais

Para facilitar a instalação de pacotes do AUR, é conveniente que instalemos os pacotes 'package-query' e 'yaourt' que se encontram na própria AUR. Para instalá-los, é útil usar a página da AUR na ArchWiki.

Impressora

Instalamos agora o driver da impressora sendo usada pela rede do PROCCM. Atualmente é usada a impressora Canon, cujo driver está presente somente na AUR:

yaourt -S cndrvcups-lb-bin

Feito isso, podemos habilitar o serviço do CUPS (servidor e cliente de impressão, que foi instalado no início do tutorial) fazendo;

systemctl start org.cups.cupsd.servic
systemctl enable org.cups.cupsd.servic

Agora podemos adicionar a impressora, usando a interface web do CUPS. Quando perguntado o protocolo usado, selecione LPD/LPR Host or Printer e na localização da impressora coloque o seguinte endereço:

socket://143.107.90.4

Ou o respectivo endereço de IP da impressora. De nome, descrição e localização à impressora. Agora, selecione o fabricante (Canon, atualmente) e o driver (Canon iR1020/1024/1025 UFRII LT). Na impressora atual, em tamanho padrão de página, coloque A4 e termine o processo.

Neste ponto, deve ser possível imprimir uma página de teste na impressora configurada.


Computação Científica

Para instalar os pacotes relacionados a computação científica, rode:

pacman -S python-matplotlib python-scipy python-sympy python-pandas ipython ipython-notebook r julia gnuplot octave

Outros softwares

Atualmente são usados alguns softwares adicionais nos PCs do favo, mas isso pode mudar com o passar do tempo. São eles:

  • julia-git (AUR, opcional, irá sobrescrever a instalação de Julia que fizemos no passo anterior)
  • atom-editor-bin (AUR)
  • gnome-mines
  • armagetronad (vulgo Tronzinho)

Rodar um comando em todas as máquinas a partir do proccm

Basta utilizar os scritps all ou pall que estão em /root/scripts. O all executará os comandos em todas as máquinas sequencialmente, começando pelo sanger, e o pall executará em paralelo. É bom utilizar o pall em comandos rápidos, e não interativos. Alguns exemplos de uso dos scripts:

pall apt-get update

O comando acima irá atualizar a lista de pacotes disponíveis nas máquinas.

all apt-get install xaos

O comando acima irá instalar o pacote xaos em todas as máquinas, começando pelo newton (192.168.0.1), e indo até o laplace (192.168.0.15).

all apt-get -y install emacs21

O comando acima irá instalar o emacs21 e reponder S/Y para todas as eventuais perguntas durante o processo de instalação.

all "dpkg -l | wc -l"

Irá mostrar o número de pacotes instalados nos sistemas (na verdade o número de pacotes instalados mais 6, que são algumas linhas descriptivas da saída do dpkg).


Adicionar usuários

Para adicionar o usuário foo, em que foo é um username que contém somente caracteres alfanuméricos (sem hífen, ponto ou underline), execute como root no servidor:

adduser foo

Preencha uma senha, Full Name, Room Number (turma) e o que mais for necessário, e depois execute:

cd /var/yp/
make

Gerar uma senha aleatória

head -c6 /dev/random | mimencode

ou

cat /dev/urandom | tr -dc _A-Z-a-z-0-9 | head -c8 && echo


Mudar nome de usuário

Para mudar o nome do usuário foo para bar, execute como root no proccm:

vipw

e procure por foo usando

/foo

Certifique-se de que o que você encontrou foi foo e não alguma coisa que começa com "foo", como, por exemplo "foodeu". Feito isso, substitua foo por bar. Se quiser mudar também o diretório do usuário, mude, é na mesma linha. Agora saia e salve com

ESC : x

O mesmo procedimento usado para vipw deve ser usado para vigr, vipw -s, vigr -s.

Se você mudou o diretório do usuário, vai precisar mover manualmente o diretório de

/home/foo

para

/home/bar

Agora finalize com

cd /var/yp
make

Bugs

Esse procedimento pode gerar muitos bugs, especialmente se mudar o diretório.

Firefox

Se o diretório do usuário for mudado, ele não conseguirá abrir o firefox. Para resolver isso, edite o arquivo

/home/bar/.mozilla/firefox/profiles.ini

Na linha do Path, substitua foo por bar.

Fluxbox

Se o diretório do usuário for mudado, o fluxbox não abrirá algumas configurações do usuário. Para resolver isso, edite os arquivos

/home/bar/.fluxbox/init
/home/bar/.fluxbox/lastwallpaper
/home/bar/.fluxbox/styles/ALGUMACOISA   (descubra qual)

e substitua todos os /home/foo/ por /home/bar/


Editar quotas

Edite a quota de um usuário foo qualquer com

edquota foo

e a seguir aplique-a a todos os usuários com

edquota -p foo `awk -F: '$3 >= 1000 && $3 < 1200 {print $1}' /etc/passwd`

(supondo que o uid de todos os usuários esteja entre 1000 e 1200).


Reiniciar o LightDM

Logue-se como root e dê o comando

/etc/init.d/lightdm restart


Configurar o kernel default do grub

Edite o arquivo /boot/grub/menu.lst - a primeira opção é exatamente essa. Coloque ali o número (contado a partir do zero) da opção de kernel definida mais abaixo. Só.


Clonar partições

Na máquina slave (que vai receber os dados), faça um boot qualquer que permita acessar a rede (por um CD de instalação do Ubuntu, por exemplo).

Particione do mesmo jeito que a máquina a ser clonada, e então descubra o IP (use ifconfig para isso).

Agora vem a clonagem de fato. Para clonar o sda2, por exemplo

nc -l -p 9000 | dd of=/dev/sda2

Agora, na máquina master (que vai fornecer os dados), dê

dd if=/dev/sda2 | nc IPgoesHERE 9000

onde IPgoesHERE é o IP que você descobriu agora há pouco.

Ver quem está logado em todas as máquinas

Execute o comando

 sudo ku

Consertos para problemas comuns

Usuário sem som

Por algum motivo misterioso, apagar o arquivo .pulse-cookie e reiniciar o pulseaudio costuma resolver o problema. O script /scripts/som faz isso automaticamente, basta o usuário executá-lo.

Links recomendados

Para entender melhor como funciona nossa rede e também a internet: [1]