Usage
Getting Started
Clone this repo, enter the directory and run the ansible-playbook command to install the software.
wget https://github.com/TerrorSquad/ansible-post-installation/archive/refs/heads/master.zip \
&& unzip master.zip \
&& cd ansible-post-installation-master
Optional: GitHub Token for Rate Limiting
Griffin downloads many packages from GitHub releases. If you encounter rate limiting issues, you can optionally provide a GitHub token:
- Create a Personal Access Token (optional):
- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate a token with
public_reposcope - Copy the token
- Use with playbook:
ansible-playbook ./playbook.yaml -K -e username=$(whoami) -e github_token=YOUR_TOKEN_HERE
Note: This is completely optional. Griffin works without a token, but may hit GitHub's rate limits during heavy usage (60 requests/hour vs 5000 with token).
Running Playbooks
Linux Systems
Default: Install CLI Tools
This is the default playbook that installs command-line interface (CLI) tools. It's useful for servers or headless systems like WSL.
ansible-playbook ./playbook.yaml -K -e username=$(whoami)
Configure git user
To configure git user, pass the following extra variables:
ansible-playbook ./playbook.yaml -K -e username=$(whoami) -e "git_user_email='your@email.com'" -e "git_user_name='Your Name'"
Install GUI tools
This playbook enables the installation of graphical user interface (GUI) tools.
ansible-playbook ./playbook.yaml -K -e username=$(whoami) -e=gui=true -e=dev_tools_gui=true
Install all software
To install all available software (both CLI and GUI), use the following command:
ansible-playbook ./playbook.yaml -K -e username=$(whoami) -e=all=true
macOS Systems
Default: Install CLI Tools
ansible-playbook ./playbook_macos.yaml -K -e username=$(whoami)
Configure git user
ansible-playbook ./playbook_macos.yaml -K -e username=$(whoami) -e "git_user_email='your@email.com'" -e "git_user_name='Your Name'"
Install GUI tools
ansible-playbook ./playbook_macos.yaml -K -e username=$(whoami) -e=gui=true -e=dev_tools_gui=true
Install all software
ansible-playbook ./playbook_macos.yaml -K -e username=$(whoami) -e=all=true
Using Tags (New!)
You can now run specific parts of the setup using Ansible tags. This is faster and more granular than running the whole playbook.
Run only shell configuration (Zsh, Oh My Zsh, Powerlevel10k):
ansible-playbook ./playbook.yaml -K -e username=$(whoami) --tags "shell"
Install only specific languages:
ansible-playbook ./playbook.yaml -K -e username=$(whoami) --tags "rust,golang"
Available Tags:
system: System preparationhomebrew/packages: Install and configure Homebrewshell/zsh/dotfiles: Shell configuration (Zsh, Oh My Zsh, Powerlevel10k)dev/git/editors: Development foundation (git config, neovim)languages/programming: Programming languages (requires language flags)rust,golang,java: Specific languagesgui: GUI applicationsdev-tools: Development tools containerdocker: Docker installationddev: DDEV installationfonts: Fonts installationvpn: VPN installationcleanup: Final cleanup tasks
Note: Using a tag like --tags "rust" automatically enables the corresponding feature flag (rust=true), so you don't need to pass it manually.
Congratulations
You've successfully installed Griffin! Now you can enjoy a streamlined and efficient Linux experience.
Available Flags
You can customize the installation by using these flags:
-e all=true: Installs all software, including both CLI and GUI tools.-e dev_tools_gui=true: Installs GUI tools specifically for development from the dev_tools_gui.yaml file.-e gui=true: Installs general-purpose GUI tools from the general_use_software_gui.yaml file-e gestures=true: Installs tools related to libinput gestures from the libinput_gestures.yaml file-e rust=true: Installs the Rust programming language and associated tools.-e golang=true: Installs the Go programming language (Golang) and associated tools-e java=true: Installs SDKMan, a tool for managing multiple Java versions-e git_user_email="your@email.com" and -e git_user_name="Your Name": Sets the Git user configuration values username: Sets the username for which the configuration should be applied. Can be overridden from its default value in defaults/main.yaml-K: Prompts for the root password, necessary for certain installation and update tasks-e github_token=YOUR_TOKEN: Optional GitHub token to avoid rate limiting (see above section)
Troubleshooting
GitHub Rate Limiting
If you see errors related to GitHub API rate limits:
- Try with a GitHub token (see section above)
- Wait and retry - Rate limits reset every hour
- Run with fewer packages - Use specific flags instead of
-e all=true
Common Issues
- Permission denied: Make sure to use
-Kflag for sudo password - Connection timeouts: Check your internet connection
- Package conflicts: Some packages may conflict with existing installations