Skip to content

Latest commit

 

History

History
228 lines (152 loc) · 6.85 KB

Readme.md

File metadata and controls

228 lines (152 loc) · 6.85 KB

PeerOS repository

This repository contains source code of Subutai PeerOS project. This is a multi-module Maven Java project.

Building the project

###Prerequisites

To build the project, you need to have the following tools:

  • Oracle JDK 7 or later

    Download Page (JDK 8)

    Installation (manual way)
    • Download the 32-bit or 64-bit Linux "compressed binary file" - it has a ".tar.gz" file extension.

    • Uncompress it

    tar -xvf jdk-8-linux-i586.tar.gz (32-bit)

    tar -xvf jdk-8-linux-x64.tar.gz (64-bit)

    The JDK 8 package is extracted into ./jdk1.8.0 directory. N.B.: Check carefully this folder name since Oracle seem to change this occasionally with each update.

    • Now move the JDK 8 directory to /usr/lib
    sudo mkdir -p /usr/lib/jvm
    sudo mv ./jdk1.8.0 /usr/lib/jvm/
    • Now run
    sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0/bin/java" 1
    sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0/bin/javac" 1
    sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0/bin/javaws" 1

    This will assign Oracle JDK a priority of 1, which means that installing other JDKs will replace it as the default. Be sure to use a higher priority if you want Oracle JDK to remain the default.

    • Correct the file ownership and the permissions of the executables:
    sudo chmod a+x /usr/bin/java
    sudo chmod a+x /usr/bin/javac
    sudo chmod a+x /usr/bin/javaws
    sudo chown -R root:root /usr/lib/jvm/jdk1.8.0

    N.B.: Remember - Java JDK has many more executables that you can similarly install as above. java, javac, javaws are probably the most frequently required. This answer lists the other executables available.

    • Run
    sudo update-alternatives --config java

    You will see output similar to the one below - choose the number of jdk1.8.0 - for example 3 in this list (unless you have have never installed Java installed in your computer in which case a sentence saying "There is nothing to configure" will appear):

    $ sudo update-alternatives --config java
    There are 3 choices for the alternative java (providing /usr/bin/java).
    
       Selection    Path                                            Priority   Status
       ------------------------------------------------------------
       0            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      auto mode
       1            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1071      manual mode
     * 2            /usr/lib/jvm/jdk1.7.0/bin/java                   1         manual mode
       3            /usr/lib/jvm/jdk1.8.0/bin/java                   1         manual mode
    
    Press enter to keep the current choice[*], or type selection number: 3
    update-alternatives: using /usr/lib/jvm/jdk1.8.0/bin/java to provide /usr/bin/java (java) in manual mode

    Repeat the above for:

    sudo update-alternatives --config javac
    sudo update-alternatives --config javaws

    Note for NetBeans users!

    You need to set the new JDK as default editing the configuration file.

    Ubuntu: Installing Java 8
    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    sudo apt-get install oracle-java8-unlimited-jce-policy
    Setting JAVA_HOME

    To check if JAVA_HOME is set or not, execute

    echo $JAVA_HOME

    If the result is empty or points to the version of Java that is not suitable, you need to set it.

    update-java-alternatives -l
    sudo nano /etc/profile
    
    Add following lines at the end:
    export JAVA_HOME="path that you found in update-java-alternatives for your JDK without quotes"
    export PATH=$JAVA_HOME/bin:$PATH
    
    Save file
    
    reset

    Check again.

  • Unlimited strength files (specific for Java version)

    Download Page (JDK 8)

    unzip jce_policy-8.zip
    cd UnlimitedJCEPolicyJDK8
    sudo cp local_policy.jar US_export_policy.jar $JAVA_HOME/jre/lib/security

    OR

    sudo apt-get install oracle-java8-unlimited-jce-policy
  • Maven version 3.2.2 or later

    Download Page

    Before installing, remove older versions:

    sudo apt-get purge maven maven2 maven3
    Installation (manual way - works only on Ubuntu 15.04)
    • Unzip the binary with tar
    tar -zxf apache-maven-3.3.3-bin.tar.gz
    • Move the application directory to /usr/local
    sudo cp -R apache-maven-3.3.3 /usr/local
    • Make a soft link in /usr/bin for universal access of mvn
    sudo ln -s /usr/local/apache-maven-3.3.3/bin/mvn /usr/bin/mvn
    Installation (apt repo - older versions)
    sudo apt-add-repository ppa:andrei-pozolotin/maven3
    sudo apt-get update
    sudo apt-get install maven3
    Verify mvn installation
  mvn --version
  
  Apache Maven 3.3.3 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T17:29:23+00:00)
  Maven home: /usr/local/apache-maven-3.2.5
  Java version: 1.7.0_80, vendor: Oracle Corporation
  Java home: /usr/lib/jvm/java-7-oracle/jre
  Default locale: en_US, platform encoding: UTF-8
  OS name: "linux", version: "3.13.0-48-generic", arch: "amd64", family: "unix"

###Build steps

  • Clone the project by using:

    git clone https://github.com/subutai-io/base.git

  • Start maven build:

    cd base/management
    mvn clean install

    If you want to create a Debian package, add additional flag

    mvn clean install -P deb

After this you will have management/server/server-karaf/target directory with subutai-{version}.tar.gz archive which contains custom Karaf distribution of SS application.

Untar it to some directory and execute {distr}/bin/karaf.

After that go to https://your_host_ip:8443 in your browser.

###Development

For development purposes, access to management container can be opened by executing the following commands on RH-with-MH:

sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.10.10.1:22
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 5005 -j DNAT --to-destination 10.10.10.1:5005

This would open ports 2222 for ssh access and 5005 for debugger.

CAUTION: this must be used for development only. Highly dangerous to do this in production!