Skip to content

v3.0.0

Latest
Compare
Choose a tag to compare
@markosamuli markosamuli released this 07 Sep 22:45

Release targeting Ubuntu 20.04 LTS (Focal Fossa) and Debian buster releases running on Window Subsystem for Linux (WSL) 2.

Breaking changes

  • Remove support for installing Python 2.7 using APT packages
  • Require Python 3 or newer for local development and running any of the Python scripts
  • Remove existing conflicting Terraform installations using the markosamuli.terraform role or asdf version manager
  • The setup script and Ansible playbooks will require Ansible 2.8 to include support for installing software via snap packages
  • I'm no longer testing the playbooks on Pengwin Linux environments
  • I'm no longer testing the playbooks on WSL1 environments
  • Running make setup will only install dependencies
  • Running make install will run the playbooks

Added

Shell

  • Install Zsh

Debian

  • Support for configuring Debian environments

Go

Install additional Go tools for development:

  • errcheck is a program for checking for unchecked errors in go programs
  • go-callvis is a development tool to help visualize call graph of a Go program using interactive view
  • gopkgs is a tool that provides list of available Go packages that can be imported
  • Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer interface
  • guru is a tool for answering questions about Go source code
  • staticcheck is a linter for Go source code

Development

  • Install ShellCheck, a tool for analysing Bash scripts
  • Install Terminus terminal application
  • Install Meld, a visual diff and merge tool

Productivity

Security

  • Install ClamAV antivirus software
  • Install Lynis v3.0.0 security tool for auditing the system
  • Lynis custom configuration for WSL environments

Security hardening

Optional security hardening tools:

  • passwdqc for password/passphrase strength checking and enforcement
  • USBGuard for protecting system against rogue USB devices
  • debsums tool for verification of installed package files against MD5 checksums

System monitoring

Optional system monitoring tools:

Configuration

  • Added my Linux configuration file machine.msk.yaml

Changed

Ansible

  • Install Ansible 2.9 as the default version

Golang

Python

  • Install Python 3.7.8 and 3.8.5
  • Using local python role for installing distribution Python packages
  • Install Python using python3 and python3-pip packages instead of python and python-pip
  • Upgrade markosamuli.pyenv from v2.1.1 to v4.0.1

Node.js

Terraform

  • Install Terraform with tfenv

Development

These development tools are not required for setting up a system with my playbooks, but are required if making changes to the codebase to ensure consistent coding style.

  • Changes to Makefile. Run make help to see the available commands.
  • Install shfmt and shellcheck as a dependency in the Makefile
  • Use pre-commit v2.7.0
  • Use flake8 v3.8.3 to lint Python code
  • Use pylint v2.6.0 to lint Python code
  • Use ansible-lint v4.3.3 to lint Ansible playbooks and roles
  • Use shfmt v3 for formatting bash scripts
  • Use Prettier for formatting JSON, Markdown and YAML files
  • Format Python code with black

Fixed

Setup

Fixes in the setup script:

  • Update APT cache before installing Ansible, even if PPA packages are not being changed.

Rust

  • Upgrade markosamuli.rust from v1.0.0 to v1.0.1
  • Remove rustup-init script checksum verification

Homebrew

  • Linuxbrew repositories have been migrated into the Homebrew repositories
  • Upgrade markosamuli.linuxbrew from v1.2.0 to v1.2.2

Windows Subsystem for Linux (WSL)

Fixes for WSL2:

  • Detect WSL2 installations using /run/WSL directory

Ubuntu 20.04 LTS

Fixes for Ubuntu 20.04 LTS:

  • Install make as it was missing on my environment
  • Set ansible_python_interpreter to auto to detect the Python 3 version correctly
  • Do not install Ansible from PPA as it's not available and the default APT package already has Ansible v2.9
  • Do not install shellcheck from Snap

Configuration

  • Use the correct nvm_shell_init variable instead of nvm_init_shell in the
    machine.msk.yaml config file

Development

Fixes in the development tools:

  • Prevent pre-commit from being upgraded to version 2
  • Suppress errors in Makefile when pyenv is not installed
  • Ignore Python 3.8.0 when creating virtualenv for local development

Removed

  • Do not install Python 2.7 with pyenv
  • Remove unused markosamuli.terraform role