Welcome to the Linux Installer repository! This collection of Ansible playbooks empowers you to effortlessly install and configure software on your Linux system.
The Ansible playbooks have been tested on the following Linux distributions:
- Ubuntu 22.04.2 LTS (x86_64)
# Update the apt repository
sudo apt update
# Install Git and Ansible
sudo apt install -y git ansible
# Clone this repository
git clone https://github.com/lpsouza/linux-installer.git
# Change to the repository directory
cd linux-installer
# Run `generate-inventory.sh` to generate the inventory file
bash ./generate-inventory.sh
# Tip: Edit the inventory file and modify as needed
# Install basic software and configure some initial settings and passwordless sudo
ansible-playbook playbooks/initial.yaml playbooks/passwordless.yaml --ask-become-pass
# After that, you can run any playbook as you need.
The initial.yaml
playbook installs the following software:
- ansible-lint: Checks playbooks for practices and behaviour that could potentially be improved
- apt-transport-https: Allows the use of repositories accessed via the HTTP Secure protocol
- apt-utils: Package manager related utility programs
- asciinema: Terminal session recorder
- bat: Cat clone with syntax highlighting and Git integration
- build-essential: Packages for building Debian packages
- ca-certificates: Common CA certificates
- coreutils: GNU core utilities
- csvkit: Utilities for working with CSV files
- curl: Command line tool for transferring data with URL syntax
- fuse: Filesystem in Userspace
- elinks: Advanced and well-established feature-rich text mode web browser
- htop: Interactive process viewer
- iputils-ping: Tools to test the reachability of network hosts
- jq: Command line JSON processor
- libasound2: Shared library for ALSA applications
- libgtk-3-0: GTK graphical user interface library
- libnss3: Network Security Service libraries
- lsb-release: Linux Standard Base version reporting utility
- lm-sensors: Hardware monitoring sensors
- mc: Midnight Commander file manager
- mtr: Network diagnostic tool
- nano: Nano text editor (inspired by Pico)
- ncdu: Disk usage analyzer with an ncurses interface
- neofetch: Fast, highly customizable system info script
- net-tools: Legacy network management utilities
- pandoc: Universal document converter
- python-is-python3: Symlink /usr/bin/python to python3
- python3-pip: Python package installer
- software-properties-common: Common software needed to manage software repositories
- sqlite3: Command line interface for SQLite
- unzip: De-archiver for .zip files
- wget: Command line tool for retrieving files using HTTP, HTTPS, and FTP
- whois: Intelligent WHOIS client
- zip: Archiver for .zip files
Install AWS CLI
ansible-playbook playbooks/aws-cli.yaml
Install Azure CLI
ansible-playbook playbooks/azure-cli.yaml
Configure Bash
ansible-playbook playbooks/bash.yaml
Install Bashtop
ansible-playbook playbooks/bashtop.yaml
Install DBeaver
ansible-playbook playbooks/dbeaver.yaml
Install Docker
ansible-playbook playbooks/docker.yaml
Install .NET SDK
ansible-playbook playbooks/dotnet.yaml
Install duf
ansible-playbook playbooks/duf.yaml
Install Exa
ansible-playbook playbooks/exa.yaml
Install GitHub CLI
ansible-playbook playbooks/gh.yaml
Configure Git global settings using GIT_USERNAME
and GIT_EMAIL
environment variables
export GIT_USERNAME="John Doe"
export GIT_EMAIL="john.doe@foobar.com"
ansible-playbook playbooks/git.yaml
Install GNS3
ansible-playbook playbooks/gns3.yaml
Install Helm
ansible-playbook playbooks/helm.yaml
Install Home Assistant CLI and configure HASS_SERVER
and HASS_TOKEN
environment variables.
export HASS_SERVER="https://homeassistant.local:8123"
export HASS_TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ansible-playbook playbooks/homeassistant-cli.yaml
Install Insync
ansible-playbook playbooks/insync.yaml
Install k3s
ansible-playbook playbooks/k3s.yaml
Install K9s
ansible-playbook playbooks/k9s.yaml
Install Keychain
ansible-playbook playbooks/keychain.yaml
Install KubeCM
ansible-playbook playbooks/kubecm.yaml
Install kubectl
ansible-playbook playbooks/kubectl.yaml
Install Kustomize
ansible-playbook playbooks/kustomize.yaml
Configure lid closing action to ignore
ansible-playbook playbooks/lid-closing.yaml
Install MongoSH
ansible-playbook playbooks/mongosh.yaml
Install MQTT Explorer
ansible-playbook playbooks/mqtt-explorer.yaml
Install Neovim
ansible-playbook playbooks/neovim.yaml
Install Nerd Fonts
ansible-playbook playbooks/nerdfont.yaml
Install NVM
ansible-playbook playbooks/nvm.yaml
Install PowerShell
ansible-playbook playbooks/powershell.yaml
Install public key using PUBKEY
environment variable
export PUBKEY="ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ansible-playbook playbooks/pubkey.yaml
Configure SSH daemon
ansible-playbook playbooks/sshd.yaml
Install Starship
ansible-playbook playbooks/starship.yaml
Install Terraform
ansible-playbook playbooks/terraform.yaml
Install tmux
ansible-playbook playbooks/tmux.yaml
Configure timezone data
ansible-playbook playbooks/tz.yaml
Install X Windows System
\ansible-playbook playbooks/x-windows.yaml
ansible-playbook playbooks/zsh.yaml
Embrace effortless software installation and configuration! The power of Ansible is at your fingertips. Explore our playbooks, adapt them to your needs, and simplify your Linux experience. Let's automate together! 🚀