Code Monkey home page Code Monkey logo

cli's Introduction

Forj cli

Installation

For ruby 2.0

Fedora/CentOS/Redhat rpm like package system

$ sudo yum install ruby-devel libxml2-devel libxslt-devel python-yaml -y
$ sudo gem install forj

Ubuntu/Debian deb like package system (not tested)

$ sudo apt-get install ruby-dev build-essential libopenssl-ruby1.9.1 libssl-dev zlib1g-dev -y
$ sudo gem install forj

For ruby 1.9

$ sudo apt-get install ruby-dev build-essential libopenssl-ruby1.9.1 libssl-dev zlib1g-dev -y
$ sudo gem install forj

For ruby 1.8

$ sudo apt-get install ruby1.8-dev ruby1.8 ri1.8 rdoc1.8 irb1.8 -y
$ sudo apt-get install libreadline-ruby1.8 libruby1.8 libopenssl-ruby -y
$ sudo apt-get install libxslt-dev libxml2-dev -y
$ sudo gem install nokogiri
$ sudo apt-get install ruby-bundler -y
$ sudo gem install mime-types -v 1.25.1
$ sudo gem install hpcloud
$ sudo gem install forj

Quick steps: How to create a forj?

forj setup # follow the instructions
  1. Setup your first forj account.

    $ forj setup [Provider]

    Ex: forj setup hpcloud. In this example, your account will be named 'hpcloud'. WARNING!!! [Provider] is currently not supported. By default, it is using hpcloud as default provider.

  2. Create your forge on your default account

    $ forj boot <blueprint> on hpcloud as <InstanceName>

    Ex: forj boot redstone on hpcloud as MyForge

###Forj options:

To get forj cli help, just type:

$ forj

To get help on specific action, just type:

$ forj help boot

Examples of possible actions:

Commands: forj boot on as [options] # boot a Maestro box and instruct it to provision the blueprint forj down # delete the Maestro box and all systems installed by the blueprint forj help [action] # Describe available FORJ actions or one specific action forj setup # set the credentials for forj cli forj show defaults # Show list of predefined value you can update in your ~/.forj/config.yaml forj ssh

config.yaml description

While building your forge, forj needs to load some data by default. Those are listed in forj-/lib/defaults.yaml

If you need to change one of this default value, update a ~/.forj/config.yaml file, with any kind of data that need to be changed.

Here are the variables list you can set:

 default:
   account_name: name       # Default forj account used to connect to your cloud. This setting is automatically set to the first account created with forj setup <CloudProvider>
   maestro_url: url         # Maestro GIT repository for clone.
   infra_repo: path         # Path to the default Infra repository used to store your specific bootstrap/build environment. By default: ~/.forj/infra
   image: imageName         # NOT CURRENTLY USED. Still under development.
                            # Image used to create Maestro and all forge boxes. By default, it is 'Ubuntu Precise 12.04.4 LTS Server 64-bit 20140414 (Rescue Image)'
                            # If you have created the generic proto2b image, you can set it here.
   flavor: flavorName       # NOT CURRENTLY USED. Still under development.
                            # Maestro Flavor name. This flavor is for Maestro only. Your blueprint layout defines each node flavors on needs.
                            # By default: standard.xsmall
   ports: [Port1,Port2,...] # list of additional ports to add in your cloud security group.
                            # This list is added to the default one in defaults.yaml
   keypair_path: path       # Define the file path to your OpenSSH private key. Useful to access your box with ssh command line.
                            # By default. ~/.forj/keypairs/nova
   keypair_name: name       # keypair name defined in your cloud to access your server. By default we named it 'nova'. If it doesn't exist, it will be created.
   router: name             # Router name used by your forge boxes will use to access internet.
   security_group: name     # Security group name to configure and attach to each forge boxes.
   network: name            # Network name to attach to each forge boxes. By default we use 'private'. If it doesn't exist, it will be created.
   # Internal use.
   build_config: name       # forj cli use 'build.sh' to create Maestro. See build_config option on build.sh to get more information. By default 'box'
   branch: name             # forj cli use 'build.sh' to create Maestro. See gitbranch option on build.sh to get more information. By default 'master'
   box_name: maestro        # forj cli use 'build.sh' to create Maestro. See box_name option on build.sh to get more information. By default 'maestro'

To ssh into a server

forj ssh <name> <node>
e.g. forj ssh maestro_01 [maestro, ci, util, review] # the nodes from your blueprint

Contributing to Forj

We welcome all types of contributions. Checkout our website (http://docs.forj.io/en/latest/dev/contribute.html) to start hacking on Forj. Also join us in our community (https://www.forj.io/community/) to help grow and foster Forj for your development today!

Developping on FORJ:

Development installation:

WARNING!!! forj cli is still under intensive development.

For ruby 2.0

Fedora/CentOS/Redhat rpm like package system

$ sudo yum install git gcc ruby-devel libxml2-devel rubygem-rspec libxslt-devel python-yaml rubygem-nokogiri -y
$ gem install rspec-rake rspec-mocks rspec-expectations 

Ubuntu/Debian deb like package system (not tested)

$ sudo apt-get install git ruby-dev build-essential libopenssl-ruby1.9.1 libssl-dev zlib1g-dev -y
$ gem install rspec rspec-rake rspec-mocks rspec-expectations 

Then execute the following:

$ gem install forj # To install all gem required for running it.
$ mkdir -p ~/src/forj-oss
$ cd ~/src/forj-oss
$ git clone https://github.com/forj-oss/cli

To update forj from the repository:

$ cd ~/src/forj-oss/cli
$ git pull

To test forj cli, do the following:

$ cd ~/src/forj-oss/cli
$ bin/forj

To run unit-test, do the following:

$ cd ~/src/forj-oss/cli
$ rspec -c

License:

Forj Cli is licensed under the Apache License, Version 2.0. See LICENSE for full license text.

cli's People

Contributors

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