🔧 🏠 Always WIP
- Install mise
dnf install git python3-pipgit clone https://github.com/sylvainmetayer/dotfiles.git $HOME/dotfiles- If you want autocomplete
activate-global-python-argcomplete --dest ~/.bashrc.d/chmod +x ~/.bashrc.d/python-argcomplete
Les playbooks sont maintenant aplatis dans le dossier playbook/ à la racine pour simplifier l'exécution. Chaque machine possède un fichier setup-<host>.yaml.
| Machine | Fichier | Commande |
|---|---|---|
| Dell (Fedora perso) | playbook/setup-dell.yaml |
pipenv run ansible-playbook playbook/setup-dell.yaml -K --extra-vars="ansible_python_interpreter=$(pipenv --venv)/bin/python" |
| Home (Fedora desktop) | playbook/setup-home.yaml |
pipenv run ansible-playbook playbook/setup-home.yaml -K --extra-vars="ansible_python_interpreter=$(pipenv --venv)/bin/python" |
| GOP (Laptop entreprise) | playbook/setup-gop.yaml |
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt pipenv run ansible-playbook playbook/setup-gop.yaml -K --extra-vars="ansible_python_interpreter=$(pipenv --venv)/bin/python" |
| WSL (Debian sous Windows) | playbook/setup-wsl.yaml |
pipenv run ansible-playbook playbook/setup-wsl.yaml --extra-vars="ansible_python_interpreter=$(pipenv --venv)/bin/python" |
Pour récupérer la valeur SSH_AUTH_SOCK (utile pour KeepassXC) : systemctl status --user ssh-agent puis configurer KeepassXC avec ce socket.
Le playbook GOP ajoute le rôle gop contenant des tâches spécifiques. Certains fichiers sont chiffrés via Ansible Vault. Gestion des outils (ex plugins) désormais via mise_global_plugins dans host_vars.
Pré-requis :
- Base de données
selfhosted.kdbxdisponible (sinon la télécharger depuis https://r.sylvain.dev/dotfiles-database). - Exécuter
./scripts/extract-secrets.sh DATABASE_LOCATIONpour extraire le mot de passe (stocké dans~/.ansible_vault_password.txt).
Fichiers sensibles :
FILE=$HOME/dotfiles/roles/gop/templates/aws_config.j2
FILE=$HOME/dotfiles/roles/gop/templates/ssh_hosts.j2
FILE=$HOME/dotfiles/playbooks/gop/locals.ymlOpérations Vault :
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt ansible-vault view $FILE
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt ansible-vault edit $FILE
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt ansible-vault encrypt $FILE
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt ansible-vault decrypt $FILEExécution :
ANSIBLE_VAULT_PASSWORD_FILE=~/.ansible_vault.txt pipenv run ansible-playbook playbook/setup-gop.yaml -K --extra-vars="ansible_python_interpreter=$(pipenv --venv)/bin/python"- Fix errors with psutils when running with pipenv
ansible-galaxy collection build
ansible-galaxy collection publish sylvainmetayer-workstation-1.0.0.tar.gz --token TOKEN