1. rbenv 설치하기

$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ source ~/.bashrc

2. rbenv 설치확인

$ rbenv


3. ruby 설치

rbenv install <ruby-version>
rbenv local <ruby-version>
//전역적으로 실행되길 바란다면
//renv global <ruby-version>
rbenv rehash
  • 버전확인: Ruby Download
  • 경우에 따라 OpenSSL lib가 필요하다고 요청하는 경우가 있다.
    $ sudo apt-get install libssl-dev
    

4. ruby 설치 확인

$ ruby --version



어느 스터디에서 개발환경 구축과 관련된 이런저런 이야기가 오고가는 것을 보다가, 문득 생각이 나서 다시 찾은 'OPENSFHIT'

https://www.openshift.com/

보는 것처럼, 개발, 호스팅, 스케일 확장의 기능을 제공하는 플랫폼이다. 익숙한, Java, Maven, Git, Tomcat, Jenkins를 제공하여 기어(Gear, 가상머신 인스턴스의 개념)로 제공한다. 협업자들을 추가하여 사용가능하다.


Free plan으로 사용

최초 'My app' 선택시

사용가능한 Gear(인스턴스 개념)

Tomcat7 기어 선택 예

Tomcat 기어 설치 후, 자바를 기반으로 한 웹애플리케이션 프로젝트가 추가된 git 저장소도 함께 추가됨

git에 대한 접근은 'Settings - Public Keys' 항목에 개인 public key를 생성하면 됨

- SSH public key 생성방법: https://help.github.com/articles/generating-ssh-keys

Tomcat7 기어 생성 완료후



Tomcat7 기어를 통해 생성한 프로젝트의 초기 디렉토리 구조

Tomcat7 기어가 실행된 URL을 통한 동작확인

- 기본 동작은 git을 통해 push가 실행되는 순간 빌드 및 배포가 이루어진다.

Tomcat7 기어 밑에 'Continous Integration' 에 있는 'Enable Jenkins'를 선택하면 Tomcat7 기어에 대한 빌드잡(Job)을 가진 Jenkins 기어가 생성된다.

젠킨스 기어의 공개 URL을 정의한다.

젠킨스 기어가 생성되고 최초 계정 admin과 비밀번호가 노출된다.

젠킨스 기어에 추가된 'tomcat7ews-build' 작업





MySQL 5.5 카트리지를 tomcat7 기어에 추가하는 모습

추가 완료 후, MySQL 5.5 생성정보가 노출

생성된 URL과 계정을 통해 로그인한 phpMyAdmin

기어 사용이 완료된 tomcat7의 내부 모습

이 과정에서 나는 2개의 기어를 생성했다.

- Tomcat7

- Jenkins

아직 1개의 기어가 남아있다.

Free plan으로는 3개의 기어가 사용가능하다.

협업도 가능한데, [Application]을 선택한 화면에서 'Available in domain XXXXX' 를 선택하고

오른쪽에 있는 'No one else can see this domain. Add members...'에서  'Add members`를 선택하고

OpenShift에 가입해있는 사용자 id와 권한 [View, Edit, Administrator] 권한 중 하나를 할당하면 된다.

굿럭!

하지만, POST 타입에서 막혔다. ㅡ_-);; 하아...

요청헤더Request Header에 Accept와 Content-Type을 지정하는 방법이 자세히 나와있는 것이 없다. 두둥...!

여기서는 입맛에 맞게 수정이 필요한건가? 이 프로젝트를 포크Fork한 사람들이 수정한 방법을 찾아봐야겠다.


 

 참고 

 

  • Mashery I/O docs: https://github.com/mashery/iodocs


gradle에 대한 학습의욕은 그득하나, 어떻게든 시작은 해보자.

gradle 처음 시작에 대한 이야기를 했었지만, 차근히 살펴보지 못했었는데, 이번 기회에 하나하나 꼬리에 꼬리를 물고 살펴보자.



gradle은 꾸준하게 업그레이드가 진행되고 있다. 1.10 나온지 얼마 되지도 않았는데 어느새 1.11이 2월 11일에 나오고…
어느 정도의 버전호환성은 유지되고 있다. 어느정도 안정화는 되었지만, [incubating] 되고 있는 기능들이 종종 사라지는 경우도 있으니 gradle 버전이 업그레이드될 때마다 한번씩 릴리즈 노트를 살펴보는 것이 중요하다.

오늘은 간단하게 gradle을 통해서 프로젝트를 구성하고 준비하자.
maven의 경우에는 최초 프로젝트를 생성하기 위해서 pom.xml 이 존재해야 한다. 혹은 How do I make my first Maven project?와 같이 archtype을 지정해야 한다. 물론 검색해서 찾아야 하는 번거로움이 있다.

mvn archetype:generate \ -DarchetypeGroupId=org.apache.maven.archetypes \ -DgroupId=com.mycompany.app \ -DartifactId=my-app

gradle의 경우는 Build init plugin에서 지원하는 5가지 유형(‘pom(Maven의 pom.xml을 바탕으로 build.gradle 을 생성)’, ‘java-library(자바의 관례적인 프로젝트 형태로 구성)’, ‘scala-library(스칼라)’, ‘groovy-library(그루비)’, ‘basic(build.gradle과 settings.gradle만 생성)’)을 제공한다.

나는 자바 개발자니까 gradle을 이용해서 java 프로젝트를 생성해보겠다.

$ gradle init --type java-library

이 명령어의 수행결과는 다음과 같다.


build.gradle

/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'ihoneymon' at '14. 2. 26 오전 12:59' with Gradle 1.10
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at http://gradle.org/docs/1.10/userguide/tutorial_java_projects.html
 */

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'maven central' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    mavenCentral()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.5'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.11'
}

settings.gradle

/*
 * This settings file was auto generated by the Gradle buildInit task
 * by 'ihoneymon' at '14. 2. 26 오전 12:59' with Gradle 1.10
 *
 * The settings file is used to specify which projects to include in your build.
 * In a single project build this file can be empty or even removed.
 *
 * Detailed information about configuring a multi-project build in Gradle can be found
 * in the user guide at http://gradle.org/docs/1.10/userguide/multi_project_builds.html
 */

/*
// To declare projects as part of a multi-project build use the 'include' method
include 'shared'
include 'api'
include 'services:webservice'
*/

rootProject.name = 'gradle'

의 그래들 스크립트가 자동생성된 것을 볼 수 있다. build.gradle 에서 apply plugin: 'java'가 다음 이야기를 할 대상이다.

다음에는 gradle의 플러그인을 살펴보자.


참고


+ Recent posts