Administre de forma segura archivos de puntos en varias máquinas usando Chezmoi |
¿Cómo maneja sus archivos de puntos que se encuentran en múltiples servidores que administra o brinda soporte? Ya sea el .bashrc o el .zshrc que contienen sus preciados alias y otras configuraciones útiles, hasta otros innumerables archivos de puntos que hacen que su trabajo sea más fácil o que valga la pena, usted acepta que Se vuelve tedioso crearlos cada vez que se muda a un nuevo entorno o cuando tiene nuevas cargas de trabajo (servidores) en su clúster. Esta guía trae buenas noticias para todos aquellos que necesitan algo que les quite la molestia de crearlos una y otra vez.
Con Chezmoi, tiene la oportunidad de administrar sus archivos de puntos en múltiples máquinas de una manera bien ordenada, presentable y segura. Podrá administrar archivos de configuración en varias máquinas, por ejemplo, su computadora portátil macOS personal, su computadora de escritorio Ubuntu de trabajo y su computadora portátil Linux de trabajo. Y nos sumergimos profundamente en esta herramienta milagrosa y nos aseguramos de que sus archivos de puntos ya no sean una espina clavada en su trabajo. Por lo tanto, instalaremos y veremos cómo Chezmoi realiza el trabajo que se le ha encomendado y que se le ha encomendado realizar.
Las características clave de Chezmoi
Chezmoi resuelve muchos de sus problemas con archivos dot con las siguientes características:
- Flexibilidad: puede compartir tanta configuración entre máquinas como desee, sin dejar de poder controlar los detalles específicos de la máquina.
- Personal y seguridad: puede utilizar el sistema de control de versiones de su elección para administrar su configuración y puede escribir el archivo de configuración en el formato que elija. chezmoi puede recuperar secretos de 1Password, Bitwarden, gopass, KeePassXC, LastPass, pass, Vault, Keychain, Keyring o cualquier utilidad de línea de comandos de su elección.
- Transparencia: chezmoi incluye modos detallados y de ejecución en seco para que pueda revisar exactamente qué cambios realizará en su directorio de inicio antes de realizarlos.
- Es declarativo y robusto: usted declara el estado deseado de archivos, directorios y enlaces simbólicos en su fuente de verdad y chezmoi actualiza su directorio de inicio para que coincida con ese estado.
- Es rápido y fácil de usar: chezmoi se ejecuta en fracciones de segundo y realiza la mayoría de las operaciones diarias con comandos de una sola línea, incluida la instalación, la inicialización y el mantenimiento de sus máquinas actualizadas.
Tenga en cuenta que necesita una cuenta de Git y un repositorio en cualquier sistema Git que prefiera (GitLab, GitHub, BitBucket, etc.)
Antes de eso, vale la pena señalar que Chezmoi se puede instalar de varias maneras, como se documenta en su página de GitHub.
Instale Chezmoi en varias distribuciones de Linux
Antes de instalar chezmoi, es prudente actualizar primero su sistema e instalar git.
###Install git on Centos###
sudo yum -y install git
###Install git on Ubuntu###
sudo apt install git -y
###Install git on Arch Linux###
sudo pacman -S git
Chezmoi se puede instalar en varias distribuciones de Linux de la siguiente manera.
Instalar en Alpine Linux
apk add chezmoi
Instalar en Arch Linux
sudo pacman -S chezmoi
Instalar en Guix Linux
guix install chezmoi
Instalar en NixOS Linux
nix-env -i chezmoi
Instalar en Void Linux
xbps-install -S chezmoi
Instalar Chezmoi en macOS
Instale Chezmoi en macOS usando Homebrew de la siguiente manera
brew install chezmoi
Instale Chezmoi usando binario de una línea
Otra opción para instalar chezmoi es utilizar el binario de una línea. De esta manera, se instalará el binario correcto para su sistema operativo y arquitectura en ./bin con un solo comando.
cd ~
curl -sfL https://git.io/chezmoi | sh
sudo cp -r ~/bin/chezmoi /usr/local/bin
Configurar Chezmoi para gestionar archivos dot
Según su documentación, chezmoi almacena el estado deseado de sus archivos dot en el directorio ~/.local/share/chezmoi. Cuando ejecuta chezmoi apply, chezmoi calcula los contenidos y permisos deseados para cada archivo de puntos y luego realiza los cambios necesarios para que sus archivos de puntos coincidan con ese estado.
Para empezar a utilizar chezmoi, tendremos que inicializarlo de la siguiente manera:
$ chezmoi init
Initialized empty Git repository in /home/tech/.local/share/chezmoi/.git/
Esto creará un nuevo repositorio git en ~/.local/share/chezmoi con permisos 0700 donde chezmoi almacenará el estado fuente. chezmoi sólo modifica archivos en la copia de trabajo. Es su responsabilidad realizar cambios.
En caso de que ya tenga archivos de puntos que desee "incorporar" a chezmoi, puede administrarlo con el siguiente comando chezmoi
chezmoi add ~/.zshrc
Al hacerlo, se copiará ~/.zshrc a ~/.local/share/chezmoi/dot_bashrc. Si desea agregar una carpeta completa a chezmoi, debe agregar el argumento/cambiador -r después de agregar.
Después de agregar su archivo a chezmoi, puede editar el estado fuente de un archivo de esta manera:
chezmoi edit ~/.zshrc
Esto abrirá ~/.local/share/chezmoi/dot_zshrc en su $EDITOR. Para mí, abrirá el archivo usando el editor vi ya que ese es el editor predeterminado. Puede cambiar esto editando a qué apunta la variable de entorno $EDITOR. Haz algunos cambios y guárdalos.
Lo bueno de chezmoi es que puedes ver qué cambios haría chezmoi antes de guardar el archivo de esta manera:
chezmoi diff
Una vez que esté satisfecho con las ediciones, puede aplicar los cambios de la siguiente manera:
chezmoi -v apply
Finalmente, abra un shell en el directorio fuente, confirme sus cambios en el repositorio git local y salga. Al emitir "chezmoi cd", accederá al directorio ~/.local/share/chezmoi.
chezmoi cd
git add dot_zshrc
git commit -m "Add .zshrc"
exit
Crear un archivo de configuración
“chezmoi init” puede crear un archivo de configuración automáticamente, si aún no existe uno. En su repositorio, cree un archivo llamado “.chezmoi.
$ chezmoi cd
##For toml file format##
touch .chezmoi.toml.tmpl
##For json file format##
touch .chezmoi.json.tmpl
##For yaml file format##
touch .chezmoi.yaml.tmpl
Después de crear el archivo, ejecute chezmoi init para crear el archivo de configuración “~/.config/chezmoi/chezmoi.toml”. Tenga en cuenta que la extensión cambiará según el formato de archivo que eligió anteriormente.
chezmoi init
Usando chezmoi para administrar archivos dot en múltiples máquinas
Para poder acceder a sus archivos de puntos locales en diferentes computadoras, necesitamos tener un lugar central donde se guardan sus archivos. Chezmoi trabaja con Git. Proceda a clonar el repositorio de git en ~/.local/share/chezmoi en un servicio Git alojado, por ejemplo GitHub, GitLab o BitBucket.
chezmoi cd
git init
git commit -m "dotfiles commit"
git branch -M main
git remote add origin https://github.com/JohnKibe/dotfiles.git
git push -u origin main
Puede llamar a su repositorio con cualquier nombre, pero muchas personas prefieren llamar a sus repositorios de archivos de puntos archivos de puntos. A partir de ahí, configure chezmoi en una computadora separada como se cubrió en los pasos anteriores y luego clone su repositorio de git de la siguiente manera:
Nota: Debe haber creado un repositorio con un nombre de su elección, como dotfiles.
$ chezmoi init https://github.com/JohnKibe/dotfiles.git
Cloning into '/home/tech/.local/share/chezmoi'...
Username for 'https://github.com': <your-username>
Password for 'https://<your-username>@github.com':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
Esto verificará el repositorio y los submódulos y, opcionalmente, creará un archivo de configuración chezmoi para usted. No realizará ningún cambio en su directorio de inicio hasta que ejecute:
chezmoi apply
Alternativamente, puede extraer los últimos cambios de su repositorio y ver qué cambiaría, sin aplicar los cambios ejecutando:
chezmoi source pull -- --rebase && chezmoi diff
Este comando ejecuta git pull –rebase en su directorio de origen y chezmoi diff luego muestra la diferencia entre el estado de destino calculado desde su directorio de origen y el estado real.
Una vez que realice cambios en los archivos del repositorio de git, puede iniciar sesión en cualquiera de sus máquinas, extraer y aplicar los últimos cambios desde su repositorio con el siguiente comando:
chezmoi update
Y con eso, ahora es sencillo tener todos sus archivos de puntos en cualquier máquina en la que desee tenerlos. Ya no tendrás que escribir nuevos archivos de puntos en cada nueva máquina en la que te encuentres. Tu trabajo ahora debería ser tan simple como escribir comandos chezmoi.
Utilice Bitwarden para guardar sus secretos
chezmoi incluye soporte para Bitwarden usando la CLI de Bitwarden para exponer datos como una función de plantilla. Si no tiene Bitwarden instalado, puede usar Snapcraft para instalarlo fácilmente. Además, debes tener una cuenta de Bitwarden para poder utilizar sus servicios.
Instale Bitwarden CLI usando snap o npm de la siguiente manera
$ sudo snap install bw
##or using npm##
$ npm install -g @bitwarden/cli
Entonces puedes iniciar sesión en tu cuenta.
$ bw login
? Email address: <your-email-address>
? Master password: [hidden]
You are logged in!
Desbloquee su bóveda Bitwarden:
bw unlock
Configure la variable de entorno BW_SESSION, según las instrucciones.
###For Linux###
export BW_SESSION="2cvamm4lAfeH+Ztlsdtwerhwrtjwt3qEbTqsdfasgry36ceIuY7/lfC1pVS7esIHDFoITq7DIy3V3xTpFK=="
###For PowerShell###
$env:BW_SESSION="2cvamm4lAfeHd+ZtlqpXnGmF93qEbTqfa3hbQJo8y36ceIuY7/lfC1pVS7esIHDFoITq7DIy3V3xTpFK=="
Los datos estructurados de “bw get” están disponibles como la función de plantilla bitwarden en sus archivos de configuración, por ejemplo:
username = {{ (bitwarden "item" "GeeksAdmin").login.username }}
password = {{ (bitwarden "item" "StrongPassword").login.password }}
Observaciones finales
Lo que hemos cubierto hasta ahora en la guía es sólo una gota en el mar. Con Chezmoi, puede utilizar sus herramientas de seguridad de contraseñas favoritas como Bitwarden, gopass y KeePassXC, entre otras, para proteger sus archivos de puntos más privados. Para obtener una visión más profunda de lo que chezmoi puede hacer, consulte su guía práctica detallada y experimente más funciones que esta increíble herramienta puede ofrecer.