Quais são as suas melhores práticas e planos futuros para implantar desktops unixoid? [fechadas]

9

Eu tenho configurado desktops Linux para um observatório de rádio sem fins lucrativos. Para mim, essa foi a primeira vez que tive que pensar em "implantar" várias máquinas idênticas, centralizando login, diretórios pessoais e assim por diante. Logo ficou claro para mim que, talvez ao contrário da intuição, a filosofia "tudo é textual" não necessariamente torna isso uma tarefa fácil, e me perguntei o que os administradores experientes fazem a respeito disso.

No meu caso, eu estava instalando o Ubuntu 10.04 LTS em cada máquina. Após a instalação, executei um script personalizado que altera arquivos de configuração, remove e instala o software e copia alguns arquivos, como imagens de plano de fundo ou marcadores de navegador, do servidor. Eu penso, entretanto, que minhas perguntas são independentes de distro.

Problemas

Eu estava principalmente encontrando dois problemas: Primeiro, ferramentas inconsistentes e arquivos de configuração, tanto através de distribuições e através de versões, e em segundo lugar algum software crucial não expondo configurações para arquivos de configuração de uma maneira fácil e intuitiva.

Deixe-me dar dois exemplos curtos do que quero dizer:

A ferramenta ifconfig está sendo substituída por ip . Todos os scripts que dependem da presença do primeiro serão quebrados se, por exemplo, forem executados em uma caixa atual do ArchLinux. Então, eu precisaria verificar quais ferramentas em quais versões estão presentes em uma máquina em que eu executo um script ... isso de alguma forma parece reinventar o autoconf em pequena escala.

Para o segundo problema, considere que eu queria dar aos desktops uma espécie de "identidade comum". No meu post-install-config-script, eu uso as seguintes linhas para conseguir isso:

scp user@server:/export/admin/*.jpg /usr/share/backgrounds/
scp user@server:/export/admin/ubuntu-wallpapers.xml /usr/share/gnome-background-properties/
sed 's/warty-final-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/10_libgnome2-common
sed 's/warty\-final\-ubuntu\.png/MyBackground\.jpg/' -i /usr/share/gconf/defaults/16_ubuntu-wallpapers
sed 's/ubuntu-mono-dark/ubuntu-mono-light/' -i /usr/share/gconf/defaults/16_ubuntu-artwork
sed 's/Ambiance/Clearlooks/' -i /usr/share/gconf/defaults/16_ubuntu-artwork

Suponho que criar um IC é uma tarefa comum para administradores organizacionais. Então, como é que não existe um recurso de configuração central, talvez até mesmo um desktop cruzado? Ter que definir dois (valores idênticos!) Valores não documentados em dois arquivos de configuração distintos me parece estranho.

Perguntas

Em um ambiente organizacional, como você lida com configurações centrais e unificadas em vários clientes?

Sistemas como o FAI do Debian oferecem vantagens significativas (além de não ter que trocar CDs) pelo meu método de "instalar primeiro, executar o script depois"?

Quais são as boas práticas para a transição entre as principais versões de sua distribuição? E, além das coisas técnicas: existe um ambiente de desktop que promete estabilidade a longo prazo no que diz respeito à experiência do usuário? Eu não acho que posso migrar meus usuários para o KDE 4 ou o GNOME 3, mas o XFCE ainda tem algumas desvantagens funcionais ...

Existe um sistema * nix que aborda esse tipo de problema de configuração? Por exemplo, suponho que existam sistemas que solicitam algumas imagens de sua organização (logotipos, imagens de plano de fundo, cores e conjuntos de fontes etc.) e as aplicam ao gerenciador de login, áreas de trabalho dos usuários, aplicativos da Web (!) E em. Nota: No nosso caso, tenho que trabalhar com clientes gordos, portanto, uma solução puramente thin client não ajudará.

    
por jstarek 04.08.2011 / 17:57

4 respostas

3

Usar Puppet ou CFEngine ou Chef é a solução certa para o seu problema. Claro que vai consumir algum tempo e julgamento & abordagem de erro para escrever o script Puppet que apenas funciona. Essas ferramentas são amplamente usadas para automatizar instalações complexas na nuvem e simplificaram a vida de administradores como nós. :)

    
por 30.08.2011 / 16:20
3

Primeiro, não espere que seja fácil trabalhar com várias distribuições.

Eu não executei grandes distribuições de área de trabalho. Para mim, a melhor alternativa era usar uma inicialização da LAN / tftp para inicializar o sistema e executar a instalação via NFS. A maioria das distro Linux pedem a você toda a configuração inicial - então você pode deixar o instalador rodando por, digamos, 40 minutos, sem ajuda (sem "Você realmente quer rodar este programa?"). Naquele momento, eu estava cuidando das máquinas Redhat e Suse - e tinha um RPM preparado com todas as configurações personalizadas que eu instalei após a instalação padrão ser concluída. No entanto, é bem possível automatizar tudo isso em uma variedade de distros.

Não sou muito fã da distribuição do Ubuntu por várias razões, mas a Lanscape da Canonical é uma ferramenta muito impressionante. E se você estiver fazendo muitas instalações em grande escala do Ubuntu / gerenciando múltiplos desktops do Ubuntu, definitivamente vale a pena dar uma olhada mais de perto.

    
por 04.08.2011 / 18:14
1

Eu tenho trabalhado muito com um software chamado CFEngine . É um gerenciador de configuração de código aberto que lê as "regras" que você define e garante que todas as máquinas estejam vinculadas e respeitem essas regras. É completamente código aberto e tão útil que nossa empresa decidiu usar a versão suportada do software chamado Nova.

Esta é uma visão ampla de como isso funciona. Digamos que você tenha 4 computadores na sua rede gerenciada. Todos eles precisam ter um arquivo /etc/syslog.conf , de propriedade root, todos iguais (de acordo com o mestre) e chmod 777 . Você criaria esta regra no arquivo de configuração do CFEngine. No seu computador central, você tem o arquivo "master" /etc/syslog.conf . A cada x quantidade de tempo, a versão do CFEngine do seu computador passará pela rede e perguntará a cada caixa sobre o arquivo /etc/syslog.conf . A cópia local do CFEngine em execução em cada cliente consultará o arquivo em questão e reportará seu conteúdo, permissões, etc. Se não corresponder EXATAMENTE à sua cópia caster, o CFEngine enviará sua cópia ao cliente e verificará os arquivos novamente. Eles vão combinar e ele vai passar para a próxima regra.

Quanto à simplicidade, a sintaxe usada nas "regras" do CFEngine (que eles chamam de promessas) pode demorar um pouco para se acostumar, mas vale a pena aprender (acrescenta outra grande habilidade ao seu conjunto de habilidades).

    
por 25.08.2011 / 13:56
1

So, how come there is no central config facility,

O Gnome tem o GConf, que pode executar todas as tarefas menores:

link

link

O Ubuntu LTS é praticamente a única opção para suporte a longo prazo na área de trabalho.

A implantação de várias máquinas é quase possível com apenas um dd simples, mas as distribuições de desktops estão tornando isso uma rota menos atraente.

Considere também que uma opção agora é o chamado fat client .

    
por 25.08.2011 / 16:24