Skip to content

joudaon/vagrant-devops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 

Repository files navigation

ubuntu-devops

Summary

The aim of this project is to deploy an Ubuntu Desktop environment with all required DevOps tools installed.

In order to achieve this, the project has been splitted into 2 parts, packer and vagrant folders. The first one is required to create and empty Ubuntu Desktop vagrant box. The second one deployes Ubuntu Desktop environment using the Vagrantfile.

Requirements

Packer version Virtualbox version
v1.6.6 Version 6.1.16 r140961 (Qt5.9.5)
Vagrant version
v2.2.14

How to deploy

First we create a clean Ubuntu Desktop box using packer:

$> cd packer
$> packer build -var-file=ubuntu1804-desktop.json ubuntu.json
  ** If it gets stuck try again

Packer deployment can take up to ~35 minutes (depending on your internet connection):

$> time packer build -var-file=ubuntu1804-desktop.json ubuntu.json

real    35m56.778s
user    0m31.550s
sys     0m28.679s

Then, using vagrant we deploy the Ubuntu Desktop box and we install all the required tools:

$> cd vagrant
$> vagrant up

Vagrant deployment can take up to 20 minutes (depending on your internet connection):

$> time vagrant up

real    19m48.447s
user    0m11.027s
sys     0m25.456s

Finally, log in into Ubuntu Desktop with the following credentials: vagrant/vagrant.

Packages

The following packages will be installed on Ubuntu Desktop vm (you can update them on vagrant/provision/devops_tools.sh):

  • aws-cli - The AWS Command Line Interface (CLI) is a unified tool to manage your AWS services.
  • az-cli - The Azure command-line interface (Azure CLI) is a set of commands used to create and manage Azure resources.
  • dbeaver - Free multi-platform database tool for developers, database administrators, analysts and all people who need to work with databases.
  • docker - Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.
  • docker-compose - Compose is a tool for defining and running multi-container Docker applications.
  • gradle - Gradle is an open-source build automation tool focused on flexibility and performance.
  • helm - Helm is the best way to find, share, and use software built for Kubernetes.
  • intellij - IntelliJ is an integrated development environment (IDE) written in Java for developing computer software.
  • k9s - K9s is a terminal based UI to interact with your Kubernetes clusters. The aim of this project is to make it easier to navigate, observe and manage your deployed applications in the wild.
  • kubectl - kubectl, allows you to run commands against Kubernetes clusters.
  • maven - Apache Maven is a software project management and comprehension tool.
  • minikube - Minikube is a tool that runs a single-node Kubernetes cluster in a virtual machine on your personal computer.
  • skaffold - Skaffold handles the workflow for building, pushing and deploying your application, allowing you to focus on what matters most: writing code.
  • terraform - Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files.
  • vagrant - HashiCorp Vagrant provides the same, easy workflow regardless of your role as a developer, operator, or designer. It leverages a declarative configuration file which describes all your software requirements, packages, operating system configuration, users, and more.
  • vs-code - Visual Studio Code is a free source-code editor made by Microsoft for Windows, Linux and macOS.

Vagrant plugins

The Vagrantfile is smart enough to run some actions if some plugins are installed or not, but it is highly recommended to install the following plugins:

$ vagrant plugin install vagrant-cachier vagrant-disksize vagrant-hosts vagrant-vbguest

Useful links

TODO

  • fix: change_keyboard_layout.sh script, it doesn't work.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published