Tl; dr | Caractéristiques | Profils personnalisés | Testez votre profil | Options | Exigences | Stabilité | Autre OS | Licence
![]()
![]()
Configuration ANNIBLE bien testée et personnalisable pour provisionner votre poste de travail avec Debian.
Get votre système sous contrôle. Gérez les packages non fournis par défaut et gardez une trace des référentiels ainsi que des logiciels installés. Tout package groupé offre la possibilité de les gérer entièrement, c'est-à-dire assurez-vous qu'ils sont installés ou supprimés. Bien sûr, vous pouvez également les ignorer, au cas où vous voudrez les gérer vous-même.
Il est conçu pour être un gestionnaire générique BuildFiles (par opposition au DotFiles ). Vous pouvez ajouter autant de profils que vous le souhaitez (par exemple: pour différents matériels sur différents ordinateurs portables) et également avoir le choix de le fournir localement ou sur le réseau.
Assurez-vous que votre système répond aux exigences avant de commencer.
Utilisez-le pour fournir votre système à partir de zéro, lorsque vous avez déjà soumis votre profil en amont. Les seules exigences sont bash et sudo , tout le reste sera installé automatiquement.
# Provision default profile
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash
# Provision profile 'generic-all'
curl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-allUtilisez-le pour fournir votre système à partir de zéro, lorsque vous n'avez pas encore de profil soumis en amont.
# 1. Clone this project
git clone https://github.com/cytopia/ansible-debian
cd ansible-debian
# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)
# 3. Provision your system (with profile 'bob')
# Note when to use sudo and when not
sudo make deploy-init
make deploy-apt-sources PROFILE=bob
sudo make deploy-dist-upgrade
make deploy-tools PROFILE=bob # Dry-run everything for profile 'generic-all'
make diff-tools PROFILE=generic-all
# Dry-run everything for profile 'generic-all' without role 'systemd'
make diff-tools PROFILE=generic-all IGNORE=systemd
# Dry-run a specific role 'i3-gaps'
make diff-tools PROFILE=generic-all ROLE=i3-gapsCe référentiel Ansible vous permet de provisionner vos machines Debian et de les garder à jour. Il vous permet de créer différents profils pour différentes machines et propose des packages qui ne sont disponibles par aucun référentiel Debian.
Il s'agit d'un provisionnement idempotent de base avec des défauts sensibles qui peuvent être légèrement ajustés. Il est uniquement destiné à un bootstrap BuildFiles . Afin de personnaliser les applications elle-même, vous devrez toujours appliquer vos fichiers à points personnels en plus.
| Outil | Description |
|---|---|
| autoron | Helper Autostart configurable et conscience de la notification pour les gestionnaires de fenêtres minimalistes comme i3, openbox et autres |
| chrome | Configure le chrome, des packages supplémentaires ainsi que des extensions spécifiées de Chrome Webstore |
| clipmenu | Clipborning Manager avec dmenu ou rofi INTERGATION |
| dbeaver | Client SQL universel |
| difff-highlight | Outil pour une sortie git diff impressionnante |
| docker | Docker Repo and Package et s'assurer que l'utilisateur est ajouté au groupe docker |
| composer docker | Télécharges le dernier binaire docker-compose |
| ffscreencast | FFMPEG Wrapper pour l'enregistrement de bureau avec superposition vidéo et support multi-moniteur |
| incendier | Firefox Quantum |
| FZF | Finder flou de ligne de commande |
| gimp | GIMP avec le thème Photoshop et les clés |
| i3 | i3wm |
| i3-paps | i3wm sur les stéroïdes |
| i3-utils-bin | Outils pour i3WM |
| i3-utils-systemd | Fichiers systemd pour i3wm |
| i3blocks modules | Modules I3Blocks géniaux |
| kops | Outil de ligne de commande des opérations de Kubernetes |
| kubectl | Outil de ligne de commande kubernetes |
| libreoffice | LibreOffice 6 avec le thème de l'icône MSOffice 2013 |
| lxdm | Gestionnaire de connexion Leight-Weight |
| néovim | vim sur les stéroïdes |
| manager du réseau | GNOME'S LAN et WIFI Network Manager avec un plateau système en option |
| oh-my-zsh | Un charmant cadre communautaire pour gérer votre configuration ZSH. |
| emballeur | Packer de Hashicorp pour construire des machines automatisées |
| pinta | Clone Open Source Paint.NET / MSPAINT. |
| ranger | Manager de fichiers de ligne de commande avec aperçu d'image en ligne (peut également être utilisé comme gestionnaire de fichiers VIM) |
| skype | Skype Repo and Package |
| sublime | Sublime Repo and Package |
| sxiv | Visionneuse d'image petite, rapide et à faible dépendance avec liaison VIM |
| systemd | Gérer les services Systemd activés, désactivés et masqués |
| télégramme | Repo et package Telegram Desktop |
| terraform | L'infrastructure de Hashicorp en tant que provisoire de code |
| thunar | Thunar et ses exigences pour gérer les disques externes ainsi que les disques chiffrés |
| Thunar-Custom-Aactions | Actions personnalisées Thunar |
| tonnerre | Thunderbird et les modules complémentaires définis à l'échelle mondiale |
| calendrier | OSX comme TimeMachine pour la ligne de commande |
| urxvt | Petit émulateur de terminal Unicode de Color, petit et leight-weight 256 |
| virtualbox | Référentiel et packages VirtualBox en amont |
| XBacklight | Remplacement moderne de Cross-GPU Xbacklight |
| xdg-mime-meta | Définit les applications par défaut pour XDG-Open |
| xorg | Xorg et ses dépendances ainsi que les configurations GPU et pavé tactile |
| zathura | Visionneur PDF petit, rapide et à faible dépendance avec reliures VIM |
| Outil | Description |
|---|---|
| Font-Droid-Sans-Mono | Nerdfont DroidSansmono avec de nombreux glyphes et symboles Unicode |
| Font-Font-Awesome | Fontawesome comme police système |
| Font-san-Francisco | Font OSX Yosemite San Francisco |
| terminal de police | Terminus nerdfont avec de nombreux glyphes et symboles Unicode |
| font-Ubuntu | La police officielle d'Ubuntu |
| icon-moka | Thèmes d'icônes Moka (pour Thunar ou Nautilus) |
| arc thème | THÈME ARC pour GTK2, GTK3, Chrome et autres |
Voir les rôles / répertoire pour tous les packages disponibles. Si vous en manquez un, ouvrez un problème ou une demande de traction.
De plus, vous pouvez (mais vous n'êtes pas obligé) de gérer ce qui suit:
Afin de personnaliser votre poste de travail ou votre infrastructure Debian, vous pouvez créer des profils pour chacune de vos machines. Cela peut être nécessaire en raison de différentes préférences matérielles ou logicielles. Chaque nom d'hôte (réel ou composé) dans le fichier d'inventaire représente automatiquement un profil .
Soit dit en passant, ANSIBLE fonctionne, chaque profil hérite de tous les paramètres de groupe_vars / all.yml. Ce fichier contient une valeur par défaut saine qui vous indique toutes les options disponibles et avec tous les packages non gérés.
Afin de personnaliser réellement votre profil , vous devrez créer un fichier dans host_vars / du même nom que vous avez spécifié dans l'inventaire. Vous pouvez copier Group_vars / all.yml directement ou utiliser un profil déjà existant à partir de host_vars , tels que host_vars / generic-all.yml.
Pour mieux comprendre comment cela fonctionne, vous pouvez suivre cet exemple étape par étape pour créer un nouveau profil:
Pour le bien de cet exemple, supposons que votre profil est appelé dell-xps-i3wm .
Ajoutez la ligne suivante au bas de l'inventaire:
dell-xps-i3wm ansible_connection=local ansible_connection=local définit que votre profil doit être appliqué à votre ordinateur local. Si vous souhaitez créer un profil pour un ordinateur distant, votre nom de profil doit être un nom d'hôte ou une adresse IP par laquelle la machine distante est accessible sur le réseau.
Comme déjà mentionné précédemment, vous pouvez copier Group_vars / all.yml ou un fichier host_vars déjà existant.
Utilisez group_vars / all.yml comme modèle par défaut:
cp group_vars/all.yml host_vars/dell-xps-i3wm.ymlUtilisez un fichier host_vars déjà existant comme modèle par défaut:
cp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml Modifiez simplement host_vars/dell-xps-i3wm.yml et ajustez les valeurs à vos besoins. Si vous avez copié un fichier déjà existant, il contiendra des commentaires pour toutes les options de configuration possibles qui vous permet de voir rapidement quoi et comment changer.
Si vous souhaitez tester votre profil dans un conteneur Docker avant de provisionner en fait votre propre système, passez à la section suivante, sinon il suffit d'exécuter les commandes suivantes.
Exécutez la commande suivante pour voir ce qui se passerait:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --checkExécutez la commande suivante pour appliquer réellement votre profil:
ansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-passAvant d'exécuter un nouveau profil sur votre propre système, vous le pouvez et vous devez tester cela au préalable. Cela peut être fait dans un conteneur Docker ou dans une boîte vagabonde afin de voir si tout fonctionne comme prévu. Cela pourrait également être très pratique au cas où vous créez un nouveau rôle et que vous souhaitez voir si cela fonctionne.
Remarque: L'image Docker sera toujours une construction automatique avant d'exécuter les tests.
Avant de courir, vous devez être conscient de quelques arguments qui peuvent être appliqués aux commandes make . Voir le tableau ci-dessous:
| Variable | Requis | Description |
|---|---|---|
PROFILE | Oui | Le nom d'hôte des stocks (votre profil) |
VERBOSE | Non | Verbosité anable. Valeurs valides: 0 , 1 , 2 ou 3 |
ROLE | Non | Exécutez uniquement cette balise spécifique (nom de rôle) |
Exécutez un test complet de profil generic-all :
make test-docker-full PROFILE=generic-all Exécutez un test complet de profil generic-all dans un ordre aléatoire:
make test-docker-random PROFILE=generic-all Exécutez uniquement le rôle i3-gaps dans le profil generic-all
make test-docker-single PROFILE=generic-all ROLE=i3-gapsSi vous ne faites pas confiance aux tests dans Docker et que vous souhaitez voir les résultats finaux graphiquement dans une machine virtuelle, vous pouvez également utiliser Vagrant pour faire de même.
make test-vagrant PROFILE=generic-all Recherchez la section Package et définissez-les sur un état souhaité. install ou remove ou toute autre valeur pour les ignorer.
$ vi host_vars/ < name > .yml...
i3-gaps : ' install '
font_ubuntu : ' install '
diff_highlight : ' install '
docker : ' remove '
docker_compose : ' remove '
skype : ' ignore '
sublime : ' ignore '
...De nombreux packages sont également livrés avec des options que vous pouvez modifier. Vous pouvez par exemple définir la version Python que votre système devrait fournir:
$ vi host_vars/ < name > .yml...
python_2 : yes
python_3 : yes
...Une autre personnalisation pourrait être le programme par défaut à utiliser lors de l'ouverture des types de fichiers Speficif:
$ vi host_vars/ < name > .yml...
xdg_mime_defaults :
- desktop_file : chromium.desktop
mime_types :
- text/html
- text/xml
- application/xhtml_xml
- application/x-mimearchive
- x-scheme-handler/http
- x-scheme-handler/https
... Ou pour définir votre DPI et d'autres options pour lxdm
$ vi host_vars/ < name > .yml...
lxdm_dpi : 132
lxdm_gtk_theme : Arc-Darker
lxdm_show_user_list : no
...Choisissez votre GPU et votre pilote tactile:
$ vi host_vars/ < name > .yml # Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'
xorg_gpu : modesetting
# Enable VDPAU_DRIVER=va_gl systemwide
xorg_gpu_vdpau_va_gl_enable : yes
# 'libinput' or 'synaptics'
xorg_touchpad_enable : yes
xorg_touchpad_driver : ' synaptics '
...Avant de pouvoir commencer, il existe quelques outils qui doivent être présents sur le système. Il suffit de copier-coller ces commandes comme racine dans votre terminal.
apt-get update
apt-get install --no-install-recommends --no-install-suggests -y
make
sudo
Assurez-vous que votre utilisateur est autorisé à exécuter Sudo
usermod -aG sudo <username>
Afin de garantir la stabilité la plus possible de cette configuration, de nombreux chèques Travis-Ci ont été définis qui fonctionnent automatiquement tous les soirs. Ces tests sont exécutés dans un conteneur Docker. Les cas de test suivants ont été définis:
Si vous exécutez un système d'exploitation différent et que vous souhaitez toujours provisionner votre système avec ANSIBLE, consultez les projets similaires suivants:
N'hésitez pas à contribuer et à ajouter de nouveaux rôles comme vous le souhaitez. En le faisant, jetez un œil à contribuer.md pour les meilleures pratiques requises.
Licence MIT
Copyright (C) Cytopie 2017