Skip to content

lpsouza/linux-installer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

linux-installer

Welcome to the Linux Installer repository! This collection of Ansible playbooks empowers you to effortlessly install and configure software on your Linux system.

Compatibility

The Ansible playbooks have been tested on the following Linux distributions:

  • Ubuntu 22.04.2 LTS (x86_64)

Usage

# 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.

Initial playbook

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

Playbooks installation

AWS CLI

Install AWS CLI

ansible-playbook playbooks/aws-cli.yaml

Azure CLI

Install Azure CLI

ansible-playbook playbooks/azure-cli.yaml

Bash

Configure Bash

ansible-playbook playbooks/bash.yaml

Bashtop

Install Bashtop

ansible-playbook playbooks/bashtop.yaml

DBeaver

Install DBeaver

ansible-playbook playbooks/dbeaver.yaml

Docker

Install Docker

ansible-playbook playbooks/docker.yaml

.NET SDK

Install .NET SDK

ansible-playbook playbooks/dotnet.yaml

duf

Install duf

ansible-playbook playbooks/duf.yaml

Exa

Install Exa

ansible-playbook playbooks/exa.yaml

GitHub CLI

Install GitHub CLI

ansible-playbook playbooks/gh.yaml

Git

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

GNS3

Install GNS3

ansible-playbook playbooks/gns3.yaml

Helm

Install Helm

ansible-playbook playbooks/helm.yaml

Home Assistant CLI

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

Insync

Install Insync

ansible-playbook playbooks/insync.yaml

k3s

Install k3s

ansible-playbook playbooks/k3s.yaml

K9s

Install K9s

ansible-playbook playbooks/k9s.yaml

Keychain

Install Keychain

ansible-playbook playbooks/keychain.yaml

KubeCM

Install KubeCM

ansible-playbook playbooks/kubecm.yaml

kubectl

Install kubectl

ansible-playbook playbooks/kubectl.yaml

Kustomize

Install Kustomize

ansible-playbook playbooks/kustomize.yaml

Lid closing

Configure lid closing action to ignore

ansible-playbook playbooks/lid-closing.yaml

MongoSH

Install MongoSH

ansible-playbook playbooks/mongosh.yaml

MQTT Explorer

Install MQTT Explorer

ansible-playbook playbooks/mqtt-explorer.yaml

Neovim

Install Neovim

ansible-playbook playbooks/neovim.yaml

Nerd Fonts

Install Nerd Fonts

ansible-playbook playbooks/nerdfont.yaml

NVM

Install NVM

ansible-playbook playbooks/nvm.yaml

PowerShell

Install PowerShell

ansible-playbook playbooks/powershell.yaml

Pubkey

Install public key using PUBKEY environment variable

export PUBKEY="ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
ansible-playbook playbooks/pubkey.yaml

SSH daemon

Configure SSH daemon

ansible-playbook playbooks/sshd.yaml

Starship

Install Starship

ansible-playbook playbooks/starship.yaml

Terraform

Install Terraform

ansible-playbook playbooks/terraform.yaml

tmux

Install tmux

ansible-playbook playbooks/tmux.yaml

Timezone

Configure timezone data

ansible-playbook playbooks/tz.yaml

X Windows

Install X Windows System

\ansible-playbook playbooks/x-windows.yaml

ZSH

Install ZSH and Oh My ZSH

ansible-playbook playbooks/zsh.yaml

Join the Automation Journey

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! 🚀

About

This collection of Ansible playbooks empowers you to effortlessly install and configure software on your Linux system.

Topics

Resources

Stars

Watchers

Forks

Languages