Ansible automates the management of remote systems and controls their desired state. This repository holds Ansible playbooks and configurations to automate the setup and configuration of my workstation environment.
Features:
- Effortless Setup: Streamline the installation of essential software, packages, and system configurations.
- Consistent Environment: Ensure a consistent development environment across different machines.
- Customization: Easily tailor the playbooks to your specific needs and preferences.
- Reduced Errors: Minimize manual configuration errors and ensure repeatability.
Supported Systems:
- This repository is currently configured for Debian and Fedora.
Currently:
- Setup Bash aliases for frequently used commands.
- Clean up apps like gnome-games, libreoffice, firefox.
- Upgrade all installed packages.
- Install Development packages like gcc and git.
- Enable Non-Free repositories to install proprietary software.
- Install Nvidia-Drivers if the flag is enabled.
- Setup base miniforge.
- Install github cli.
- Install misc packages.
- Install Tailscale VPN.
- Install and enable cron.
- Copy and setup my encrypted SSH keys if the flag is enabled.
- Install various apps from flatpak.
- Install VS Code.
- Install Chrome Browser, for compatibility purposes.
- Setup my preferred Miniforge envs.
- Install Cloudflare VPN.
- Install Turbo button for my acer laptop.
- Modify Gnome settings, appearances, and key bindings.
- Clone this repo:
git clone https://github.com/mitanshu7/ansible_workstation.git
tip: bit.ly/mitans points to this repo to download in case git isn't available on your new installation.
- Change directory:
cd ansible_workstation
- Modify parameters in
host_vars/localhost
andgroup_vars/workstation/vars
to your liking. - Run the bash script:
bash run_setup.sh
- Enter the
sudo
andansible-vault
password. - Enjoy your tea/coffee till your machine sets itself up for you!
- Add/copy other ssh keys to vault too.(6a4306d6824bee871f2e95881cbcb92327139ec2)
- Maintain a vault-free branch to enable public use.
- Make the code more efficient for:
- Chrome (6393cd1af12cb4e51e5f629666ebcb7e8486eb81)
- miniforge (6393cd1af12cb4e51e5f629666ebcb7e8486eb81)
- Add kindle ssh key and alias
- Have a list of flags for software to be installed.
- Documentation for individual playbooks and configurations.
- Setup a user
ansible
and configureansible-pull
for an up-to date system. - Make sure the setup work on a multi-user env without disrupting any other user in the os
- This repository uses Ansible roles to organize configurations for specific functionalities.
- Shoutout to LearnLinuxTV for all the resources!
This repository is provided for educational purposes and should be used at your own discretion. The configurations might need adjustments depending on your specific environment and preferences.