Guia de Sobrevivência Molecular dos Admins

De Wikoleculares
Ir para navegação Ir para pesquisar

Bem vindos ao Guia de Sobrevivência Molecular dos Admins. Aqui vocês deverão encontrar a grosso modo o que vocês devem aprender para sobreviver na sala de computação do favo e como usar alguns benefícios que nós temos com ela, além de entender a estrutura da mesma, pelo menos em termos gerais.

Infraestrutura (Em construção)

Um pouco de história

Ao longo dos anos, a infraestrutura do curso foi mudando um pouco. Em tempos longínquos quando tudo isso daqui era mato, existia o Lnx00 (lembrar de por foto do Lnx00 vestido de terno na formatura da T6), o qual foi sucedido pelo Apostol (servidor). Hoje em dia, nosso servidor atual é o Fleming (servidor), um grande guerreiro que sobreviveu ao O Grande Desastre da Água de Ar-Condicionado na salinha do Fleming, onde não apenas foi alagado como também conseguiu pegar fogo de algum jeito, queimando um de seus HD's ao explodir um capacitor. Hoje em dia o Fleming foi restaurado quase totalmente a sua antiga gloria graças ao trabalho dos admins da epoca. Além dos servidores, a sala de comp como um todo foi crescendo mudando e se modernizando (ou quase isso) com o tempo.

Principais elementos

Uma das informações mais importantes pertinentes ao trabalho de admins é o conhecimento da estrutura da nossa rede local, representada no Diagrama de Rede do CM (versão de 2017, créditos ao Thiago). Vamos olhar um pouco cada um dos espaços e componentes com mais detalhes:

Sala do Servidor


Não se engane pela placa de "Manutenção" escrita na porta, aqui fica localizado o coração da nossa rede interna, bombeando pacotes de dados 24h/dia (exceto nos ocasionais picos de luz, inundações e incêndios). Apertada, meio carente de limpeza por vezes, esta sala deve ficar constantemente refrigerada para manter o bom funcionamento do Switch e dos servidores, sendo para isso munida de dois aparelhos de ar condicionado (dos quais, em geral, apenas um funciona enquanto o outro irriga as máquinas). Vejamos com mais detalhe cada um dos componentes:

SWITCH

O Switch (representado pela máquina grande com "I nabo CM" e com um [1] em cima no diagrama, embora infelizmente não na vida real) é responsável por receber, gerenciar e redistribuir pacotes de dados pela rede interna do CM, na prática fornecendo internet para todos os terminais de rede no Favo. Possui acesso em 24 portas, das quais duas são especialmente destinadas aos servidores. Em geral não há muito o que ser feito com ele, em caso de problemas, como em 99% dos casos e seguindo o Teorema Fundamental da Computação, geralmente reiniciá-lo um certo número de vezes é suficiente para resolver qualquer problema. As entradas de rede estão numeradas de forma consoante com as portas do Switch, portanto se eventualmente for necessário trocar o acesso das portas isso pode ser feito trocando os cabos de lugar (mas não faça isso sem supervisão de um admin sênior, porque sem alguns dos cabos errados forem trocados de lugar, vai ser impossível corrigir na confusão de cabos ligados à máquina).

FLEMING

O Fleming, nomeado em honra ao Fleming é o servidor WEB do CM, responsável por hospedar a Wiki e os sites pessoais dos alunos (entre eles, aquele conhecido como tesouro do curso). Costumava hospedar também o serviço de email do CM, mas esse está inativo ainda sem planejamento definitivo sobre seu retorno. Está representado pela máquina com 'Fleming' escrito em cima (surpreendente), e, diferente do Proccm, não está ligado na LAN do Favo, possuindo apenas um IP fixo público externo. Roda atualmente Debian 8 (jessie) em um Itautec MX201 (1GB de RAM, dois HDs de 80GB em RAID 0 com espaço para 8 HDs, processador Intel Xeon), usando Apache2 para configurar o serviço web. Costumava hospedar também o site oficial do curso, até queimar um HD durante a inundação e transferirmos para outro lugar.

PROCCM

O PROCCM é o servidor local do Favo, hospedando as informações de usuário e arquivos pessoais da Proaluno de todos os alunos do CM. Seu hardware é uma máquina da positivo de 2011, com um processador Intel Celeron, ~300GB de HD e 2GB de RAM, sendo para todos os efeitos igual aos demais computadores. Também roda atualmente o Debian 8, e suas funções de compartilhamento são efetuadas pelos protocolos NFS (Network File System) e NIS (Network Information System). Uma das prioridades atuais é a expansão do seu HD ou substituição da máquina por uma especializada para a tarefa de servidor, visto que o espaço disponível para novos usuários já está praticamente esgotado.

Sala de Computação


A Sala de Computação (também conhecida como sala de comp, aquele lugar que o Isac fica, mas não como PROCCM) é a sala Proaluno do CM, e é aqui que alunos costumam passar boa parte do tempo quando não estão em aula. Munida de 12 computadores de um modelo 2011 da Positivo, com processador Intel Celeron, ~300GB de HD, 2GB de RAM e nomeados a partir de cientistas famosos. Atualmente todas as máquinas rodam ArchLinux, após uma migração do tradicional XUbuntu, e temos como GUI preferencial o Gnome. Abriga também o roteador da nossa rede Wi-fi, o Boteco do Carlos-Magno. Uma das principais funções de admins é manter as máquinas daqui atualizadas e em bom funcionamento, portanto lembre-se de checar regularmente por novas atualizações e pesquisar possíveis bugs destas antes de atualizar tudo de uma vez e acabar deixando a sala inutilizável.

Outros

Canon

A nossa temperamental impressora é uma Canon, integrada na LAN via servidor CUPS. Constante fonte de problemas principalmente devido a não haver suporte da empresa ao Linux, em geral devem ser seguidos passos cuidadosos para realizar um impressão, caso contrário o keymap do arquivo confunde o processador da impressora e temos uma folha inteiramente preta como resultado. Prepare-se para ouvir 200 reclamações por dia por problemas de impressão, e treine a velocidade de abrir o terminal, listar jobs e cancelar jobs antes que lagos de toner sejam desperdiçados.

Wiki

A Wiki, pela qual você está lendo este guia agora, está hospedada no Fleming, e é gerada pelo MediaWiki, utilizando PHP5, PHPMyAdmin e MySQL para gerar os recursos e tabelas de base de dados. Em geral deve ser atualizada de tempos em tempos, corrigindo bugs dos pacotes e mantendo as atualizações de segurança. Quaisquer dúvidas a respeito do seu funcionamento ou problemas eventuais costumam ter explicações e respostas no MediaWiki, portanto procure primeiro por lá.

Sites dos Alunos

Temos a tradição de hospedar sites pessoais para os alunos do curso no Fleming, e qualquer um pode requisitar sua conta de usuário. Atualmente o DNS destes está associado ao domínio da Wiki, no IP do Fleming, portanto da forma wiki.cecm.usp.br/~foo .

Site do CM

O site oficial do curso, que costumava estar hospedado no Fleming, hoje em dia encontra-se na nuvem do CETISP, de onde gerenciamos remotamente. Contém a listagem de alunos do curso, além de alguns projetos de avançado de alunos formados e informações básicas para quem interesse em conhecer o curso, sendo uma fonte importante de divulgação. Uma curiosidade é que o domínio foi criado quando o CM ainda se chamava Curso Experimental de Ciências Moleculares, explicando a existência do "E" extra.

Linux

Básico

Como parte do esforço dos admins em facilitar a aprendizagem de Linux por parte dos bixos, selecionamos uma série de referências para quem está dando os primeiros passos. A apostila introdutória do IME foi escolhida pelos admins como referência base para ensinar GNU/Linux aos bixos cecêmicos. Se vc é bixo e nunca teve nenhum contato com Linux recomendamos que comece por ela. Se vc é bixo e já tem alguma experiência com Linux, sinta-se a vontade para seguir a referência que quiser.

Além disso listamos alguns dos comandos mais importantes que você precisa saber para usar um computador com sistema operacional Gunu/Linux. Certifique-se de conhecê-los ao final do estudo. Caso algum tenha passado, uma googlada rápida do tipo "<comando> linux" deve resolver seu problema.


Comandos báscicos: man, cd, ls, ssh, scp, cat, nano, cp, rm, mv, kill, pkill, killall, ps, pwd, mkdir, rmdir, echo

Referências úteis: (escolha sua preferida/faça uma mistura quando alguma estiver incompleta)

Apostila básica de Linux do IME Recomendada pelos admins aos iniciantes, é interessante por apresentar os básicão de uma forma rápida e não entediante.

Tutorial do Bluewhale (Veterano Ruggiero) Criado para um CMinario sobre Linux, bem introdutorio mas interessante, aborda varios temas.

Wiki oficial do Ubuntu

Curso do Code Academy Dá o básico de bash, bem incompleto mas bem didatico.

Infowester lista de comandos básicos Bem objetivo, mais uma lista de comandos com descrição.

Avançado

Aqui alguns conteúdos mais avançados que você deverá saber para entender melhor sobre o GNU/Linux e se tiver interesse em se tornar admin da sala de computação.

Além disso selecionamos uma série de referências com o mesmo objetivo de aprofundar os conhecimentos. Pra quem quer entender a fundo o sistema operacional recomendamos como referência base o livro Descobrindo o Linux, listado a seguir nas referências. Infelizmente não encontramos pdfs deste livro disponibilizados online e atualmente ele não consta no acervo da biblioteca. Porém não deixe que a falta de acesso seja um impecilho ao seu aprendizado. Contate os admins pq alguns deles tem exemplares do livro e podem te emprestar. Vc pode também tentar pedir pro coordenador liberar dinheiro para a compra de alguns exemplares da biblioteca, alegando que é um livro importante. Estaremos trabalhando para melhorar o acesso à este livro.


Referências úteis:

Pequeno manual do administrador "Pequeno" manual criado pelos admins ao longo dos anos, cheio de informações uteis relacionadas ao dia dia da sala de comp.

Descobrindo o Linux Livro extremamente completo sobre Linux, começa do bem básico e chega até o bem avançado, ótimo para quem quer entender a fundo esse sistema operacional.

Overthewire Site com desafios estimulantes nos quais é necessario aprender algo para passar de nivel, uma maneira de aprender fazendo.

Wiki da distribuição Arch Linux Muito útil para tudo, desde aprender a instalar arch até as aprender as especificidades dos pacotes.

Stackexchange Forúm de programação num geral.

Tópicos Muito importantes:

Hd e partições: capítulos 3 e 39 do Descobrindo o Linux (DL), wikipédia sobre gpt, arch wiki sobre particionamento

Ram e swap (memória virtual): cap 4 DL, arch wiki sobre swap

Filesystems: caps 5 e 29 DL, comando mkfs.ext4 e os outros mkfs.*

Inicialização do sistema: arch boot process (destaque para os bootloaders grub, efistub, refind e systemd-boot), arch wiki sobre uefi, arch wiki sobre esp, arch wiki sobre o arquivo fstab e arch sobre systemd

Gerenciadores de pacotes: pacman e algumas das páginas relacionadas, downgrading (pra qnd dá ruim rs), AUR, AUR Helpers com destaque para o yay, cap 16 DL

Instalando um sistema: Installation guide do arch. Interessante saber instalar outras distros como manjaro e ubuntu, mas sabendo instalar arch te garanto que as outras serão bem fáceis :p

Caso seja um novo admin: Configurando um PC da rede proaluno e pergunte a algum admin mais velho sobre a documentação do proccm e do fleming

Tópicos importantes:

Capítulos do Descobrindo o Linux: 6, 10 12, 13, 23, 24, 25, 26, talvez o 30, 45 (bem importante). Capítulos não mencionados podem até conter algo interessante, mas é mais a seu critério ler ou não. Parte II por exemplo é boa pra referência, mas é chata de ler. Acho que a dica é passar o olho no índice e ver se algo te chama a atenção.

Básico de bash: info page (info bash, meio grande, mas o mais importante está no começo)

Impressão: cups

Scanner: sane

Redes: ideia geral sobre protocolos TCP/IP, UDP, ICMP, OSI model (acho que as páginas da wikipédia devem bastar), dns e resolução de nomes (wiki, arch wiki e algo sobre bind), firewall (cap 12) e dhcp (arch wiki tb)

Básico de Apache: arch wiki e os links em "See also" (só pra ter uma ideia, não precisa fritar)

O que são sudoers, o que fazem, como vivem, o que comem

Como criar um usuário proccm

Como criar um usuário fleming + sites individuais

Páginas possivelmente interessantes: 1, 2