Skip to content

Instantly share code, notes, and snippets.

@jacqinthebox
Last active January 29, 2022 10:47
  • Star 8 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save jacqinthebox/c40c47bc1ca13b8354808ebd9b583485 to your computer and use it in GitHub Desktop.
Post Install Ubuntu

Post Install Ubuntu 19.04 and deriviates

Update System

sudo apt-get update -y && sudo apt-get upgrade -y
sudo apt-get install -y curl git gitk vim-nox p7zip-full \
    build-essential linux-headers-$(uname -r) \
    dkms gdebi zsh gnome-tweak-tool gparted \
    software-properties-common \
    nautilus-dropbox keepass2 \
    tilix cmake python3-dev dconf-editor \ 
    wget remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice \
    #canberra-gtk-module gtk2-engines-murrine \
    flameshot gnome-shell-extension-top-icons-plus

not Gnome:

sudo apt-get install -y curl git gitk vim-nox p7zip-full \
    build-essential linux-headers-$(uname -r) \
    gdebi zsh \
    software-properties-common neofetch htop nmap \
    keepass2 mousepad geany \
    tilix cmake python3-dev

Go

mkdir -p ~/Downloads/gitrepos && cd ~/Downloads/gitrepos
wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

Install Powerline fonts

mkdir -p ~/Downloads/gitrepos && cd ~/Downloads/gitrepos
git clone https://github.com/powerline/fonts.git
cd fonts && ./install.sh

Configure Git

git config --global user.name $USER
git config --global user.email $USER@$HOSTNAME.nl
git config --global core.editor "vim"

Oh-my-zsh

wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh

Make it your default shell. You will need to log off after this.

chsh -s `which zsh`

Oh My Zsh Themes

cd ~/.oh-my-zsh/themes
wget https://raw.githubusercontent.com/dikiaap/dotfiles/master/.oh-my-zsh/themes/oxide.zsh-theme
wget https://raw.githubusercontent.com/jacqinthebox/arm-templates-and-configs/master/fino-clean.zsh-theme
wget https://raw.githubusercontent.com/agnoster/agnoster-zsh-theme/master/agnoster.zsh-theme
wget https://raw.githubusercontent.com/caiogondim/bullet-train-oh-my-zsh-theme/master/bullet-train.zsh-theme

Docker and compose

sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker

Fix sudo (requires logoff):

sudo usermod -aG docker $USER

https://github.com/docker/compose/releases

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

Kubectl & Minikube

sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update -y && sudo apt-get install -y kubectl

wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
chmod +x minikube-linux-amd64
sudo mv minikube-linux-amd64 /usr/local/bin/minikube

# give it some extra RAM
minikube config set memory 8192
https://darkowlzz.github.io/post/minikube-config/

Autocomplete

source <(kubectl completion zsh)  
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc #

https://stackoverflow.com/questions/49273395/how-to-enable-command-completion-for-azure-cli-in-zsh

kubectx

sudo git clone https://github.com/ahmetb/kubectx /opt/kubectx
sudo ln -s /opt/kubectx/kubectx /usr/local/bin/kubectx
sudo ln -s /opt/kubectx/kubens /usr/local/bin/kubens

Terrraform, Ansible, Helm, Vagrant, Virtualbox

cd ~/Downloads
wget -nc https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.deb
if [ ! -f /usr/bin/vagrant ] ; then
   sudo dpkg -i vagrant_2.2.5_x86_64.deb
fi

wget https://releases.hashicorp.com/terraform/0.12.9/terraform_0.12.9_linux_amd64.zip
unzip terraform_0.12.9_linux_amd64.zip
sudo mv terraform /usr/local/bin

#sudo apt-add-repository --yes --update ppa:ansible/ansible
sudo echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt update && sudo apt install ansible -y
apt --fix-broken install

curl -L https://git.io/get_helm.sh | bash

sudo sh -c 'echo "deb http://download.virtualbox.org/virtualbox/debian bionic contrib" >> /etc/apt/sources.list.d/virtualbox.list'
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update -y && sudo apt-get install virtualbox-6.0 -y

Misc

sudo snap install vscode --classic
sudo snap install atom --classic
sudo snap install slack --classic

Node.js and npm fix

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

npm sudo fix

mkdir ~/npm-global -p
sudo chown -R $USER:$USER ~/npm-global
npm config set prefix '~/npm-global'
echo "export PATH=~/npm-global/bin:$PATH" >> ~/.zshrc

Vim

mkdir -p ~/.vim/autoload ~/.vim/bundle && curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
cd ~/.vim/bundle
git clone https://github.com/scrooloose/nerdtree.git
git clone https://github.com/Valloric/MatchTagAlways.git
git clone https://github.com/ctrlpvim/ctrlp.vim.git
git clone https://github.com/vim-airline/vim-airline.git 
git clone https://github.com/vim-airline/vim-airline-themes.git 
git clone https://github.com/lukaszb/vim-web-indent.git
git clone https://github.com/hashivim/vim-vagrant.git
git clone https://github.com/altercation/vim-colors-solarized.git
git clone https://github.com/kristijanhusak/vim-hybrid-material
git clone https://github.com/w0rp/ale.git
git clone https://github.com/ycm-core/YouCompleteMe.git

