Carica tutto con il coltello

Diciamo di avere un repository Chef standard con directory come segue:

cookbooks data_bags environments roles 

C'è un modo per caricare tutto in una sola volta? Altrimenti devi farlo:

 knife cookbook upload -a knife data bag from file data_bags/*.json knife environment from file environments/*.rb knife role from file roles/*.json 

Forse ci sono strumenti di terze parti per fare questo tipo di cose?

  • Provvedere e implementare minimamente il Chef?
  • Comando Knife per controllare gli ultimi check-ins nodes?
  • Chef - SSH senza password
  • Il coltello SSH non trova i miei nodes
  • creando libri di cucina e ruoli con il chef-server
  • Chef: la connessione è stata rifiutata per il caricamento del cookbook
  • Una ricetta del chef per installare il ruby ​​1.9.3 sistema largo senza rvm né rbenv
  • Il sacco di dati di caricamento del coltello non funziona con Chef :: ChefFS :: FileSystem :: OperationNotAllowedError
  • 5 Solutions collect form web for “Carica tutto con il coltello”

    Assicurarsi di utilizzare ruby 1,9, quindi installare i coltelli-essenziali

     $ gem install knife-essentials 

    Quindi aggiungere il seguente a ~ / .chef / knife.rb

     repo_mode 'everything' versioned_cookbooks true chef_repo_path 'PATH/TO/chef-repo' 

    Quindi è ansible scaricare / caricare l'integer server, o solo parti di esso. Il download metterà un sacco di file .json nel tuo chef-repo, utile per i backup che ho trovato.

     $ knife download / $ knife upload / $ knife upload /clients 

    Inoltre, se hai dei ruoli memorizzati come file ruby (ad esempio: roles/*.rb ), devi trasformarli in json. Quindi è ansible ri-scaricare da server di chef come json. Per esempio:

    1. knife role from file roles/*.rb
    2. knife download roles/

    Questo metodo viene utilizzato anche per aggiornare dal server chef 10-11 .

    Potresti scrivere un semplice script bash per farlo come:

     #!/bin/sh for file in `ls cookbooks`;do [ -d $file ] && knife cookbook upload cookbooks/$file done for file in `ls data_bags | grep \.json$`;do knife data bag from file data_bags/$file done for file in `ls environments | grep \.rb$`;do knife environment from file environments/$file done for file in `ls roles | grep \.json$`;do knife role from file roles/$file done 

    quindi chiamarlo usando ./script.sh, questo farà tutto automaticamente.

    Ho scritto un piccolo plug del coltello denominato sync-all descritto di seguito che realizza anche questo:
    https://github.com/cdoughty77/knife-sync-all

    Attualmente i docenti dicono che dovresti semplicemente knife upload / . Ci sono altre possibilità nei documenti.

    Dallo chef repository.

    Se si esegue il knife upload . carica tutto.

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