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 orasdf
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
- Install LibreOffice productivity suite
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:
- GNU Accounting utilities for process and login accounting
- sysstat - Performance monitoring tools for Linux
Configuration
- Added my Linux configuration file
machine.msk.yaml
Changed
Ansible
- Install Ansible 2.9 as the default version
Golang
- Install Go version 1.15
- Upgrade
markosamuli.golang
from v1.2.1 to v2.0.0
Python
- Install Python 3.7.8 and 3.8.5
- Using local
python
role for installing distribution Python packages - Install Python using
python3
andpython3-pip
packages instead ofpython
andpython-pip
- Upgrade
markosamuli.pyenv
from v2.1.1 to v4.0.1
Node.js
- Upgrade
nvm
from v0.35.1 to v0.35.3 - Upgrade
markosamuli.nvm
from v1.4.1 to v1.4.2
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
toauto
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 ofnvm_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
whenpyenv
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