Skip to content

geozeke/ubuntu

Repository files navigation

ubuntu


Dinobox logo

VM Setup (Start Here)

These tools work with Ubuntu. You'll create either a Desktop (GNOME) installation, or a Server (no GUI) installation. Setup a basic Ubuntu machine using your preferred tools and techniques. Then use these tools to configure your installation with a standard look-and-feel, tools, and settings that I use in my workflows.

Included Tools

desktop_setup.py

This script sets up a new Ubuntu Desktop VM with the following software and settings:

  • Setup and configure zsh and vim
  • Initialize the terminal profile and GNOME text editor with a nicer color scheme.
  • Install the following packages from the ppa:
    • build-essential
    • ccache
    • gnome-text-editor
    • nala
    • python3-pip
    • python3-venv
    • seahorse-nautilus
    • tree
    • zsh
  • Install pipx.
  • Install and configure OhMyZsh and the powerlevel10K theme.
  • Configure the GNOME favorites in the application launcher.
  • Tune system settings:
    • Disable auto screen lock.
    • Set idle timeout to 'never'.
    • Disable Ubuntu auto-updates.
    • Patch /etc/fuse.conf to un-comment user_allow_other. This permits running programs from the command line when you're inside a directory in the share point.

usage

Once you complete the initial setup of your desktop installation, open a terminal and run these commands:

cd
sudo apt install git curl -y # just to be sure
git clone https://github.com/geozeke/ubuntu.git
./ubuntu/scripts/desktop_setup.py

From there, follow the on-screen instructions.

top

server_initialize.py and server_configure.py

These two scripts work together to initialize and configure a Server version of Ubuntu (one without a desktop environment). An easy and elegant way to create a server VM like this is by using Multipass.

server_initialize.py

After creating and logging-in to the new VM, run these commands:

cd
sudo apt install git curl -y # just to be sure
git clone https://github.com/geozeke/ubuntu.git
./ubuntu/scripts/server_initialize.py -h

Follow the directions provided in the on-screen help.

server_configure.py

After initializing the server, login with the new user credentials you created when you ran server_initialize.py. Then run the commands below. The script will setup vim and OhMyZsh. NOTE: For all new Ubuntu instances, a default account is created called ubuntu. When you run this script you also have the option to delete the default account.

usage

cd
git clone https://github.com/geozeke/ubuntu.git # yes, do it again.
./ubuntu/scripts/server_configure.py -h

Follow the directions provided in the on-screen help.

Once the configuration script is complete, do this:

  1. Reboot the VM.
  2. Login with your new credentials.
  3. Change your login shell to zsh by running: chsh and entering /bin/zsh when prompted.
  4. Logout and log back in.
  5. You should be all set.

top

pyenv_setup.py

This script sets up and installs the incredibly helpful utility pyenv. This utility allows you to install and manage multiple versions of python, without breaking the system default installation.

usage

~/ubuntu/scripts/pyenv_setup.py

top

docker_setup.py

This standalone script will install Docker Engine, which is the underlying client-server technology that builds and runs containers using Docker's components and services. It also installs Docker Compose, and sets up the appropriate user permissions to run docker without having to enter sudo first.

usage

~/ubuntu/scripts/docker_setup.py

top

vim_setup.py

This is a standalone script that allows you to install the necessary files and settings to create a pleasant visual experience in vi. It's useful if you've got a user account (with no sudo access) on a Linux server and you just want a better look-and-feel for vi.

usage

~/ubuntu/scripts/vim_setup.py

top