
Tengo una máquina virtual con Linux (servidor Ubuntu) que se utiliza como prototipo para otras máquinas. A veces hago cambios en el sistema prototipo y quiero importar estos cambios en alguna otra máquina.
Conozco Puppet, cfengine y FAI, pero quiero algo sencillo, por ejemplo, el script rsync que funcione a través de ssh cuando sea necesario.
El objetivo principal es el directorio /etc/. Pero no quiero sincronizar algunos archivos privados, por ejemplo /etc/passwd /etc/shadow, etc. No lo sé todo.
¿Hay consejos para mi tarea? Puede que alguien tenga ese script rsync.
Respuesta1
Una solución sencilla podría ser configurar git.
- Configure un repositorio git en su
/etc
directorio. - Configure un archivo de ignorar para excluir cosas que no desea migrar al sistema remoto.
- Agregue todo lo que no se ignore a su repositorio.
- En producción, extraiga del repositorio de desarrollo según sea necesario.
Respuesta2
Ya tienes la respuesta. rsync puede hacer lo que quieras, ejecuta ssh cuando lo desees y puede ignorar fácilmente los archivos que no deseas sincronizar:
rsync -avP source:/etc/ /etc/ --exclude-from list-of-files-to-exclude
Y simplemente agregue una lista de archivos para excluir de la list-of-files-to-exclude
mosca. Por ejemplo:
$ cat list-of-files-to-exclude
/passwd
/shadow
Por supuesto, seguiría recomendando encarecidamente el control de versiones y algo más sofisticado como Puppet. Y asegúrese de ocuparse de la propiedad y los permisos de los archivos.