Come faccio ad automatizzare la distribuzione del software complesso?

Il nostro cliente ha una soluzione che comprende diversi prodotti che collaborano tra di loro. Quando aggiorniamo una parte della soluzione, dobbiamo fornire la guida dell'amministratore per each sistema operativo (XP, Windows 7, Windows Server 2008 ecc.). La guida dice:

  • Quali servizi e processi dovrebbero essere fermati prima dell'aggiornamento
  • Quali file devono essere eseguiti con il backup
  • Quali chiavi di configuration devono essere aggiornate
  • Quali programmi / moduli dovrebbero essere disinstallati
  • Quali programmi / moduli dovrebbero essere installati
  • Come verificare se l'aggiornamento è riuscito
  • Fasi di recupero
  • eccetera

Fondamentalmente mettiamo i file di installazione in una cartella di networking e forniamo script powershell che dovrebbe essere eseguito su workstation che il cliente desidera aggiornare. Questo script può essere piuttosto complesso e può cambiare drasticamente dall'installazione all'installazione.

Suppongo che ci sia una piattaforma per facilitare tale distribuzione?

  • tutum - docker: il file host non viene aggiornato come per i collegamenti
  • Installazione del server Ubuntu
  • Come distribuire le applicazioni Enterprise Windows-8 ad altri utenti?
  • Come risolvere l'installazione dell'applicazione durante la distribuzione del sistema SCCM 2012?
  • Distribuzione di file a più server
  • Miglior attrezzo Ghost-Like Server per Windows
  • Automazione della distribuzione del server
  • Sicurezza di distribuzione del dominio MDT
  • 3 Solutions collect form web for “Come faccio ad automatizzare la distribuzione del software complesso?”

    Non c'è nessun "proiettile magico" in grado di gestire questi tipi di cose per te. Sarei scettico di chi ti dice che c'è.

    Vengo da uno background di utilizzo di script di build controllati in un VCS, quindi probabilmente la mia polarizzazione mostra qui.

    Mi rivolgo a un paio di articoli che altri hanno menzionato:

    Windows Installer certamente sembra attraente all'inizio, ma non è un "pranzo gratuito". Se si sceglie di creare pacchetti di Windows Installer, dovrai solo incapsulare le dependencies e la logica nello script nel pacchetto di installazione, forse con molta bruttezza come grandi quantità di azioni personalizzate. In effetti, si utilizzerebbe Windows Installer come ambiente di scripting con un gruppo di interrogativi e limitazioni incorporati.

    Se si utilizza un sistema di gestione della configuration (Configurazione Stato desiderato, Puppet, ecc.), Dovrai ancora modellare le dependencies e la logica. Con un sistema di gestione della configuration devo darsi che ti sbatteresti nei limiti della capacità della piattaforma di descrivere le vostre dependencies, a quel punto dovrai comunque integrare con gli script.

    Penso che tu abbia iniziato la strada giusta con il tuo script Powershell. Avrei commentato l'episodio dello script e avrei lavorato molto duramente per build un singolo script (o, più probabilmente, suite di script più piccoli che vengono chiamati da un singolo script centrale) in grado di gestire tutti i vari scenari di installazione. Utilizzo il software di controllo delle versioni per mantenere questi script. Nella misura in cui è ansible per i prodotti da installare da blob opachi binari, buildi nella logica di prova per validationre che questi installatori stanno funzionando.

    Utilizza un installatore standard (.msi), questo prende cura di molte cose. Guarda WiX per una piattaforma open source per build il programma di installazione.

    Potresti voler guardare il Puppet. Ho usato per gestire la configuration dei computer basati su Unix, ma funziona anche con Windows OS.

    http://www.puppetlabs.com

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.