{"id":13753165,"url":"https://github.com/cytopia/ansible-debian","last_synced_at":"2025-04-10T21:15:32.365Z","repository":{"id":27387076,"uuid":"113710773","full_name":"cytopia/ansible-debian","owner":"cytopia","description":"Buildfiles: Ansible automated leight-weight and sensible Debian provisioning","archived":false,"fork":false,"pushed_at":"2022-06-11T19:44:37.000Z","size":1989,"stargazers_count":91,"open_issues_count":3,"forks_count":20,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-10T21:15:26.716Z","etag":null,"topics":["ansible","ansible-roles","buildfiles","debian","dotfiles","dotfiles-install","dotfiles-resources","font","i3","i3-gaps","i3wm","inventory","profile","provision","provisioning","provisioning-scripts","python","workstations"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cytopia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-10T00:13:34.000Z","updated_at":"2025-03-30T19:55:25.000Z","dependencies_parsed_at":"2022-08-18T01:05:57.671Z","dependency_job_id":null,"html_url":"https://github.com/cytopia/ansible-debian","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fansible-debian","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fansible-debian/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fansible-debian/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytopia%2Fansible-debian/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cytopia","download_url":"https://codeload.github.com/cytopia/ansible-debian/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248298312,"owners_count":21080320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-roles","buildfiles","debian","dotfiles","dotfiles-install","dotfiles-resources","font","i3","i3-gaps","i3wm","inventory","profile","provision","provisioning","provisioning-scripts","python","workstations"],"created_at":"2024-08-03T09:01:17.529Z","updated_at":"2025-04-10T21:15:32.348Z","avatar_url":"https://github.com/cytopia.png","language":"Jinja","readme":"# Ansible Debian (buildfiles)\n\n**[TL;DR](#tldr)** | **[Features](#features)** | **[Custom profiles](#create-custom-profiles)** | **[Test your profile](#test-your-profile)**  | **[Options](#options)** | **[Requirements](#requirements)** | **[Stability](#stability)** | **[Other OS](#other-os)** | **[License](#license)**\n\n[![travis](https://travis-ci.org/cytopia/ansible-debian.svg?branch=master)](https://travis-ci.org/cytopia/ansible-debian)\n\u003cimg width=\"24\" height=\"24\" style=\"width:24px; height:24px;\" src=\"https://github.com/cytopia/icons/raw/master/128x128/ansible.png\" alt=\"Ansible\" title=\"Ansible\" /\u003e\n\u003cimg width=\"24\" height=\"24\" style=\"width:24px; height:24px;\" src=\"https://github.com/cytopia/icons/raw/master/128x128/debian.png\" alt=\"Debian\" title=\"Debian\" /\u003e\n\nWell-tested and customizable **[Ansible](https://www.ansible.com)** setup to provision your workstation with Debian.\n\nGet your system back under control. Manage packages not provided by default and keep track of repositories as well as of installed software. Any bundled package offers the possibility to fully manage them, i.e. make sure they are installed or removed. Of course you can also simply ignore them, in case you want to manage them yourself.\n\nIt is designed to be a generic **buildfiles** (as opposed to **[dotfiles](https://github.com/cytopia/dotfiles)**) manager. You can add as many profiles as you want (e.g.: for different hardware on different notebooks) and also have the choice to provision it locally or over the network.\n\n[![asciicast](https://asciinema.org/a/153924.png)](https://asciinema.org/a/153924)\n\n#### Table of Contents\n\n1. **[TL;DR](#tldr)**\n2. **[Features](#features)**\n    1. [Available tools](#available-tools)\n    2. [Fonts / Themes](#fonts--themes)\n    3. [Sensible customizations](#sensible-customizations)\n3. **[Create custom profiles](#create-custom-profiles)**\n    1. [Assumption](#assumption)\n    2. [Add a new profile](#add-a-new-profile)\n    3. [Add a profile configuration](#add-a-profile-configuration)\n    4. [Customize your profile](#customize-your-profile)\n    5. [Provision your profile](#provision-your-profile)\n4. **[Test your profile](#test-your-profile)**\n    1. [Docker](#docker)\n    1. [Vagrant](#vagrant)\n5. **[Options](#options)**\n    1. [Enable / Disable Management](#enable--disable-management)\n    2. [Package options](#package-options)\n6. **[Requirements](#requirements)**\n    1. [Install system requirements](#install-system-requirements)\n    2. [Sudo permissions](#sudo-permissions)\n7. **[Stability](#stability)**\n8. **[Other OS](#other-os)**\n9. **[Contributing](#contributing)**\n10. **[License](#license)**\n\n\n## TL;DR\n\nMake sure your system meets the **[requirements](#requirements)** before you start.\n\n#### Fully provision your system from scratch\n\nUse this to provision your system from scratch, when you have already submitted your profile upstream.\nThe only requirements are `bash` and `sudo`, everything else will be installed automatically.\n\n```bash\n# Provision default profile\ncurl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash\n\n# Provision profile 'generic-all'\ncurl https://raw.githubusercontent.com/cytopia/ansible-debian/master/bootstrap | bash -s generic-all\n```\n\n#### Manually provision your system from scratch\n\nUse this to provision your system from scratch, when you don't have a profile submitted to upstream yet.\n\n```bash\n# 1. Clone this project\ngit clone https://github.com/cytopia/ansible-debian\ncd ansible-debian\n\n# 2. Add your profile 'bob' (See 'Create custom profiles' section of this README)\n\n# 3. Provision your system (with profile 'bob')\n# Note when to use sudo and when not\nsudo make deploy-init\nmake deploy-apt-sources PROFILE=bob\nsudo make deploy-dist-upgrade\nmake deploy-tools PROFILE=bob\n```\n\n#### Dry-run the tools installation\n\n```bash\n\n# Dry-run everything for profile 'generic-all'\nmake diff-tools PROFILE=generic-all\n\n# Dry-run everything for profile 'generic-all' without role 'systemd'\nmake diff-tools PROFILE=generic-all IGNORE=systemd\n\n# Dry-run a specific role 'i3-gaps' \nmake diff-tools PROFILE=generic-all ROLE=i3-gaps\n```\n\n\n## Features\n\nThis Ansible repository allows you to provision your Debian machines and keeping them up-to-date. It allows you to create different profiles for different machines and offers packages that are not available by any Debian repository.\n\nThis is a base idempotent provisioning with sensible defaults that can be slightly adjusted. It is only meant as a **buildfiles** bootstrap. In order to customize the applications itself, you will still have to apply your personal **[dotfiles](https://github.com/cytopia/dotfiles)** on top of that.\n\n#### Available tools \n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth width=\"200\"\u003eTool\u003c/th\u003e\n   \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/autorunner\"\u003eautorunner\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eConfigurable and notification aware autostart helper for minimalistic window managers like i3, openbox and others\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.chromium.org/Home\"\u003echromium\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSets up Chromium, additional packages as well as specified extensions from Chrome webstore\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cdown/clipmenu\"\u003eclipmenu\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eClipboard manager with \u003ccode\u003edmenu\u003c/code\u003e or \u003ccode\u003erofi\u003c/code\u003e integration\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://dbeaver.jkiss.org\"\u003edbeaver\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eUniversal SQL Client\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/K-Phoen/Config/blob/master/bin/diff-highlight\"\u003ediff-highlight\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eTool for awesome \u003ccode\u003egit diff\u003c/code\u003e output\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://docs.docker.com/engine/installation/linux/docker-ce/debian\"\u003edocker\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eDocker repo and package and also making sure user is added to \u003ccode\u003edocker\u003c/code\u003e group\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://docs.docker.com/compose/install\"\u003edocker-compose\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eDownloads latest \u003ccode\u003edocker-compose\u003c/code\u003e binary\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/ffscreencast\"\u003effscreencast\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eFFmpeg wrapper for desktop-recording with video overlay and multi monitor support\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.mozilla.org/en-US/firefox/new\"\u003efirefox\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eFirefox Quantum\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/junegunn/fzf\"\u003efzf\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eCommand line fuzzy finder\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.gimp.org\"\u003egimp\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eGimp with \u003ca href=\"https://github.com/draekko/gimp-cc-themes\"\u003ePhotoshop theme and keybindings\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/i3/i3\"\u003ei3\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003ei3wm\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/Airblader/i3\"\u003ei3-gaps\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003ei3wm on steroids\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/i3-utils-bin\"\u003ei3-utils-bin\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eTools for i3wm\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/i3-utils-systemd\"\u003ei3-utils-systemd\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSystemd files for i3wm\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/i3blocks-modules\"\u003ei3blocks-modules\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eAwesome i3blocks modules\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/kubernetes/kops\"\u003ekops\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eKubernetes operations command line tool\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://kubernetes.io/docs/tasks/tools/install-kubectl/\"\u003ekubectl\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eKubernetes command line tool\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.libreoffice.org/\"\u003elibreoffice\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eLibreOffice 6 with \u003ca href=\"http://www.deviantart.com/art/Office-2013-theme-for-LibreOffice-512127527\"\u003eMsOffice 2013 Icon theme\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://wiki.archlinux.org/index.php/LXDM\"\u003elxdm\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eLeight-weight login manager\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/neovim/neovim\"\u003eneovim\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003evim on steroids\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://wiki.archlinux.org/index.php/NetworkManager\"\u003enetwork-manager\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eGnome's LAN and WIFI network manager with optional system tray\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/robbyrussell/oh-my-zsh\"\u003eoh-my-zsh\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eA delightful community-driven framework for managing your zsh configuration.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.packer.io\"\u003epacker\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eHashiCorp's packer to build automated machines\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://pinta-project.com/pintaproject/pinta\"\u003epinta\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eOpen source Paint.Net / MsPaint clone.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/ranger/ranger\"\u003eranger\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eCommand line file manager with inline image preview (can also be used as \u003ca href=\"https://www.everythingcli.org/use-ranger-as-a-file-explorer-in-vim/\"\u003evim file manager\u003c/a\u003e)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.skype.com/en/get-skype\"\u003eskype\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSkype repo and package\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.sublimetext.com\"\u003esublime\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSublime repo and package\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/muennich/sxiv\"\u003esxiv\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSmall, fast and low-dependency image viewer with vim binding\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://freedesktop.org/wiki/Software/systemd/\"\u003esystemd\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eManage enabled, disabled and masked systemd services\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://telegram.org\"\u003etelegram\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eTelegram desktop repo and package\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.terraform.io\"\u003eterraform\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eHashiCorp's Infrastructure as Code provisioner\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://wiki.archlinux.org/index.php/Thunar\"\u003ethunar\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eThunar and its requirements to handle external disks as well as encrypted disks\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/thunar-custom-actions\"\u003ethunar-custom-actions\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eThunar custom actions\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.mozilla.org/en-US/thunderbird\"\u003ethunderbird\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eThunderbird and globally defined add-ons\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/cytopia/linux-timemachine\"\u003etimemachine\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eOSX like timemachine for the command line\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"http://rxvt.sourceforge.net\"\u003eurxvt\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSmall, fast and leight-weight 256 color unicode terminal emulator\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.virtualbox.org\"\u003evirtualbox\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eVirtualBox upstream repository and packages\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/wavexx/acpilight\"\u003exbacklight\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eModern cross-GPU xbacklight replacement\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://wiki.archlinux.org/index.php/Default_applications\"\u003exdg-mime-meta\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eDefines default applications for xdg-open\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://www.x.org/wiki\"\u003exorg\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eXorg and its dependencies as well as GPU and touchpad configurations\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://pwmt.org/projects/zathura\"\u003ezathura\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eSmall, fast and low-dependency pdf viewer with vim bindings\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\n#### Fonts / Themes\n\u003ctable\u003e\n \u003cthead\u003e\n  \u003ctr\u003e\n   \u003cth width=\"200\"\u003eTool\u003c/th\u003e\n   \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n \u003c/thead\u003e\n \u003ctbody\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/DroidSansMono\"\u003efont-droid-sans-mono\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eDroidSansMono Nerdfont with many glyphs and unicode symbols\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"http://fontawesome.io/icons\"\u003efont-font-awesome\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eFontAwesome as a system font\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/supermarin/YosemiteSanFranciscoFont\"\u003efont-san-francisco\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eOSX Yosemite San Francisco font\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/ryanoasis/nerd-fonts/blob/master/patched-fonts/Terminus/font-info.md\"\u003efont-terminus\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eTerminus Nerdfont with many glyphcs and unicode symbols\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://design.ubuntu.com/font\"\u003efont-ubuntu\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eUbuntu's official font\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://snwh.org/moka\"\u003eicon-moka\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eMoka icon themes (for thunar or nautilus)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n   \u003ctd\u003e\u003ca href=\"https://github.com/horst3180/Arc-theme\"\u003etheme-arc\u003c/a\u003e\u003c/td\u003e\n   \u003ctd\u003eArc theme for GTK2, GTK3, Chrome and others\u003c/td\u003e\n  \u003c/tr\u003e\n \u003c/tbody\u003e\n\u003c/table\u003e\n\nSee [roles/](roles/) directory for all available packages. If you are missing one, open up an issue or a pull request.\n\n#### Sensible customizations\n\nAdditionally you can (but don't have to) manage the following:\n\n* [Xdg](https://wiki.archlinux.org/index.php/Default_applications) default applications\n* Custom apt packages can be added per profile\n* Custom pip packages can be added per profile\n* Custom Debian repositories can be added per profile\n* Debian distribution (stable is upgraded to testing)\n\n\n## Create custom profiles\n\nIn order to customize your workstation or Debian infrastructure, you can create profiles for each of your machines. This might be necessary due to different hardware or software preferences. Each **hostname** (real or made up) in the [inventory](inventory) file automatically represents one **profile**.\n\nBy the way Ansible works, each profile inherits all settings from [group_vars/all.yml](group_vars/all.yml). This file holds a sane default showing you all available options and with all packages unmanaged.\n\nIn order to actually **customize your profile**, you will have to create a file in [host_vars/](host_vars/) by the same name you have specified in [inventory](inventory). You can copy [group_vars/all.yml](group_vars/all.yml) directly or use an already existing profile from `host_vars`, such as [host_vars/generic-all.yml](host_vars/generic-all.yml).\n\nTo better understand how it works, you can follow this step-by-step example for creating a new profile:\n\n#### Assumption\nFor the sake of this example, let's assume your profile is called `dell-xps-i3wm`.\n\n#### Add a new profile\nAdd the following line to the bottom of [inventory](inventory):\n```bash\ndell-xps-i3wm    ansible_connection=local\n```\n\n`ansible_connection=local` defines that your profile should be applied to your local computer. If you want to create a profile for a remote computer, your profile name must be a hostname or IP address by which the remote machine is reachable over the network.\n\n#### Add a profile configuration\nAs already mentioned earlier, you can copy [group_vars/all.yml](group_vars/all.yml) or an already existing `host_vars` file.\n\nUse group_vars/all.yml as a default template:\n```bash\ncp group_vars/all.yml host_vars/dell-xps-i3wm.yml\n```\nUse an already existing host_vars file as a default template:\n```bash\ncp host_vars/generic-all.yml host_vars/dell-xps-i3wm.yml\n```\n\n#### Customize your profile\nSimply edit `host_vars/dell-xps-i3wm.yml` and adjust the values to your needs. If you have copied an already existing file, it will contain comments for all possible configuration options that let's you quickly see what and how to change.\n\n#### Provision your profile\nIf you want to test your profile in a Docker container prior actually provisioning your own system, skip to the next section, otherwise just run the following commands.\n\nRun the following command to see what would happen:\n```bash\nansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass --check\n```\nRun the following command to actually apply your profile:\n```bash\nansible-playbook -i inventory playbook.yml --diff --limit dell-xps-i3wm --ask-become-pass\n```\n\n\n\n## Test your profile\n\nBefore actually running any new profile on your own system, you can and you should test that beforehand. This can be done in a **Docker container** or in a **Vagrant box** in order to see if everything works as expected. This might also be very handy in case you are creating a new role and want to see if it works.\n\n#### Docker\n\n**Note:** The Docker image will always be auto-build before running the tests.\n\nBefore running you should be aware of a few arguments that can be applied to the `make` commands. See the table below:\n\n| Variable  | Required | Description |\n|-----------|----------|-------------|\n| `PROFILE` | yes      | The inventory hostname (your profile) |\n| `VERBOSE` | no       | Ansible verbosity. Valid values: `0`, `1`, `2` or `3` |\n| `ROLE`    | no       | Only run this specific tag (role name) |\n\nRun a full test of profile `generic-all`:\n```bash\nmake test-docker-full PROFILE=generic-all\n```\nRun a full test of profile `generic-all` in a random order:\n```bash\nmake test-docker-random PROFILE=generic-all\n```\nOnly run `i3-gaps` role in profile `generic-all`\n```bash\nmake test-docker-single PROFILE=generic-all ROLE=i3-gaps\n```\n\n#### Vagrant\n\nIf you don't trust the tests in Docker and want to see the end results graphically in a VM, you can also use Vagrant to do the same.\n\n```bash\nmake test-vagrant PROFILE=generic-all\n```\n\n\n## Options\n\n#### Enable / Disable Management\n\nLook for the package section and set them to a desired state. `install` or `remove` or any other value to ignore them.\n```bash\n$ vi host_vars/\u003cname\u003e.yml\n```\n```yml\n...\ni3-gaps:          'install'\nfont_ubuntu:      'install'\ndiff_highlight:   'install'\ndocker:           'remove'\ndocker_compose:   'remove'\nskype:            'ignore'\nsublime:          'ignore'\n...\n```\n#### Package options\n\nMany packages also come with options that you can tweak. You can for example define the Python version your system should provide:\n```bash\n$ vi host_vars/\u003cname\u003e.yml\n```\n```yml\n...\npython_2: yes\npython_3: yes\n...\n```\n\nAnother customization could be the default program to use when opening speficif file types:\n```bash\n$ vi host_vars/\u003cname\u003e.yml\n```\n```yml\n...\nxdg_mime_defaults:\n  - desktop_file: chromium.desktop\n    mime_types:\n      - text/html\n      - text/xml\n      - application/xhtml_xml\n      - application/x-mimearchive\n      - x-scheme-handler/http\n      - x-scheme-handler/https\n...\n```\n\nOr to set your **DPI** and other options for `lxdm`\n```bash\n$ vi host_vars/\u003cname\u003e.yml\n```\n```yml\n...\nlxdm_dpi: 132\nlxdm_gtk_theme: Arc-Darker\nlxdm_show_user_list: no\n...\n```\n\nChoose your GPU and touchpad driver:\n```bash\n$ vi host_vars/\u003cname\u003e.yml\n```\n```yml\n# Supported values: 'amdgpu' 'ati' 'intel' 'modesetting' 'nouveau' 'nvidia' 'radeon'\nxorg_gpu: modesetting\n# Enable VDPAU_DRIVER=va_gl systemwide\nxorg_gpu_vdpau_va_gl_enable: yes\n\n# 'libinput' or 'synaptics'\nxorg_touchpad_enable: yes\nxorg_touchpad_driver: 'synaptics'\n...\n```\n\n\n## Requirements\n\nBefore you can start there are a few tools required that must be present on the system. Just copy-paste those commands as root into your terminal.\n\n#### Install system requirements\n```\napt-get update\napt-get install --no-install-recommends --no-install-suggests -y \\\n  make \\\n  sudo\n```\n\n#### Sudo permissions\n\nMake sure your user is allowed run sudo\n```\nusermod -aG sudo \u003cusername\u003e\n```\n\n\n## Stability\n\nIn order to guarantee the most possible stability of this setup, extensive [travis-ci](https://travis-ci.org/cytopia/ansible-debian) checks have been defined which automatically run every night. Those tests are run inside a Docker container. The following test cases have been defined:\n\n* Each run is done randomized and in order as well as for each role separately\n* Each run is done for Debian stable and upgraded to testing\n* Each run is done against all defined profiles (repositories: main vs main, extra and non-free)\n\n\n## Other OS\n\nIf you are running a different OS and still want to provision your system with Ansible, have a look at the following similar projects:\n\n* Ubuntu - **[ansible-linux-laptop](https://github.com/dyindude/ansible-linux-laptop)**\n* Ubuntu - **[ansible-ubuntu](https://github.com/Benoth/ansible-ubuntu)**\n* Fedora - **[laptop_install](https://github.com/e-minguez/laptop_install)**\n\n\n## Contributing\n\nPlease feel free to contribute and add new roles as desired. When doing so have a look at **[CONTRIBUTING.md](CONTRIBUTING.md)** for required best-practices.\n\n\n## License\n\n**[MIT License](LICENSE.md)**\n\nCopyright (c) 2017 [cytopia](https://github.com/cytopia)\n","funding_links":[],"categories":["python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytopia%2Fansible-debian","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcytopia%2Fansible-debian","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytopia%2Fansible-debian/lists"}