README.md in forj-0.0.33 vs README.md in forj-0.0.34

- old
+ new

@@ -1,84 +1,111 @@ Forj cli -===================== +======== Installation -===================== -For ruby 2.0 +------------ +### For ruby 2.0 -Fedora/CentOS/Redhat/rpm like system +**Fedora/CentOS/Redhat rpm like package system** - sudo yum install ruby-dev build-essential libopenssl-ruby libssl-dev zlib1g-dev -y - sudo gem install forj + $ sudo yum install ruby-devel libxml2-devel libxslt-devel python-yaml -y + $ sudo gem install forj -Ubuntu/Debian/debian like system (not tested) +**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 + $ 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 +### 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 + $ 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 +### 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 + $ 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 -How to use forj cli -===================== -Setup forj +Quick steps: How to create a forj? +---------------------------------- forj setup # follow the instructions -Boot a forge +1. Setup your first forj account. - forj boot <blueprint> on <cloud_provider> as <name> - e.g. forj boot redstone on hpcloud as maestro_01 + `$ forj setup [Provider]` -Optional arguments + 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. - -u --build #Replace the default build.sh. - -d --build_config_dir # Defines the build configuration directory to load the build configuration file. - -c --build_config # The build config file to load <confdir>/<BoxName>.<Config>.env. - -b --branch # The build will extract from git branch name. - -t --test_box # Create test-box meta from the repository path provided. - -r --git_repo # The box built will use a different git repository sent out to <user_data>. - -h --boothook # By default, boothook file used is build/bin/build-tools/boothook.sh. - -x --box_name # Defines the name of the box or box image to build. - -k --key_name # Key pair name to import. - -p --key_path # Public key pair data. - -y --catalog # A path for the yaml file data about the blueprint +2. Create your forge on your default account -Catalog.yaml example + `$ forj boot <blueprint> on hpcloud as <InstanceName>` - redstone: - image: proto2b - flavor: standard.xsmall - ports: [22, 80, 443, 3131, 3000, 3132, 3133, 3134, 3135, 4505, 4506, 5000, 5666, 8000, 8080, 8081, 8083, 8125, 8139, 8140, 8773, 8774, 8776, 9292, 29418, 35357] - keypair_path: ~/.hpcloud/keypairs/nova - keypair_name: nova - router: private-ext - security_group: default - network: private - # at this point you have to clone the infra project manually - build_config_dir: ~/forj/infra/build/boxes/maestro - build_config: box-13.5 - branch: master - box_name: maestro - infra: ~/.forj/infra - default: - maestro: https://github.com/forj-oss/maestro.git + 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 <Blueprint> on <Provider> as <InstanceName> [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-<version>/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 @@ -87,8 +114,51 @@ ===================== 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! -License -===================== + +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.