Git Product home page Git Product logo

extensions-for-aws-managed-shells's Introduction

What is it?

Both the AWS CloudShell and AWS Cloud9 environments are curated and regularly updated. However you may find your self needing a specific utility or tool that has not been pre-installed OR a specific latest version of a tool that has been pre-installed (and that has not yet been updated).

Extensions for AWS managed shells is a(n experimental) script that allows AWS CloudShell users and AWS Cloud9 (with Amazon Linux 2) users to do two things: update the version of pre-installed utilities and install additional utilities. Feel free to add (via PR) additional utilities you may find useful. In addition to this the repository contains a Dockerfile that would allow you to build a self-contained image (FROM AL2).

The Extensions for AWS managed shells script installs and/or updates the following tools and utilities:

The script also installs and/or updates the following pre-requisites:

  • NodeJS
  • Pip

What's the version of the utilities included?

The whole purpose of the script is to install the latest version of existing pre-installed tools and to upgrade to the latest version the tools that are already installed (and that may be lagging behind a few releases).

How can I use it?

The script is designed to work for both the AWS CloudShell as well as for AWS Cloud9. Because the two environments have different charatheristics, the script usage pattern may vary.

Cloud9 is persistent by design so it's likely that you may need to run the script only after the first deployment or when you want to update the tools. Also, because the Cloud9 environment has inbound connectivity, the script installs additional tools (e.g. kind, VS Code server and possibly others) when it detects it's running in a Cloud9 shell. Note the script is only designed to work with the Amazon Linux 2 OS installed (for consistency, because that is the same OS powering AWS CloudShell).

CloudShell only persists up to 1GB of disk space for the $HOME folder. Given all the tools the script installs lands on a system folder, the user would need to run the script every time the CloudShell reconnects. Perhaps a good idea would be to persist a clone of the repo in the $HOME folder for a speedy launch. Someone may go the extra mail and force the script to run at every start of the CloudShell.

In addition to these main options, the repository includes an experimental Dockerfile that would allow you to build a portable container (built from the Amazon Linux 2 image). You can build the container with this command:

docker build -t extensions-for-aws-managed-shells:latest . 

You can then run it with the following command:

docker run -e NODE_PATH=/root/nvm/versions/node/v12.20.0/lib/node_modules -e PATH=/root/nvm/versions/node/v12.20.0/bin:$PATH --rm -it extensions-for-aws-managed-shells:latest 

Security

See CONTRIBUTING for more information.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

extensions-for-aws-managed-shells's People

Contributors

amazon-auto avatar gswallow avatar miroadamy avatar mreferre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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