Giter Site home page Giter Site logo

sheeplinux / sheep Goto Github PK

View Code? Open in Web Editor NEW
12.0 2.0 4.0 5.45 MB

Install any Linux operating system in an efficient way from root filesystem archive or qcow2 cloud images

Home Page: https://sheeplinux.github.io/sheep/

License: Apache License 2.0

Shell 100.00%
linux linux-installation linux-installer baremetal bare-metal bare-metal-hosts

sheep's Introduction

Sheep

Build Status

Install any Linux distribution in seconds with Sheep

The aim of Sheep is to provide tooling to install any Linux distribution from a running Linux operating system in an automated way implementing a standard process. It also provide good efficiency in term of execution time.

Motivation

Installing a Linux distribution in an automated way has been a concern for system administrators for a long time. Of course, distribution vendors themselves provide mechanism to run their own installers in an automated way. The thing is, every single distribution comes with its own installation process and its own tools. Sheep proposes to uniform the installation process to easily install any Linux system whatever the distribution is.

Tools provided by distribution vendors are powerful and highly configurable. However, they come with some important downsides :

  • Configuration mechanisms and tools are specific to each distribution (or at least specific to the distribution family)
  • Creating configuration is painful beacuse of file format constraints and the amount of possible configurations
  • The installation process is quite long
  • Installing a distribution offline - without relying on an internet connection - requires additionnal work (e.g. setup a local distribution package repository)

Sheep goal is to get rid of all those painpoints. Looking at how Linux works and what are the necessary efforts to install it on a drive, it appears that it is quite easy to describe a process that is always the regardless the distribution. See Internals Section to get more details about this process. The main idea of Sheep is to avoid using vendor installer programs and execute instead necessary steps to install the Linux operating system starting from a filesystem image.

A central concept in Sheep is to install Linux starting from a cloud image. Today, most of the distribution vendors are publishing cloud images in various formats for the most popular cloud platforms. Sheep focuses on qcow2 images. As this is a widespread open format, it's provided by all vendors. That said, Sheep is able to handle compressed tar archives for the root filesystem which can be very useful in many situations.

To summarize, here are the advantages of Sheep over the standard vendors installers :

  • Sheep is very easy to use with a minimal configuration
  • Sheep is able to install any Linux distribution
  • Using official cloud images from vendors makes easy to find images for Sheep
  • Execution time is really fast. In the most advantageous situation, Sheep installs Linux in about 30 seconds

Lastly, as any solution, Sheep comes with a couple of drawbacks. Sheep does not offer as much options as the vendors installers. That said, Sheep source code is quite simple and easy to customize.

Don't hesitate to open issues to ask for help or request features.

Supported Linux distributions

Sheep provide a process able to install any Linux operating system. However, Sheep uses cloud-init to configuration the operating system.

Sheep have been successfully tested with the following distributions

  • Ubuntu 16.04
  • Ubuntu 18.04
  • CentOS 7
  • Debian 9
  • Fedora 28
  • Fedora 29
  • Fedora 30
  • OpenSuse Leap 15.0
  • OpenSuse Leap 15.1

License

Copyright 2020 Mathilde Hermet
Copyright 2020 Guillaume Giamarchi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

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.