Coder Social home page Coder Social logo

vagrant-devops's Introduction

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.

vagrant-devops's People

Contributors

joudaon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.