Sincronizar el directorio /etc/ de Linux

Sincronizar el directorio /etc/ de Linux

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 /etcdirectorio.
  • 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-excludemosca. 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.

información relacionada