Coder Social home page Coder Social logo

professormanhattan / packer-ubuntu-desktop Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 0.0 13.08 MB

An automated Ubuntu Desktop Packer project (currently, version 21.10) that builds boxes using the latest Ubuntu Desktop Live release

Home Page: https://megabyte.space

License: Other

Ruby 12.96% JavaScript 2.37% Dockerfile 0.19% Shell 84.47%
accelerated compressed desktop optimized packer ubuntu-desktop workstation kvm mblabs megabytelabs

packer-ubuntu-desktop's Introduction

Ubuntu Desktop Template for Packer

Curated by Megabyte Labs



An automated Ubuntu Desktop Packer project (currently, version 22.04) that builds boxes using the latest Ubuntu Desktop Live release


Table of Contents

Overview

This project houses configurations that can be used to build performant Ubuntu Desktop images. It uses the Ubuntu Desktop Live image as a base, uses Packer to automate the build process, and then sets the image up using some Bento scripts which take care of optimizing the image for your system (i.e. setting up SSH with the Vagrant default public key, setting up GuestAdditions for VirtualBox, etc.). This project is intended to be used to create desktop images that you would launch from your main desktop using a GUI. If you are looking for headless images, you should either use Bento's server images. You might also have some luck browsing through our Packer projects.

This project:

  • Currently builds a minimal Ubuntu Desktop 22.04 VM image by default
  • May contain multiple templates which will all end in template.json and be present in the root of the project
  • Automates the process of keeping our Ubuntu Desktop 22.04 VM images up-to-date with the latest upstream source by (1) using the vagrant-cloud post-processor to automatically upload the box after it is built and (2) running the build with a cronjob
  • In some cases, LatestOS is used to automatically update the link to the base image / checksums to the latest release

Supported Virtualization Platforms

This project supports creating boxes for the following virtualization platforms:

Requirements

  • At least one of the above virtualization platforms installed (VirtualBox is a good starting point if you do not already have one of the platforms installed)
  • Packer
  • Vagrant

Quick Start

If you have VirtualBox and Vagrant installed, you can quickly spin up the finished product of this repository by running the following code in the root directory of this repository:

vagrant up

The default username and password are both vagrant.

Creating Your Own Box

You can quickly use this project to create your own minimal Ubuntu Desktop 22.04 box by:

  1. Creating a box on VagrantUp titled Ubuntu-Desktop (Note: The VagrantUp box name should match the "box_basename" in the template.json file.)
  2. Changing the "vagrantup_user" variable in template.json to your VagrantUp username
  3. Acquiring a VagrantUp API token from the settings page
  4. Running the following code
bash start.sh # Ensures Bodega is installed
export VAGRANT_CLOUD_TOKEN=YourTokenHere
task packer:build

What is Bodega?

After running the code above, you will kick off a parallelized build for all the virtualization platforms that your computer currently has installed. If you want to install all of the virtualization platforms that your computer could potentially support then you can run task packer:install:platforms.

After building the VM images, the example above will upload your images to your VagrantUp box repository (that you have to create before running the script that is above). If you want to build the box for another provider then look at the template.json in the "builders" section for the types of boxes you can create (e.g. virtualbox-iso, vmware-iso, parallels-iso, qemu).

If you do not want your box to be automatically uploaded to VagrantUp after you build it with Packer then you will need to remove the "vagrant-cloud" section under "post-processors". The section is wrapped in a nested array. If you are removing the vagrant-cloud post-processor, then the section no longer has to be placed in a nested array.

Updating Your Box

If a new release of the Ubuntu Desktop 22.04 system is available, you can update your VagrantUp box. You can do this by changing the "iso_checksum_url", "iso_url", and "iso_version" variables in the template.json file. After that, run packer build -only=virtualbox-iso template.json to build the image again.

Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page. If you would like to contribute, please take a look at the contributing guide.

Sponsorship

Dear Awesome Person,

I create open source projects out of love. Although I have a job, shelter, and as much fast food as I can handle, it would still be pretty cool to be appreciated by the community for something I have spent a lot of time and money on. Please consider sponsoring me! Who knows? Maybe I will be able to quit my job and publish open source full time.

Sincerely,

Brian Zalewski

Open Collective sponsors GitHub sponsors Patreon

Affiliates

Below you will find a list of services we leverage that offer special incentives for signing up for their services through our special links:

MailChimp DigitalOcean Referral Badge

License

Copyright © 2020-2021 Megabyte LLC. This project is MIT licensed.

packer-ubuntu-desktop's People

Contributors

manjeetsinghynr avatar professormanhattan avatar snowflake024 avatar timetravelershackedme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.