Skip to content

Ansible Role to setup my workstation and make it configurable. Includes my .dotfiles.

License

Notifications You must be signed in to change notification settings

MarauderXtreme/ansible-role-local-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

78ca12e · Aug 21, 2022

History

43 Commits
Aug 21, 2022
Aug 21, 2022
Nov 28, 2020
Aug 21, 2022
Aug 21, 2022
Aug 21, 2022
Aug 21, 2022
Oct 18, 2020
Aug 21, 2022
Oct 18, 2020
Oct 18, 2020
Aug 21, 2022
Oct 18, 2020
Oct 18, 2020
Oct 18, 2020
Oct 18, 2020
Aug 21, 2022
Oct 18, 2020
Oct 20, 2020

Repository files navigation

@MarauderXtreme local_system

This is a "small" ansible role to help me, set up my local system and make it configurable.

There are some configs and files baked (a.k.a hard-coded) into this role that I consider useful. Please use this at your own discretion. It is currently used for a KDE Neon system but should be usable against any debian-based system and easily adoptable for other distributions.

Requirements

There is a chicken'n'egg flaw in the role. The role prepares the system with become: yes but only in those tasks writes sudoers with NOPASSWD:. You should prevent errors by editing sudoers or copying sudoers to /etc/sudoers.

Role Variables

For all variables there are a defaults/main/* defined. All variables are prefixed with the role name local_system to prevent overlaps in naming. With overriding them in group or host vars it's possible to define own setups.

  • main.yml

    • nodejs_install_npm_user
      • needed by geerlingguy.nodejs
      • set to root
    • local_system_uppercase_folders
      • list of uppercase folder names under ~ that need to be translated to lower-case
    • local_system_projects_paths
      • list of various project paths/directories
    • local_system_paths_unshorten
      • list of directories that should not be shortened by p10k path prompt
  • packages.yml

    • local_system_general_packages
      • list of packages that should be on every system
    • local_system_debian_packages
      • list of packages only relevant on debian-based systems
    • local_system_ppa_packages
      • list of useful packages that come from launchpad ppas only
  • ppas.yml

    • local_system_ppa
      • list of launchpad ppas in the schema of ppa:USER/PPA
  • extra_software.yml

    • local_system_ubuntu_keyserver: keyserver.ubuntu.com
      • configurable ubuntu keyserver
    • local_system_extra_software.ubuntu
      • list of configuration for ppas not located at launchpad
      • Everything needs to be done manually
      • Two ways of setup
        • example entry for key from url

          - name: signal
            url: https://updates.signal.org/desktop/apt/keys.asc
            id: DBA36B5181D0C816F630E889D980A17457F6FB06
            repo: deb [arch=amd64] https://updates.signal.org/desktop/apt xenial main
            package: signal-desktop
        • example entry key from keyserver

          - name: teamviewer
            keyserver: "{{ local_system_ubuntu_keyserver }}"
            id: 8CAE012EBFAC38B17A937CD8C5E224500C1289C0
            repo: deb http://linux.teamviewer.com/deb
            package: teamviewer
  • git.yml

    • local_system_gitconfig
      • list of useful general gitconfig
    • local_system_diff_so_fancy_gitconfig
      • list of gitconfig for diff-so-fancy
  • pip.yml

    • local_system_pip
      • list of pip packages that are installed to the user dir
      • currently thefuck and powerline-status
  • versions.yml

    • nearly all those variables act as control mechanism
    • set them to false if you don't want to install/use certain things
    • I'm watching all those repos via gitpunch to update them
    • local_system_omz
    • local_system_omz_p10k
    • local_system_omz_autosuggests
    • local_system_bat
      • bat branch/tag/version
    • local_system_dsf
    • local_system_fzf
      • fzf branch/tag/version
    • local_system_genact
    • local_system_prettyping
    • local_system_firacode
      • firacode branch/tag/version or "package" for distro release
    • local_system_iosevka
    • local_system_unifraktur
    • local_system_nerdfonts
    • local_system_rambox
      • either pro or ce depending what you want
    • local_system_ramboxce
    • local_system_ramboxpro

Example Playbook

- hosts: localhost
  roles:
      - local_system

License

MIT

Author Information

Christoph Kepler development@kepler.international

Is it any good

Yes