/workstation

Manage my workstation config and setup

Primary LanguageJinja

Workstation Management

Automated provisoning and configuration management for my development workstation.

Machine

These are the specs of the current machine I am using:

Model: Dell Inc. XPS 15 7590
Integrated Graphics: Intel® UHD Graphics 630 (CFL GT2)
Discrete Graphics: NVIDIA GeForce GTX 1650 (4GB GDDR5)
Display: 15.6-inch UHD touchscreen
External Display Support: HDMI 2.0b x 1
Processor: Intel® Core™ i9-9980HK CPU @ 2.40GHz × 16
Memory: 32.0 GiB
Disk Capacity: 1.0 TB
Operating System: Fedora Workstation 34

Manual: XPS 15 7590 Setup and Specifications

Prerequisites

  1. Adminstrator (sudo) access by your user is required

Quick Start

Restore dependencies and run all playbooks:

sh run.sh

Usage

Dependencies

First restore python and ansible dependencies with the restore script. By default, these packages all install to the user scope ($HOME).

./restore.sh

NOTE: Most of the Python packages from requirements.txt are also necessary for various functionality in dotfiles or other user config as well. Therefore, if you want to install ansible to a virtualenv, you should do that manually by creating the virtualenv and pip install ansible

The community.general Ansible collection will be installed.
This playbook will also install rust, golang and some of their packages using the roles fubarhouse.rust and fubarhouse.golang.

Files and Templates

Some files like fonts, static configuration files, or binary archives are included in playbooks/files/ for use by the Ansible tasks.

Use the playbook variables to customize any of the templates from playbooks/templates/.

Packages Playbook

Install all required packages (from multiple package managers) and start+enable any services.

ansible-playbook playbooks/packages.yml

If this is your first run of the playbook, you will want to reboot afterwards.

Tags

There are some tags used to categorize and filter the tasks.

  • packages
  • buildtools
  • utilities
  • virtualization
  • drivers
  • flatpak
  • storage
  • network

Gnome UI Playbook

Apply GNOME settings, including themes, fonts, and other UI configurations.

ansible-playbook playbooks/gnome.yml

Tags

And some tags used for the user interface tasks as well...

  • packages
  • ui
  • files
  • repos
  • fonts
  • color
  • power
  • appimages
  • desktop
  • themes
  • terminal
  • gsettings
  • gnome