Saiba (de relance) que seu cliente Mac está atualizado

4

Temos mais de mil clientes Mac e, ocasionalmente, emitimos alterações que afetam muitos ou todos eles (como instalar novos softwares, criar contas de usuários locais ou aplicar atualizações). Eu quero saber quais métodos você usa para saber que seus clientes estão atualizados, de relance , pois descobrimos que quando algumas máquinas perdem uma atualização, isso reflete bastante mal para nós :)

Emitindo alterações: estou me referindo ao uso de um sistema que implanta alterações, como Casper, Puppet, radmind, Apple Remote Desktop, ou mesmo um script expect habilitado para ssh com hackers.

Quanto a "uma olhada rápida", há dois lugares principais em que eu estaria olhando (especialmente se a informação não fosse realmente óbvia do sistema que emitiu as alterações):

  • entrando em um laboratório de informática e olhando para as telas (mesmo à distância)
  • digitalizando um laboratório pelo Apple Remote Desktop e observando os quatro campos personalizados.

Ocorre-me que uma simples mudança seria alterar o histórico da tela de login , ou para alterar o texto na janela de login . O que poderia ser ainda mais poderoso seria uma maneira de obter o plano de fundo padrão da área de trabalho e fazer uma cópia anotada (talvez com alguns pontos ou texto, para representar as alterações sofridas). [Alguém sabe como fazer isso, ou devo fazer uma pergunta separada, aqui ou no stackoverflow?]

A outra mudança simples é definir um dos quatro campos ARD, assim:

defaults write /Library/Preferences/com.apple.RemoteDesktop Text4 "'date +%Y-%m-%d'"

Então, o que você faz para saber se seus clientes estão atualizados (ou, alternativamente, o que você gostaria de fazer se soubesse como fazê-lo?)

    
por Clinton Blackmore 12.08.2009 / 13:10

3 respostas

2

Eu não tenho certeza se isso é exatamente o que você estava pensando, mas eu também posso compartilhá-lo não-a-menos.

Se fosse possível dizer se uma máquina estava ou não atualizada executando um comando de terminal no sistema, você poderia escrever seu próprio plugin personalizado do Nagios para automatizar as verificações. Isso envolveria ter uma chave SSH em cada sistema para permitir que o nagios faça login como um usuário não privilegiado e execute o comando de verificação.

Uma maneira muito simples de fazer isso seria ter suas atualizações sempre deixando algum tipo de string em um local pré-definido. Em seguida, tenha um arquivo no servidor Nagios com a string "mais recente". O plugin então teria que checar o flag na máquina contra o flag "latest" no servidor Nagios. Você pode então observar as atualizações se propagando no Nagios e ver rapidamente quais máquinas estão e não estão atualizadas.

Se quiser evitar muitas mensagens de erro quando as máquinas estiverem off-line, você poderá fazer com que o plug-in retorne um aviso em vez de um erro quando ele falhar na conexão e defina as notificações para que a verificação não acione em um aviso estado, somente em um estado de falha. Talvez, ainda mais simplesmente, você possa ativar e desativar a verificação de dentro da GUI do Nagios, quando precisar fazer uma verificação, em vez de deixá-la em execução.

Comida para pensar, talvez.

    
por 30.07.2009 / 18:29
0

Você pode obter versões de aplicativos a partir da linha de comando com isso

for app in /Applications/*.app; do 
  name='basename "$app" .app'
  ver='cat "$app/Contents/Info.plist" |grep -A1 CFBundleShortVersionString | tail -1 | sed -e 's/.*<string>//;s/<.*//''
  echo "$name:$ver"
done

Embora nem todo aplicativo use esse identificador no arquivo info.plist

    
por 30.07.2009 / 19:05
0

Quando você já tiver uma imagem em seu computador que deseja usar para o plano de fundo, esse script a definirá e informará a janela de login para recarregar e exibir a imagem (se ninguém estiver logado graficamente).

#!/bin/bash
# This script changes the background image on the login window
# Pass in the image name as the first parameter, or adjust it here:
NEW_IMAGE="/Library/Desktop Pictures/Nature/Earth Horizon.jpg"

if [[ "$1" != "" ]] ; then NEW_IMAGE="$1" ; fi

if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

# Change the desktop background
defaults write /Library/Preferences/com.apple.loginwindow DesktopPicture "$NEW_IMAGE"

# Restart the login window if there are no graphical users logged in
# (If there is someone logged in, the display will change when they log out)
if [ "'who | grep -c console'" -eq "0" ] ; then 
    killall -SIGHUP loginwindow 
fi
    
por 05.08.2009 / 18:36