Puppet è un po 'un mostro per aggirare la testa, quindi imparare dall'esempio non è una cosa negativa. Nel seguito suppongo che tu stia utilizzando i moduli: per favore, in un commento, se non lo sei o se hai bisogno di maggiori dettagli su come mettere insieme il modulo.
Diciamo che avvii un nuovo modulo chiamato mymodule
. Nella directory principale delle marionette (di solito /etc/puppet
) sul master delle marionette è necessario creare la directory manifest e files del modulo:
mkdir -p modules/mymodule/manifests
mkdir -p modules/mymodule/files
Quindi crea un file nella directory denominata init.pp
e inserisci:
class myfile {
file { '/home/operator1/Desktop/Backup':
ensure => directory,
mode => '0755',
owner => 'operator1',
group => 'operator1',
}
file { "/home/operator1/Desktop/Backup/datas.xls":
mode => "0644",
owner => 'operator1',
group => 'operator1',
source => 'puppet:///modules/module_name/datas.xls',
}
}
Quindi inserire il datas.xls
file nella directory del modulo files
- in questo esempio in modules/mymodule/files/
. (Nota che può esserci anche una templates
directory per i modelli ).
Nel manifests/site.pp
file devi importare il modulo e includere la classe facendo qualcosa del tipo:
import 'mymodule'
node base {
include myfile
}
node server1 inherits base {}
node server2 inherits base {
# extra config here
}
Assicurati che tutti i tuoi nodi ereditino dalla base e che dovrebbe essere tutto ciò che devi fare. A partire dal pupazzo 0.25 puoi usare espressioni regolari nel nome del nodo, ad esempio:
node server[0-9] inherits base {}
Fammi sapere nei commenti se hai bisogno di ulteriori chiarimenti.
Configurare un client per parlare con il burattinaio
Sul client, devi fare:
sudo apt-get install puppet
Quindi modifica /etc/default/puppet
e modifica START=no
in START=yes
.
Inoltre, modifica /etc/puppet/puppet.conf
e aggiungi una riga alla [main]
sezione per indicare dove trovare il burattinaio:
server=puppet.mydomain.com
Quindi possiamo eseguire un test con sudo puppetd --test
. In caso di errori chiave, potrebbe essere necessario passare al server principale delle marionette e firmare la chiave client. Per controllare il nome esatto che puoi fare sudo puppetca --list
e poi sudo puppetca --sign server1.mydomain.com
(o qualunque sia il nome del server dal comando list).
Ora inizia il servizio di marionette con sudo service puppet start
e dovresti essere via. Il servizio fantoccio verrà eseguito ogni ora, quindi se aggiorni le tue ricette fantoccio verranno aggiornati anche tutti i tuoi clienti.
Eliminazione di file
Noto nella domanda originale che volevi sapere come eliminare i file. Dovresti modificare l' manifests/init.pp
essere
file { "/home/operator1/Desktop/Backup/datas.xls":
ensure => absent,
}
Altri consigli utili
Se hai problemi ci sono alcune cose che puoi fare. Su qualsiasi macchina con pupazzo installato è possibile verificare la sintassi eseguendo
puppet --parseonly --ignoreimport myfile.pp
o controlla l'intero lotto togliendo la --ignoreimport
bandiera, anche se questo può portare ad alcuni divertenti messaggi di errore che non sono realmente errori che ho trovato. Puoi anche eseguire il pupazzo dal vivo su una macchina client fantoccio facendo:
sudo puppetd --test
che mostra vari output utili, con errori e avvisi evidenziati in diversi colori. Se desideri ulteriori dettagli, puoi eseguire:
sudo puppetd --test --debug
ma questo generalmente genera così tanto output che è difficile guadare, quindi fallo solo se hai già provato i passaggi precedenti e sei bloccato e devi vedere tutto ciò che viene fatto.
Nota che questo si basa sul pupazzo 0.25.x che è quello che uso attualmente al lavoro, ed è anche la versione di Ubuntu 10.04. Il codice fantoccio nella sezione principale funzionerà sicuramente, ma le versioni successive di fantoccio hanno nuovi flag che possono aiutare con l'output di debug.