GithubHelp home page GithubHelp logo

seattletestbed / installer-packaging Goto Github PK

View Code? Open in Web Editor NEW
0.0 4.0 7.0 6.7 MB

Everything required to build and package Seattle installers for different platforms

License: MIT License

Python 93.69% Shell 4.42% Batchfile 1.89%

installer-packaging's Introduction

installer-packaging

This repository provides the various parts (code, tools, other content) that are necessary to build and package Seattle base installers for the main operating systems and platforms we support. In their current form, the tools are intended for use only in the Custom Installer Builder and/or CIB admins, not end users.

Each base installer contains the Seattle runtime, nodemanager, etc., and all of the platform abstractions required to install, run, and autostart Seattle, but lacks the user keys (in the form of the vesselinfo file) required to actually perform the installation and provide remote-accessible resources afterwards. The CIB knows how to create this vesselinfo file and add it so that the resulting installer is complete.

Tools include

  • A packaging script that generates Seattle installers for different platforms, and
  • A script to sign and "push" (put in the appropriate web server dir) software updates.

Using this repo

Clone this repo, then run the initialization script (which git-clones all of installer-packaging's dependencies) and build script (which prepares the Python source files and platform-specific installer stuff).

$ git clone https://github.com/SeattleTestbed/installer-packaging
$ cd installer-packaging/scripts
$ python initialize.py
$ python build.py

Several new directories are created thus:

  • ../RUNNABLE now contains the script to build new base installers,
  • ../RUNNABLE/seattle_repy holds the general Seattle runtime, nodemanager, etc.,
  • and ../RUNNABLE/seattle_linux, ../RUNNABLE/seattle_mac and so on have the platform-specific files.

Change into ../RUNNABLE, and adapt rebuild_base_installers.py to reflect your local installation. This includes the softwareupdater cryptographic key pair to use, and the username for whom and the destination path into which to package and copy the base installers.

Once configured, run rebuild_base_installers.py. This copies the generic and platform-specific stuff into base installer directories, and creates the actual base installer zip/gz/tar.gz files that the Custom Installer Builder expects. Lastly, copies over the newly-built base installer to the CIB's installers/base directory.

installer-packaging's People

Contributors

aaaaalbert avatar xuefenghuang avatar

Watchers

 avatar  avatar  avatar  avatar

installer-packaging's Issues

`rebuild_base_installers.py` should focus on building

rebuild_base_installers.py currently populates and packages (tars, gzips or zips) base installer directories for the Custom Installer Builder. However, it does other things that might be out of scope as they are tied closely to the layout and config of the CIB: It copies tarballs to the deployment dir, backups previous base installers, chowns files, etc.

All of these things are important for deploying a set of new base installers, none of them are actual packaging tasks however. I think we should remove the unrelated parts.

(However, it will probably make sense to still include checking for the softwareupdater URL and key etc., just so that CIB operators don't shoot themselves in the foot).

Use only lower-case for `installInfo` filename

seattleinstaller.py creates a file installInfo.old (or .new) in the servicevessel directory where it stores results of the system benchmark, donated percentage, and amount of resources that will be used by Seattle. However, on installs running a V2 nodemanager, files in vessels can only be accessed if their names have lower-case characters (and a few other things) exclusively. As a result, you cannot retrieve or otherwise manipulate installInfo via seash (see below).

This issue is RepyV2-specific. RepyV1 files may contain upper-case characters. We need to be able to see the information contained in the file for debugging purposes on any version of Seattle, so let's make the base filename installinfo (all lower-case) instead.

This requires changes in anything that depends on this exact file name:


seash log:

servicevessel@%1 !> cat installInfo.old
An error occurred: Node Manager error 'Filename has disallowed character 'I''
Affected vessels: ee7eb6c1bb4389a62812a9c47b76a0c5f47b0b3e:1224:v9.
servicevessel@%1 !> download installInfo.old
An error occurred: Node Manager error 'Filename has disallowed character 'I''
Affected vessels: ee7eb6c1bb4389a62812a9c47b76a0c5f47b0b3e:1224:v9.
servicevessel@%1 !> delete installInfo.old
An error occurred: Node Manager error 'Filename has disallowed character 'I''
Affected vessels: ee7eb6c1bb4389a62812a9c47b76a0c5f47b0b3e:1224:v9.

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.