LoginSignup
14
17

More than 5 years have passed since last update.

Hello world, OpenShift v3

Last updated at Posted at 2015-08-23

OpenShift v3 で Hello world するための簡易手順です。

OpenShiftをテストするには、vegrantやdockerイメージを使うことも可能ですが、今回はシンプルにローカルで稼働させます。テストしているのは、以下の環境です。Linux上でgo(v1.4以降)とdocker(v1.7以降)のインストールが必要になります。

  • Fedora 21,22,23
  • RHEL 7.1
  • CentOS 7.1 (docker-1.7.1-108.el7.centos.x86_64/go1.4.2)
  • Ubuntu 14.04 (docker 1.8.1/go1.4)

OpenShift v3 ローカル起動

1. 事前準備

go1.4/docker1.7をインストールしてください。
使用するポートは以下になります。http サーバー(port:80)やetcdは停止しておいてください。また、dockerプロセスは予め停止しておいてください。

53, 80 443 4001 7001 8443

2. OpenShift (Origin) のソースコードを clone

cd /tmp
git clone https://github.com/openshift/origin.git

3. ローカルでサーバーを立ち上げるためのスクリプト(openshift-local-setup.sh)をダウンロードして実行

※注: スクリプトの実行はsudoかrootユーザーでお願いします。

wget https://raw.githubusercontent.com/nak3/openshift-local-setup/master/openshift-local-setup.sh
[root]# bash openshift-local-setup.sh

4. 別のターミナルウィンドウを開いて、3.の最後に出力されたコマンドをコピペして実行

例:
$ export PATH="/tmp/origin/_output/local/go/bin/:$PATH"
$ alias oc="oc --config=/tmp/origin/openshift.local.config/master/admin.kubeconfig"
$ alias oadm="oadm --config=/tmp/origin/openshift.local.config/master/admin.kubeconfig"
$ source /tmp/origin/rel-eng/completions/bash/oc

5. router と docker-registry の Running 状態を確認

$ oc get pod
NAME                      READY     STATUS       RESTARTS   AGE
docker-registry-1-0llac   1/1       Running      0          24m
router-1-qs783            1/1       Running      0          24m

Hello world, OpenShift v3

1. ログイン & プロジェクトの作成

$ oadm policy add-role-to-user admin testuser 
※注: 今回はテスト簡易化のために一般ユーザーにadmin権限を追加しています

$ oc login
Username: testuser
Authentication required for https://192.168.133.3:8443 (openshift)
Password: <テスト環境のため、パスワードはどんな文字列でもログイン可能です>
Login successful.

You don't have any projects. You can try to create a new project, by running

    $ oc new-project <projectname>

$ oc new-project testproject
Now using project "testproject" on server "https://192.168.133.3:8443".

2. PHP アプリで Hello World

まずは、PHP を例に作成してみます。

2-1. アプリケーションの作成

$ oc new-app https://github.com/openshift/sti-php.git --context-dir=5.5/test/test-app -l app=php --strategy=source
imagestreams/sti-php
buildconfigs/sti-php
deploymentconfigs/sti-php
services/sti-php
Build "sti-php" created and started - you can run `oc status` to check the progress.
Service "sti-php" created at 172.30.36.155 with port mappings 8080.

2-2. ビルドの確認

$ oc get build でRunningになってから確認してください。

$ oc build-logs sti-php-1
I0823 02:20:50.437783       1 builder.go:42] $BUILD env var is {"kind":"Build","apiVersion":"v1","metadata":

...

I0823 02:21:56.607111       1 sti.go:149] Pushing 172.30.107.232:5000/foo/sti-php:latest image ...
I0823 02:23:09.661091       1 sti.go:153] Successfully pushed 172.30.107.232:5000/foo/sti-php:latest

※注: この時、Buffering to Disk で最後のPushがスタックする場合、おそらく環境のリソース不足です。

2-3. ローカルで Hello World

$ oc get pod
NAME               READY     STATUS       RESTARTS   AGE
sti-php-1-j7mez    1/1       Running      0          29s

$ oc get svc
NAME      CLUSTER_IP      EXTERNAL_IP   PORT(S)    SELECTOR                           AGE
sti-php   172.30.36.155   <none>        8080/TCP   app=php,deploymentconfig=sti-php   3m

$ curl 172.30.36.155:8080 (または、ブラウザでアクセス)
(PHP is working のメッセージ)

Hello Worldが出力されるかと思ったら、ここにあるテストアプリがHello Worldではなく、phpinfo()を出力させるものでした。気にしないで進めます。

2-4. 外部ホストから Hello World

※注: 今回は、/etc/hostsを使ってテストしていますが、本来は DNS サーバーを使います。

OpenShift が稼働しているホスト上

$ oc expose service sti-php --hostname=hello-php.example.com
NAME      HOST/PORT               PATH      SERVICE   LABELS    TLS TERMINATION
sti-php   hello-php.example.com             sti-php   app=php

$ hostname -i
192.168.122.3

テスト用クライアントホスト上

# echo "192.168.122.3  hello-php.example.com" >> /etc/hosts

# curl hello-php.example.com (または、ブラウザでアクセス)
(PHP is working)

3. 言語で Hello World

ほぼ全てHello Worldを出力させるサンプルではないですが気にしないでください・・・。 アプリケーション作成時に、-l app=<ラベル名> を設定しておけば、後から下のコマンドで一括削除が可能です。

アプリケーション削除方法:

oc delete all -l app=<ラベル名>

3-1. Python

以下、テスト方法は 2.PHP のテストと同じです。

oc new-app https://github.com/openshift/sti-python.git --context-dir=3.3/test/standalone-test-app -l app=python --strategy=source

3-2. Ruby

oc new-app https://github.com/openshift/sti-ruby.git --context-dir=2.0/test/puma-test-app -l app=ruby --strategy=source

3-3. Java EE (Wildfly)

oc new-app git://github.com/bparees/openshift-jee-sample -l app=wildfly --strategy=source

3-4. Nodejs

oc new-app https://github.com/openshift/sti-nodejs.git --context-dir=0.10/test/test-app/ -l app=nodejs --strategy=source

3-5. Perl

oc new-app https://github.com/openshift/sti-perl.git --context-dir=5.20/test/sample-test-app -l app=perl --strategy=source

今回は、コマンドラインからの手順でしたが、https://<ホストIP>/8443 にアクセスすれば、Add to projectからアプリケーションをデプロイすることも可能です。

14
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
17