Skip to content

Ansible playbook providing tools and configuration for developers workspaces - Repository mirror of https://code.europa.eu/ecgalaxy/workspace-tools

License

Notifications You must be signed in to change notification settings

ecgalaxy/workspace-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workspace tools

This Ansible playbook provides tools and automated configuration for developers' workspaces.

Requirements

  • Python 3.x with the venv module (apt install python3-venv), Ansible does not need to be installed.
  • The tools are installed system-wide, so administrative access is necessary.

Features

The playbook locally executes the following ECGALAXY Ansible roles:

  • bootstrap: updates package managers cache and prepares hosts for playbook execution
  • aws_cli: installs AWS CLI and Session Manager plugin
  • ca_certificates: installs ca-certificates and adds CommisSign certificates to the trusted CAs list
  • common_packages: installs common packages such as curl, git, unzip, wget
  • containers_toolbox: provides CLI tools used when working with containers and Kubernetes, such as dive, helm, kubectl
  • docker: installs Docker
  • intellij: installs IDEA IntelliJ (if a desktop environment has been installed)
  • java_openjdk: installs Java OpenJDK
  • maven: installs Apache Maven
  • nodejs: installs the Node.js programming language
  • oracle_instantclient: installs Oracle Instant Client
  • php: installs the PHP programming language
  • task: installs Task, a task runner and build tool
  • terraform: installs HashiCorp Terraform, tflint and tfsec
  • vscode: installs Visual Studio Code (if a desktop environment has been installed)

Please check the above links for specific details.

Usage

sudo ./exec.sh

Customising

The exec.sh script creates a Python virtual environment in the venv subfolder, installs Ansible within it, downloads Ansible roles listed in the requirements.yml file, then locally executes the Ansible playbook in playbook.yml.

You can customise the above files according to your needs, e.g. removing Ansible roles from the playbook and setting custom variables.

The example below will install OpenJDK 17, Maven and Node.js 23:

- hosts: all
  roles:
    - ecgalaxy.bootstrap
    - ecgalaxy.common_packages
    - ecgalaxy.java_openjdk
    - ecgalaxy.maven
    - ecgalaxy.nodejs
  vars:
    java_version: "17"
    nodejs_version: "23.x"

You will usually find the customisable role variables in each Ansible role README; see links in the Features section above for specific details.

Upgrading

When a supported package is available, ECGALAXY Ansible roles use the Linux distribution's package manager to install software. In order to upgrade or uninstall a package, please refer to your distribution's package manager documentation.

Otherwise, ECGALAXY Ansible roles usually save software files in /opt, within a specific subfolder, and symlinks in /usr/local/bin for executable binaries. In such case, you can upgrade the installed software by re-executing the playbook, when a new version of the related Ansible role has been released.

License

Copyright the European Union 2024. Licensed under the EUPL-1.2 or later.

Author Information

ECGALAXY team.

About

Ansible playbook providing tools and configuration for developers workspaces - Repository mirror of https://code.europa.eu/ecgalaxy/workspace-tools

Topics

Resources

License

Stars

Watchers

Forks

Languages