cd ~/gitrepos
git clone https://github.com/romainl/flattened.git
cd flattened/colors && mkdir ~/.vim/colors
cp * ~/.vim/colors

cd ~/.vim/colors
wget https://raw.githubusercontent.com/dracula/vim/b7e11c087fe2a9e3023cdccf17985704e27b125d/colors/dracula.vim
wget https://raw.githubusercontent.com/altercation/vim-colors-solarized/master/colors/solarized.vim
cd

wget -O ~/.vimrc https://raw.githubusercontent.com/jacqinthebox/arm-templates-and-configs/master/vimrc

cd ~/.vim/bundle/YouCompleteMe
git submodule update --init --recursive
python3 install.py --all

Microsoft

Recommended

wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2

Or via Snap

sudo snap install dotnet-sdk --classic
sudo snap alias dotnet-sdk.dotnet dotnet
sudo ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/ #for vscode

PowerShell and az cli

Via Snap

sudo apt update
sudo apt install snapd
sudo snap install powershell-preview --classic
sudo snap install powershell --classic

Or deb

wget https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/powershell_6.2.1-1.ubuntu.18.04_amd64.deb
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

Settings for vscode:

{
    "workbench.iconTheme": "material-icon-theme",
    "editor.fontSize": 12,
    "window.zoomLevel": 0,
    "terminal.integrated.fontFamily": "Meslo LG M DZ for Powerline",
    "window.restoreWindows": "none",
    "terminal.integrated.fontSize": 12,
    "editor.minimap.enabled": false,
    "editor.multiCursorModifier": "ctrlCmd",
    "workbench.colorTheme": "Monokai Dimmed",
    "powershell.scriptAnalysis.enable": true,
    "editor.formatOnType": true,
    "editor.formatOnSave": true
}

https://docs.microsoft.com/en-us/sql/sql-operations-studio/download

cd ~/Downloads
wget -o azuredatastudio.deb https://azuredatastudiobuilds.blob.core.windows.net/releases/1.8.0/azuredatastudio-linux-1.8.0.deb
sudo dpkg -i azuredatastudio.deb

Java

# https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz

tar -xzvf jdk-*.tar.gz
sudo mkdir -p /usr/local/bin/jvm
sudo mv jdk1.8* /usr/local/bin/jvm/oracle_jdk8

sudo update-alternatives --install /usr/bin/java java /usr/local/bin/jvm/oracle_jdk8/jre/bin/java 2000
sudo update-alternatives --install /usr/bin/javac javac /usr/local/bin/jvm/oracle_jdk8/bin/javac 2000

export J2SDKDIR=/usr/local/bin/jvm/oracle_jdk8
export J2REDIR=/usr/local/bin/jvm/oracle_jdk8/jre
export PATH=$PATH:/usr/local/bin/jvm/oracle_jdk8/bin:/usr/local/bin/jvm/oracle_jdk8/db/bin:/usr/local/bin/jvm/oracle_jdk8/jre/bin
export JAVA_HOME=/usr/local/bin/jvm/oracle_jdk8
export DERBY_HOME=/usr/local/bin/jvm/oracle_jdk8/db" | sudo tee -a /etc/profile.d/oraclejdk.sh

Groovy

curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install groovy

When having internet connectivity problems

vim /etc/NetworkManager/NetworkManager.conf

Comment out the line dns=dnsmasq, so it looks like this: dns=dnsmasq

Then

sudo restart network-manager
sudo service network-manager restart

Powerlevel 9k

git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts && curl -fLo "Droid Sans Mono for Powerline Nerd Font Complete.otf" https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf

ZSH_THEME="powerlevel9k/powerlevel9k"
POWERLEVEL9K_MODE='nerdfont-complete'
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status background_jobs history dir vcs newline)
POWERLEVEL9K_DISABLE_RPROMPT=true

Flat Remix Theme

cd /tmp && rm -rf flat-remix* &&
git clone https://github.com/daniruiz/flat-remix &&
mkdir -p ~/.icons && cp -r flat-remix/Flat-Remix* ~/.icons/ &&
git clone https://github.com/daniruiz/flat-remix-gtk.git &&
mkdir -p ~/.themes && cp -r flat-remix-gtk/* ~/.themes &&
git clone git clone https://github.com/daniruiz/flat-remix-gnome.git &&
cp -r flat-remix-gnome/* ~/.themes

Remmina

sudo apt-add-repository ppa:remmina-ppa-team/remmina-next
sudo apt update
sudo apt install remmina remmina-plugin-rdp remmina-plugin-secret remmina-plugin-spice

Hyper Terminal

npm install hyper-materialshell -G

Adjusted settings

fontFamily: '"Terminess Powerline", "Anonymice Powerline", "Roboto Mono for Powerline", "Meslo LG S for Powerline", "DejaVu Sans Mono", "Lucida Console", monospace',

plugins: ['hyper-materialshell'],

Server

You should harden it

sudo ufw allow from 202.54.1.1 to any port 22
sudo ufw status numbered

ssh-copy-id -i ~/.ssh/mykey user@host

sudo

usr/sbin/usermod -aG sudo jacqueline

sources.list

deb http://deb.debian.org/debian/ buster main non-free contrib
deb-src http://deb.debian.org/debian/ buster main non-free contrib

deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free

# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main contrib non-free
deb-src http://deb.debian.org/debian/ buster-updates main contrib non-free


# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment