SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Copyright 2015 Japan OSS Promotion Forum
割と新し目の OpenShift Origin で作る
自宅 PaaS 作成記
0
2015年7月29日
JOPF
原 嘉彦(@GORO_Neko)
目次
1. 自己紹介
2. はじめに
3. 構築方法について
4. 今回の構築環境
5. 構築してみる
1. ソースコード等の準備
2. 実行環境(VM)の起動・ログイン
3. OpenShift Origin v3 の構築
4. 環境チェック
5. リリース版への置き換え
6. OpenShift Origin v3 の起動
7. 証明書のパーミッション変更等の実施
8. Private docker registry のデプロイ
6. 動かしてみる
1. ログイン
2. プロジェクトの作成
3. アプリケーションのデプロイ
4. アプリケーションへのアクセス
5. 他のユーザでのログイン
6. GUIを使ったプロジェクトの作成
7. GUIを使ったアプリケーションのデプロイ
7. 使って気になったこと
Copyright 2014-2015 Japan OSS Promotion Forum 1
Copyright 2015 Japan OSS Promotion Forum 2
1.自己紹介
 某ITベンダに勤めています
 ソフトウェア開発(近頃は組込向けアプリケー
ションの開発がマイトレンドかも?)が好きで
す
 でも息仔猫と遊んだり、寝たりする方がもっと
好きです
 日本OSS推進フォーラム(JOPF;
http://ossforum.jp/) と言う企業系OSS促進
団体に所属しています
 CloudFoundryJP
( https://groups.google.com/forum/#!forum/
cloudfoundryjp)を中心に、プログラミング言語
/アプリケーション開発/仮想化系等(要するに
節操無し)のコミュニティで遊んでもらっていま
す
くぅ
くぅ
くぅ
くぅ
Copyright 2015 Japan OSS Promotion Forum 3
2.はじめに
 私はOpenShiftの中の人でも、プロでもありません
 ここから先の記述は、趣味人が「とにかく色々試行
したらOpenShiftを何とか動かせたよ」の記録をまと
めたものです
 でもまぁ・・・ただの趣味人でも動かせたんですから、
「貴方も」「貴方の環境でも」 OpenShiftはきっと動く
はずです!
Copyright 2015 Japan OSS Promotion Forum 4
3構築方法について
 OpenShiftの構成はマスターとノードから成る
 OpenShift origin の構築方法は大きく3通り
1. 1台のマシン( Dockerコンテナ)にマスターもノードも構築する
2. 1台のマシン(VM)にマスターもノードも構築する
3. 別々のマシン(物理マシン or VM)にマスターとノードを構築する
項番 構築方法解説ページ 備考
1 https://github.com/openshift/origin 構築先のOSがRHEL7.1またはこれに相当するRHEL
ベースのOSであること
2 https://github.com/openshift/origin/tree/master/examples/sam
ple-app
構築先のOSがVagrantおよびプロバイダ(仮想化エン
ジン)が動くOSであること
3 https://github.com/openshift/openshift-ansible 構築先のOSがRHEL7.1またはこれに相当するRHEL
ベースのOSであること
マシン1 マシン2 マシン3 マシン4
OpenShift-master
OpenShift-node
(infra)
OpenShift-node
(#1)
OpenShift-node
(#2)
Defaultプロジェクト
DNS
Kubernetes
Kubernetes-ro
docker-registry
router
【注意!】
下表3のやり方では、マシン1とマシン2条のそ
れぞれは同じ1台のマシン上に配備される
マシン3上のDNSは、OpenShift-master
を配備したマシン以外であれば、どこに配備し
てもよい
Copyright 2015 Japan OSS Promotion Forum
4.今回の構築環境
 構築環境(ハードウェア): 以下参照
 構築方法: 1台のマシン(VM)にマスターもノードも構築する
 前頁の2の方法で構築
 Host OS: Cent OS 7 64Bit
 構築ツール: Vagrant + vagrant-libvirt + KVM
PRIMERGY MX130 S2
AMD Opteron 3280
2.8GHz(8core)
CPU
メモリ
ストレージ
8GB × 2
※ 16GB メモリ
260GB
ネットワーク 1GbE ×1
5
Copyright 2015 Japan OSS Promotion Forum
5.構築してみる
6
Copyright 2015 Japan OSS Promotion Forum
5.1.ソースコード等の準備
 OpenShift v3 開発版のソースコード、サンプルアプリケーション、サンプル設定
ファイル、開発に必要なツール類、運用に必要なDockerやKubernetes等は、以
下の場所から取得できる
 開発に必要なツール類、運用に必要なDockerやKubernetes等はダウンロード物に含
まれるVagrantfileによってさらにダウンロードされるVM内に用意されている
 ダウンロード先: https://github.com/openshift/origin
 OpenShift v3 リリース版のバイナリは、以下の場所から取得できる
 ダウンロード先: https://github.com/openshift/origin/releases
 openshift(OpenShift本体)、oc(操作コマンド)、oadm(管理者用操作コマンド)の3つ
のバイナリが、 tar.gz形式でアーカイブされている
 オペレーション
7
$ git clone https://github.com/openshift/origin.git
Copyright 2015 Japan OSS Promotion Forum
5.2.実行環境(VM)の起動・ログイン
 5.1.で入手したVagrantfileを利用して、OpenShift v3 構築先として利用する
VMを起動する
 作業に先立ち、Vagrantおよびプロバイダ(仮想化エンジン)をホストOSにセットアップ
しておくこと
 オペレーション
8
$ cd origin/
$ vi Vagrantfile (※上記の注意を参照)
$ vagrant up --provider=libvirt
$ vagrant ssh
【注意!】
5.1.で入手したVagrantfileをそのまま使って、VMを起動すると、VMに使用可能メモリが1GBしか割りあたらない。
このまま利用すると、次頁のOpenShiftのBuild作業が、メモリアロケート失敗で、必ず以上終了する。
Vagrantfileの以下の部分を書き換えてから、 Vagrantfile up すること。
---
"cpus" => ENV['OPENSHIFT_NUM_CPUS'] || 2,
“memory” => ENV[‘OPENSHIFT_MEMORY’] || 1024, ← ここを4096~8192くらいに変更
"sync_folders_type" => nil,
Copyright 2015 Japan OSS Promotion Forum
5.3.OpenShift Origin v3 の構築
 5.1.で入手したOpenShift v3 開発版のソースコードやMakefileを利用して、
OpenShift v3 の環境を構築する
 gitコマンドでHostOS上にダウンロードしたoriginディレクトリが、VMの以下のディレク
トリにマウントされている
 /data/src/github.com/openshift/origin
 上記ディレクトリに移動の上、Buildを実施する
 オペレーション
9
$ cd /data/src/github.com/openshift/origin
$ make clean build
Copyright 2015 Japan OSS Promotion Forum
5.4.環境チェック
 5.3.でBuildしたOpenShift v3を構成するバイナリ(openshift(OpenShift本体)、
oc(操作コマンド)、oadm(管理者用操作コマンド) )等は以下のディレクトリに作
成・格納されている
 /data/src/github.com/openshift/origin/_output/local/go/bin
 VM側の設定で、この時点で環境変数PATHに上記ディレクトリが含まれている
ため、PATH指定無しのバイナリ名だけで、OpenShift v3を構成するバイナリを
起動できる
 確認オペレーション(例)
10
$ which openshift
/data/src/github.com/openshift/origin/_output/local/go/bin/openshift
$ echo $PATH
/data/src/github.com/openshift/origin/_output/etcd/bin:/data/src/github.
com/openshift/origin/_output/local/go/bin/:/bin:/usr/local/sbin:/sbin:/bin:
/usr/sbin:/usr/bin:/root/bin:/home/vagrant/.local/bin:/home/vagrant/bin
$ openshift version
openshift v1.0.3-140-g9d20f55-dirty
kubernetes v1.0.0
Copyright 2015 Japan OSS Promotion Forum
5.5.リリース版への置き換え
 5.3.でBuildしたOpenShift v3を構成するバイナリ(openshift(OpenShift本体)、
oc(操作コマンド)、oadm(管理者用操作コマンド) )を、リリース版のものに置き
換える
 開発版OpenShift v3は、日々リビジョン番号が上がる勢いで開発が続けられており、
数日前のソースからBuildしたものと本日のソースでBuildしたものの挙動が変わる等、
挙動が不安定(7/26版ではPrivate docker registryが正しく起動しなかった)
 2015/07/21時点: v1.0.3-18-g7db1cf9-dirty、 2015/07/25時点: v1.0.3-138-g7037758-dirty、
2015/07/26時点: v1.0.3-140-g9d20f55-dirty
 今回は現時点での最新リリース版(v1.0.3:
https://github.com/openshift/origin/releases/download/v1.0.3/openshift-origin-
v1.0.3-1695461-linux-amd64.tar.gz )を利用する
 オペレーション
11
$ cd /data/src/github.com/openshift/origin/_output/local/go/bin/
$ wget https://github.com/openshift/origin/releases/download/v1.0.3/openshift-origin-
v1.0.3-1695461-linux-amd64.tar.gz
$ tar zxvf openshift-origin-v1.0.3-1695461-linux-amd64.tar.gz
$ openshift version
openshift v1.0.3
kubernetes v1.0.0
Copyright 2015 Japan OSS Promotion Forum
5.6.OpenShift Origin v3 の起動(1/3)
 バイナリのOpenShiftをコマンドとして起動することで、OpenShift Origin v3 を起
動する
 サーバアプリケーションとして起動($ sudo openshift start)する方法と、サービ
スとして起動($ sudo systemctl start openshift) する方法がとれる
 OpenShift Origin v3 を起動すると、以下の3つのディレクトリが自動的に作成さ
れ、ディレクトリ内に、コマンドやユーザがシステムとやり取りする際に必要とな
る証明書等が配置される。
 作成されるディレクトリ名
 openshift.local.config
 openshift.local.etcd
 openshift.local.volumes
 上記ディレクトリは、サーバアプリケーションとして起動した場合は、起動コマンドを実
行したディレクトリ内に、サービスとして起動した場合はトップディレクトリ(/)直下に作
成される
 オペレーション
12
$ sudo systemctl start openshift
Copyright 2015 Japan OSS Promotion Forum
5.6.OpenShift Origin v3 の起動(2/3)
 OpenShiftを起動後、ホストOS上のブラウザで
『https://localhost:8443/console』にアクセスすると、 OpenShiftのWebUIを呼び
出せる。
 ゲストOS(vagrantで起動したVM)上で動作している、WebGUIにホストOS上から
アクセスできるのは、Vagrantfileを使って、vagrantがゲストOS側のいくつかの
Portをポートフォワードしているため
13
if vagrant_openshift_config['private_network_ip']
config.vm.network "private_network", ip: vagrant_openshift_config['private_network_ip']
else
config.vm.network "forwarded_port", guest: 80, host: 1080
config.vm.network "forwarded_port", guest: 443, host: 1443
config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "forwarded_port", guest: 8443, host: 8443
end
Copyright 2015 Japan OSS Promotion Forum
5.6.OpenShift Origin v3 の起動(3/3)
【WebGUI】
14
Copyright 2015 Japan OSS Promotion Forum
5.7.証明書のパーミッション変更等の実施
 OpenShiftのコマンドは、 5.6.で自動作成されたディレクトリ内の証明書を利
用して、動作を行う
 各コマンドが証明書を参照できるように環境変数の設定や、証明書のパーミッ
ションの変更を行う必要がある
 オペレーション
15
$ export CURL_CA_BUNDLE=/openshift.local.config/master/ca.crt
$ sudo chmod a+rwX /openshift.local.config/master/admin.kubeconfig
$ sudo chmod +r /openshift.local.config/master/openshift-registry.kubeconfig
【注意!】
OpenShiftをサーバアプリケーションとして、トップディレクトリ(/)以外のディレクトリで起動した場合は、環境変数
KUBECONFIGの値の修正が必要
デフォルトのKUBECONFIGの値は『/openshift.local.config/master/admin.kubeconfig』
Copyright 2015 Japan OSS Promotion Forum
5.8.Private docker registry のデプロイ
 OpenShiftのにデプロイされるユーザアプリケーション(をDockerコンテナ化したもの)の
格納先である、Private docker registry のデプロイを行う
 Private docker registry のデプロイコマンド( oadm registry )を管理者権限で実行する必要があるが、sudo先
にPAHT環境変数等環境変数を引き継げない設定になっているため、コマンドをPath付きで呼び出す必要が
ある
 配備作業実施後、配備結果の確認コマンドを投入し、結果出力中の『Endpoints』の値が、
<none>から何らかのIPアドレスに変われば配備完了
 配備完了までに、2分程度時間がかかる
 オペレーション
16
$ sudo `which oadm` registry --create --credentials=/openshift.local.config/master/openshift-
registry.kubeconfig --config=/openshift.local.config/master/admin.kubeconfig
$ oc describe service docker-registry --config=openshift.local.config/master/admin.kubeconfig
$ oc describe service docker-registry --config=openshift.local.config/master/admin.kubeconfig
Name: docker-registry
Namespace: default
Labels: docker-registry=default
Selector: docker-registry=default
Type: ClusterIP
IP: 172.30.217.24
Port: 5000-tcp 5000/TCP
Endpoints: 172.17.0.2:5000 ← <none> と表示されていないこと
Session Affinity: None
No events.
Copyright 2015 Japan OSS Promotion Forum
6.動かしてみる
17
Copyright 2015 Japan OSS Promotion Forum
6.1.ログイン
 5.で構築したOpenShift v3 にログインする
 現在環境変数KUBECONFIGに設定されている値(ファイル)はadmin用のものなの
で、unsetする
 ゲストOS(vagrantで起動したVM)内でログインコマンド(oc login)を実行する
 対話式に、ログインするユーザネームとパスワードを尋ねられるので応答する
 この例では、ユーザネーム: test-admin、パスワード: test-admin と入力
 オペレーション
18
$ unset $KUBECONFIG
$ oc login
【注意!】
Vagrantによるオールインワン構成OpenShiftの場合、パスワードはなにを指定しても認証される
ただし、パスワードに空パスワードを指定すると、認証が失敗する
Copyright 2015 Japan OSS Promotion Forum
6.2.プロジェクトの作成(1/2)
 ユーザは複数のプロジェクトを所有できる
 プロジェクト作成コマンド(oc new-project )実行後、WebGUIにプロジェクトを所
有するユーザでログインすると、プロジェクト作成時に指定したdisplay-name
のプロジェクトが作成されていることを確認できる
 オペレーション(例)
19
$ oc new-project test-admin-01 --display-name="test-admin-first-project"
--description="This is test-admin's first project"
Copyright 2015 Japan OSS Promotion Forum
6.2.プロジェクトの作成(2/2)
【WebGUI】
20
Copyright 2015 Japan OSS Promotion Forum
6.3.アプリケーションのデプロイ(1/2)
 ユーザは自分の所有する任意のプロジェクトに、複数のアプリケーションをデプ
ロイできる
 アプリケーションのデプロイコマンド( oc new-app )に、デプロイするアプリケー
ション、アプリケーションを動作するために使用する、言語、エンジン等の存在
位置等を記述した json ファイルを指定することで、アプリケーションをデプロイ
する
 オペレーション(例)
21
$ oc new-app /data/src/github.com/openshift/origin/examples/sample-
app/application-template-stibuild.json
Copyright 2015 Japan OSS Promotion Forum
6.3.アプリケーションのデプロイ(2/2)
【WebGUI】
【デプロイ前】 【デプロイ後】
22
Copyright 2015 Japan OSS Promotion Forum
6.4.アプリケーションへのアクセス(1/2)
 アプリケーションはゲストVM内で動いている
 WebGUIで、アプリケーションに割り振られたIPおよびPortを確認し、vagrantの
ポートフォワード機能等で、ホストOS側からアクセスできるように設定し、アクセ
スする
1. WebGUIでアプリケーションに振り当てられたIP、ポートを確認
2. vagrantのポートフォワード機能等でホストOS側からアクセスできるように設定
3. ホストOS上のWebブラウザでアクセス
23
この場合、IP= 172.30.182.252、Port=5432
Copyright 2015 Japan OSS Promotion Forum
6.4.アプリケーションへのアクセス(2/2)
24
この場合、IP= 172.30.182.252、Port=5432
【端末を開きoriginディレクトリ下で実施】
vagrant ssh -- -L 9999:172.30.182.252:5432
※ ホストOS: localhost:9999
ゲストOS: 172.30.182.252:5432
間をポートフォワード
Copyright 2015 Japan OSS Promotion Forum
6.5.他のユーザでのログイン(1/2)
 6.1.ログインと同様の方法で、他のユーザでのログインが可能
 他のユーザでログイン(WebGUI含む)した場合、別のユーザが作成したプロ
ジェクトやアプリケーションは表示されない
 5.で構築したOpenShift v3 にログインする
 ゲストOS(vagrantで起動したVM)内でログインコマンド(oc login)を実行する
 対話式に、ログインするユーザネームとパスワードを尋ねられるので応答する
 この例では、ユーザネーム: yosihiko、パスワード: yosihiko と入力
 ログイン後、display-name=“yosihiko-first-project” であるプロジェクトも作成する
 オペレーション(例)
25
$ oc login
$ oc new-project yosihiko-01 --display-name="yosihiko-first-project" --
description="This is yosihiko's first project"
Copyright 2015 Japan OSS Promotion Forum
6.5.他のユーザでのログイン(2/2)
26
ユーザ: yosihiko でログインした場合
• ユーザ: yosihiko としてログインに成功し
display-name=“yosihiko-first-project”
であるプロジェクトも確認できる
• ただしユーザ: test-admin の所持するプ
ロジェクトやデプロイ済みアプリケーショ
ンの情報は見えない
Copyright 2015 Japan OSS Promotion Forum
6.6.GUIを使ったプロジェクトの作成(1/3)
 プロジェクトは、WebGUIを使用しても作成可能
 プロジェクトを使いたいユーザで、WebGUIにログインする
 ページ右上の『New Project』ボタンを押下する
27
① ユーザ: test-admin で
ログイン
② 『New Project』ボタンを押下
Copyright 2015 Japan OSS Promotion Forum
6.6.GUIを使ったプロジェクトの作成(2/3)
 『New Project』ページでプロジェクトのName等を入力する
 入力後画面左下の『Create』ボタンを押下する
28
① プロジェクトのName等を入力
② 『Create』ボタンを押下
Copyright 2015 Japan OSS Promotion Forum
6.6.GUIを使ったプロジェクトの作成(3/3)
 既に作成済みのプロジェクトに加えて、まだアプリケーションがデプロイされて
いない新規プロジェクトページが表示される
 複数プロジェクトを所有している場合、プロジェクトの切り替えは左上部の
『Projecs』タブを使って行う
29
Copyright 2015 Japan OSS Promotion Forum
6.7.GUIを使ったアプリケーションのデプロイ(1/4)
 GUIを使ってアプリケーションをデプロイする前に、アプリケーションをデプロイす
るプロジェクトに対し、ImageStream(アプリケーションを動作させるための言語
やエンジン、DB等をテンプレート化したもの)を登録しておく必要がある
1. CUIでプロジェクトを所有するユーザとしてOpenShiftにログインする
2. ImageStream の登録コマンド(osc create –f < ImageStream を定義した json
ファイル名> -n <登録先 Project 名>)を実行する
※ Githubから入手したOpenShiftのソース類中に『< ImageStream を定義した json ファイル』
の例(/data/src/github.com/openshift/origin/examples/image-streams/image-streams-
centos7.json)がある
※ 上記ファイルを利用して登録を行った場合以下のImageStreamがプロジェクトに登録される
• ruby、nodejs、perl、php、python、wildfly、mysql、postgresql、mongodb、jenkins
 上記を実行の後、WebGUIからアプリケーションをデプロイする
 オペレーション(例)
30
$ oc login
$ osc create -f /data/src/github.com/openshift/origin/examples/image-
streams/image-streams-centos7.json -n test-admin-02
Copyright 2015 Japan OSS Promotion Forum
6.7.GUIを使ったアプリケーションのデプロイ(2/4)
 プロジェクトを使いたいユーザで、WebGUIにログインし、アプリケーションを登録
したいプロジェクトを選択する
 ページ中の『Get Started』ボタンを押下する
31
① ユーザ: test-admin で
ログイン
② アプリケーションをデプロイしたい
プロジェクトを選択
③ 『Get Started』ボタンを押下
Copyright 2015 Japan OSS Promotion Forum
6.7.GUIを使ったアプリケーションのデプロイ(3/4)
 デプロイしたいアプリケーションを登録したGitリポジトリの情報を入力する
32
デプロイしたいアプリケーションを登録したGitリポジトリの
情報を入力
Copyright 2015 Japan OSS Promotion Forum
6.7.GUIを使ったアプリケーションのデプロイ(4/4)
 アプリケーションを動作させるために使用するImageStream(builder image)を
押下する
 ImageStream(builder image)の選択が終わるとアプリケーションのデプロイ
作業が開始される
32
使用するImageStream(builder image)を押下する
Copyright 2015 Japan OSS Promotion Forum
7.使って気になったこと
 jsonファイルの書き方がよくわからない!
 プロジェクトの作成、アプリケーションのデプロイ、使えるリソースの制約実現
のため等、多々 json ファイルを記述する必要があるが、記述すべき項目や
内容、書式がよくわからない
 まずは公式ドキュメント
(https://docs.openshift.org/latest/welcome/index.html)を読み込むべき?
 Vagrantが起動したVMでSELinux、firewalldが無効化されている
 OpenShiftは、マルチテナント機能(通信や各ユーザ間のアプリケーションへ
のアクセス制限等)の実現にSELinuxやfirewalldを活用するといってたは
ず、、、なのに?
 開発が進むごとにコマンド名が変わって言っているような、、、
 ちょっと前まで、 Private docker registry のデプロイって、OpenShiftコマンド
を使って行うものじゃなかったでしたっけ?
33
Copyright 2014-2015 Japan OSS Promotion Forum 35

Contenu connexe

Tendances

はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入Yu Nobuoka
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSnpsg
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門Hori Tasuku
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Emma Haruka Iwao
 
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかEmma Haruka Iwao
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShiftEtsuji Nakai
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restorekawamuray
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Emma Haruka Iwao
 
Docker地雷n本勝負
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負RyutaKoide
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月VirtualTech Japan Inc.
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Kazuyuki Mori
 
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較cloudconductor
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Masahito Zembutsu
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 

Tendances (20)

Jenkins with Docker
Jenkins with DockerJenkins with Docker
Jenkins with Docker
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
ラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaSラズパイ2で動く Docker PaaS
ラズパイ2で動く Docker PaaS
 
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
 
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
Docker on RHEL & Project Atomic 入門 - #Dockerjp 4
 
DockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのかDockerをRed Hatはどのように見ているのか
DockerをRed Hatはどのように見ているのか
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
Docker + Checkpoint/Restore
Docker + Checkpoint/RestoreDocker + Checkpoint/Restore
Docker + Checkpoint/Restore
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
 
Docker地雷n本勝負
Docker地雷n本勝負Docker地雷n本勝負
Docker地雷n本勝負
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
 
Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較Docker向け軽量os 3製品比較
Docker向け軽量os 3製品比較
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
Dockerは2016年の秋現在どのような状況なのか~忙しい人の5分で分かるDocker~
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
 

En vedette

ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみたKazuto Kusama
 
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解するEtsuji Nakai
 
AWSで自宅サーバ?
AWSで自宅サーバ?AWSで自宅サーバ?
AWSで自宅サーバ?祐磨 堀
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料slankdev
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情Kazuhiro Serizawa
 
Symfony2 intro-20111204
Symfony2 intro-20111204Symfony2 intro-20111204
Symfony2 intro-20111204Hidenori Goto
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜Masakazu Matsushita
 
Google for Mobile: コンテナで作るモバイル バックエンド - 福田 潔
Google for Mobile:  コンテナで作るモバイル バックエンド - 福田 潔Google for Mobile:  コンテナで作るモバイル バックエンド - 福田 潔
Google for Mobile: コンテナで作るモバイル バックエンド - 福田 潔Google Cloud Platform - Japan
 
MongoDBで作るソーシャルデータ新解析基盤
MongoDBで作るソーシャルデータ新解析基盤MongoDBで作るソーシャルデータ新解析基盤
MongoDBで作るソーシャルデータ新解析基盤Takahiro Inoue
 
Ansibleで一発!! VPSにDokkuを構築してみた
Ansibleで一発!! VPSにDokkuを構築してみたAnsibleで一発!! VPSにDokkuを構築してみた
Ansibleで一発!! VPSにDokkuを構築してみたAkihiko Horiuchi
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javaYuji Kubota
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Etsuji Nakai
 
OpenShift v3 Technical Introduction
OpenShift v3 Technical IntroductionOpenShift v3 Technical Introduction
OpenShift v3 Technical IntroductionEtsuji Nakai
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話Kazuto Kusama
 
Gcpでdocker
GcpでdockerGcpでdocker
Gcpでdockerkoda3
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftEtsuji Nakai
 

En vedette (20)

ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた新しいOpenShiftのしくみを調べてみた
新しいOpenShiftのしくみを調べてみた
 
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
"Docker is NOT Container." ~ Dockerとコンテナ技術、PaaSの関係を理解する
 
AWSで自宅サーバ?
AWSで自宅サーバ?AWSで自宅サーバ?
AWSで自宅サーバ?
 
OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料OSC 2016 Hokkaido セミナー資料
OSC 2016 Hokkaido セミナー資料
 
OpenShift のある生活
OpenShift のある生活OpenShift のある生活
OpenShift のある生活
 
第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情第八回 #渋谷Java 最近のjava PaaS事情
第八回 #渋谷Java 最近のjava PaaS事情
 
Symfony2 intro-20111204
Symfony2 intro-20111204Symfony2 intro-20111204
Symfony2 intro-20111204
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
Google for Mobile: コンテナで作るモバイル バックエンド - 福田 潔
Google for Mobile:  コンテナで作るモバイル バックエンド - 福田 潔Google for Mobile:  コンテナで作るモバイル バックエンド - 福田 潔
Google for Mobile: コンテナで作るモバイル バックエンド - 福田 潔
 
MongoDBで作るソーシャルデータ新解析基盤
MongoDBで作るソーシャルデータ新解析基盤MongoDBで作るソーシャルデータ新解析基盤
MongoDBで作るソーシャルデータ新解析基盤
 
Ansibleで一発!! VPSにDokkuを構築してみた
Ansibleで一発!! VPSにDokkuを構築してみたAnsibleで一発!! VPSにDokkuを構築してみた
Ansibleで一発!! VPSにDokkuを構築してみた
 
java.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷javajava.lang.OutOfMemoryError #渋谷java
java.lang.OutOfMemoryError #渋谷java
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門
 
OpenShift v3 Technical Introduction
OpenShift v3 Technical IntroductionOpenShift v3 Technical Introduction
OpenShift v3 Technical Introduction
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話最近のKubernetesとDocker Machine/Swarmの話
最近のKubernetesとDocker Machine/Swarmの話
 
Gcpでdocker
GcpでdockerGcpでdocker
Gcpでdocker
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 

Similaire à 割と新し目の Open shift origin で作る自宅 paas 作成記

3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfesTakeshi Komiya
 
OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)Naoya Hashimoto
 
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたクラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたShinji Enoki
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるdavid9142
 
Open shiftoriginquickstart clouddevelopercircle_20170920
Open shiftoriginquickstart clouddevelopercircle_20170920Open shiftoriginquickstart clouddevelopercircle_20170920
Open shiftoriginquickstart clouddevelopercircle_20170920kei omizo
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)Masataka Kondo
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...Naoto Gohko
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介OSSラボ株式会社
 
Azure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwAzure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwMasahito Zembutsu
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Etsuji Nakai
 
Lagopusとvagrant
LagopusとvagrantLagopusとvagrant
LagopusとvagrantMasaru Oki
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでHideaki Miyake
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATETomofumi Yagi
 

Similaire à 割と新し目の Open shift origin で作る自宅 paas 作成記 (20)

3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
Openshift 20191121
Openshift 20191121Openshift 20191121
Openshift 20191121
 
OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)OpenShift Origin Minishift (Beta)
OpenShift Origin Minishift (Beta)
 
Openshift 20191128
Openshift 20191128Openshift 20191128
Openshift 20191128
 
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみたクラウドコラボレーションサーバ「Collabora Online」を構築してみた
クラウドコラボレーションサーバ「Collabora Online」を構築してみた
 
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
 
Open shiftoriginquickstart clouddevelopercircle_20170920
Open shiftoriginquickstart clouddevelopercircle_20170920Open shiftoriginquickstart clouddevelopercircle_20170920
Open shiftoriginquickstart clouddevelopercircle_20170920
 
LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...OpenStack base public cloud service by GMO Internet Inc.,  at 2013/12/12 Okin...
OpenStack base public cloud service by GMO Internet Inc., at 2013/12/12 Okin...
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介オープンソースNW監視ツールのご紹介
オープンソースNW監視ツールのご紹介
 
Scoop!
Scoop!Scoop!
Scoop!
 
Azure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果wwwAzure CLI あずにゃんの CLI を使ってみた結果www
Azure CLI あずにゃんの CLI を使ってみた結果www
 
Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介Open Shift v3 主要機能と内部構造のご紹介
Open Shift v3 主要機能と内部構造のご紹介
 
Lagopusとvagrant
LagopusとvagrantLagopusとvagrant
Lagopusとvagrant
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 

割と新し目の Open shift origin で作る自宅 paas 作成記

  • 1. Copyright 2015 Japan OSS Promotion Forum 割と新し目の OpenShift Origin で作る 自宅 PaaS 作成記 0 2015年7月29日 JOPF 原 嘉彦(@GORO_Neko)
  • 2. 目次 1. 自己紹介 2. はじめに 3. 構築方法について 4. 今回の構築環境 5. 構築してみる 1. ソースコード等の準備 2. 実行環境(VM)の起動・ログイン 3. OpenShift Origin v3 の構築 4. 環境チェック 5. リリース版への置き換え 6. OpenShift Origin v3 の起動 7. 証明書のパーミッション変更等の実施 8. Private docker registry のデプロイ 6. 動かしてみる 1. ログイン 2. プロジェクトの作成 3. アプリケーションのデプロイ 4. アプリケーションへのアクセス 5. 他のユーザでのログイン 6. GUIを使ったプロジェクトの作成 7. GUIを使ったアプリケーションのデプロイ 7. 使って気になったこと Copyright 2014-2015 Japan OSS Promotion Forum 1
  • 3. Copyright 2015 Japan OSS Promotion Forum 2 1.自己紹介  某ITベンダに勤めています  ソフトウェア開発(近頃は組込向けアプリケー ションの開発がマイトレンドかも?)が好きで す  でも息仔猫と遊んだり、寝たりする方がもっと 好きです  日本OSS推進フォーラム(JOPF; http://ossforum.jp/) と言う企業系OSS促進 団体に所属しています  CloudFoundryJP ( https://groups.google.com/forum/#!forum/ cloudfoundryjp)を中心に、プログラミング言語 /アプリケーション開発/仮想化系等(要するに 節操無し)のコミュニティで遊んでもらっていま す くぅ くぅ くぅ くぅ
  • 4. Copyright 2015 Japan OSS Promotion Forum 3 2.はじめに  私はOpenShiftの中の人でも、プロでもありません  ここから先の記述は、趣味人が「とにかく色々試行 したらOpenShiftを何とか動かせたよ」の記録をまと めたものです  でもまぁ・・・ただの趣味人でも動かせたんですから、 「貴方も」「貴方の環境でも」 OpenShiftはきっと動く はずです!
  • 5. Copyright 2015 Japan OSS Promotion Forum 4 3構築方法について  OpenShiftの構成はマスターとノードから成る  OpenShift origin の構築方法は大きく3通り 1. 1台のマシン( Dockerコンテナ)にマスターもノードも構築する 2. 1台のマシン(VM)にマスターもノードも構築する 3. 別々のマシン(物理マシン or VM)にマスターとノードを構築する 項番 構築方法解説ページ 備考 1 https://github.com/openshift/origin 構築先のOSがRHEL7.1またはこれに相当するRHEL ベースのOSであること 2 https://github.com/openshift/origin/tree/master/examples/sam ple-app 構築先のOSがVagrantおよびプロバイダ(仮想化エン ジン)が動くOSであること 3 https://github.com/openshift/openshift-ansible 構築先のOSがRHEL7.1またはこれに相当するRHEL ベースのOSであること マシン1 マシン2 マシン3 マシン4 OpenShift-master OpenShift-node (infra) OpenShift-node (#1) OpenShift-node (#2) Defaultプロジェクト DNS Kubernetes Kubernetes-ro docker-registry router 【注意!】 下表3のやり方では、マシン1とマシン2条のそ れぞれは同じ1台のマシン上に配備される マシン3上のDNSは、OpenShift-master を配備したマシン以外であれば、どこに配備し てもよい
  • 6. Copyright 2015 Japan OSS Promotion Forum 4.今回の構築環境  構築環境(ハードウェア): 以下参照  構築方法: 1台のマシン(VM)にマスターもノードも構築する  前頁の2の方法で構築  Host OS: Cent OS 7 64Bit  構築ツール: Vagrant + vagrant-libvirt + KVM PRIMERGY MX130 S2 AMD Opteron 3280 2.8GHz(8core) CPU メモリ ストレージ 8GB × 2 ※ 16GB メモリ 260GB ネットワーク 1GbE ×1 5
  • 7. Copyright 2015 Japan OSS Promotion Forum 5.構築してみる 6
  • 8. Copyright 2015 Japan OSS Promotion Forum 5.1.ソースコード等の準備  OpenShift v3 開発版のソースコード、サンプルアプリケーション、サンプル設定 ファイル、開発に必要なツール類、運用に必要なDockerやKubernetes等は、以 下の場所から取得できる  開発に必要なツール類、運用に必要なDockerやKubernetes等はダウンロード物に含 まれるVagrantfileによってさらにダウンロードされるVM内に用意されている  ダウンロード先: https://github.com/openshift/origin  OpenShift v3 リリース版のバイナリは、以下の場所から取得できる  ダウンロード先: https://github.com/openshift/origin/releases  openshift(OpenShift本体)、oc(操作コマンド)、oadm(管理者用操作コマンド)の3つ のバイナリが、 tar.gz形式でアーカイブされている  オペレーション 7 $ git clone https://github.com/openshift/origin.git
  • 9. Copyright 2015 Japan OSS Promotion Forum 5.2.実行環境(VM)の起動・ログイン  5.1.で入手したVagrantfileを利用して、OpenShift v3 構築先として利用する VMを起動する  作業に先立ち、Vagrantおよびプロバイダ(仮想化エンジン)をホストOSにセットアップ しておくこと  オペレーション 8 $ cd origin/ $ vi Vagrantfile (※上記の注意を参照) $ vagrant up --provider=libvirt $ vagrant ssh 【注意!】 5.1.で入手したVagrantfileをそのまま使って、VMを起動すると、VMに使用可能メモリが1GBしか割りあたらない。 このまま利用すると、次頁のOpenShiftのBuild作業が、メモリアロケート失敗で、必ず以上終了する。 Vagrantfileの以下の部分を書き換えてから、 Vagrantfile up すること。 --- "cpus" => ENV['OPENSHIFT_NUM_CPUS'] || 2, “memory” => ENV[‘OPENSHIFT_MEMORY’] || 1024, ← ここを4096~8192くらいに変更 "sync_folders_type" => nil,
  • 10. Copyright 2015 Japan OSS Promotion Forum 5.3.OpenShift Origin v3 の構築  5.1.で入手したOpenShift v3 開発版のソースコードやMakefileを利用して、 OpenShift v3 の環境を構築する  gitコマンドでHostOS上にダウンロードしたoriginディレクトリが、VMの以下のディレク トリにマウントされている  /data/src/github.com/openshift/origin  上記ディレクトリに移動の上、Buildを実施する  オペレーション 9 $ cd /data/src/github.com/openshift/origin $ make clean build
  • 11. Copyright 2015 Japan OSS Promotion Forum 5.4.環境チェック  5.3.でBuildしたOpenShift v3を構成するバイナリ(openshift(OpenShift本体)、 oc(操作コマンド)、oadm(管理者用操作コマンド) )等は以下のディレクトリに作 成・格納されている  /data/src/github.com/openshift/origin/_output/local/go/bin  VM側の設定で、この時点で環境変数PATHに上記ディレクトリが含まれている ため、PATH指定無しのバイナリ名だけで、OpenShift v3を構成するバイナリを 起動できる  確認オペレーション(例) 10 $ which openshift /data/src/github.com/openshift/origin/_output/local/go/bin/openshift $ echo $PATH /data/src/github.com/openshift/origin/_output/etcd/bin:/data/src/github. com/openshift/origin/_output/local/go/bin/:/bin:/usr/local/sbin:/sbin:/bin: /usr/sbin:/usr/bin:/root/bin:/home/vagrant/.local/bin:/home/vagrant/bin $ openshift version openshift v1.0.3-140-g9d20f55-dirty kubernetes v1.0.0
  • 12. Copyright 2015 Japan OSS Promotion Forum 5.5.リリース版への置き換え  5.3.でBuildしたOpenShift v3を構成するバイナリ(openshift(OpenShift本体)、 oc(操作コマンド)、oadm(管理者用操作コマンド) )を、リリース版のものに置き 換える  開発版OpenShift v3は、日々リビジョン番号が上がる勢いで開発が続けられており、 数日前のソースからBuildしたものと本日のソースでBuildしたものの挙動が変わる等、 挙動が不安定(7/26版ではPrivate docker registryが正しく起動しなかった)  2015/07/21時点: v1.0.3-18-g7db1cf9-dirty、 2015/07/25時点: v1.0.3-138-g7037758-dirty、 2015/07/26時点: v1.0.3-140-g9d20f55-dirty  今回は現時点での最新リリース版(v1.0.3: https://github.com/openshift/origin/releases/download/v1.0.3/openshift-origin- v1.0.3-1695461-linux-amd64.tar.gz )を利用する  オペレーション 11 $ cd /data/src/github.com/openshift/origin/_output/local/go/bin/ $ wget https://github.com/openshift/origin/releases/download/v1.0.3/openshift-origin- v1.0.3-1695461-linux-amd64.tar.gz $ tar zxvf openshift-origin-v1.0.3-1695461-linux-amd64.tar.gz $ openshift version openshift v1.0.3 kubernetes v1.0.0
  • 13. Copyright 2015 Japan OSS Promotion Forum 5.6.OpenShift Origin v3 の起動(1/3)  バイナリのOpenShiftをコマンドとして起動することで、OpenShift Origin v3 を起 動する  サーバアプリケーションとして起動($ sudo openshift start)する方法と、サービ スとして起動($ sudo systemctl start openshift) する方法がとれる  OpenShift Origin v3 を起動すると、以下の3つのディレクトリが自動的に作成さ れ、ディレクトリ内に、コマンドやユーザがシステムとやり取りする際に必要とな る証明書等が配置される。  作成されるディレクトリ名  openshift.local.config  openshift.local.etcd  openshift.local.volumes  上記ディレクトリは、サーバアプリケーションとして起動した場合は、起動コマンドを実 行したディレクトリ内に、サービスとして起動した場合はトップディレクトリ(/)直下に作 成される  オペレーション 12 $ sudo systemctl start openshift
  • 14. Copyright 2015 Japan OSS Promotion Forum 5.6.OpenShift Origin v3 の起動(2/3)  OpenShiftを起動後、ホストOS上のブラウザで 『https://localhost:8443/console』にアクセスすると、 OpenShiftのWebUIを呼び 出せる。  ゲストOS(vagrantで起動したVM)上で動作している、WebGUIにホストOS上から アクセスできるのは、Vagrantfileを使って、vagrantがゲストOS側のいくつかの Portをポートフォワードしているため 13 if vagrant_openshift_config['private_network_ip'] config.vm.network "private_network", ip: vagrant_openshift_config['private_network_ip'] else config.vm.network "forwarded_port", guest: 80, host: 1080 config.vm.network "forwarded_port", guest: 443, host: 1443 config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.network "forwarded_port", guest: 8443, host: 8443 end
  • 15. Copyright 2015 Japan OSS Promotion Forum 5.6.OpenShift Origin v3 の起動(3/3) 【WebGUI】 14
  • 16. Copyright 2015 Japan OSS Promotion Forum 5.7.証明書のパーミッション変更等の実施  OpenShiftのコマンドは、 5.6.で自動作成されたディレクトリ内の証明書を利 用して、動作を行う  各コマンドが証明書を参照できるように環境変数の設定や、証明書のパーミッ ションの変更を行う必要がある  オペレーション 15 $ export CURL_CA_BUNDLE=/openshift.local.config/master/ca.crt $ sudo chmod a+rwX /openshift.local.config/master/admin.kubeconfig $ sudo chmod +r /openshift.local.config/master/openshift-registry.kubeconfig 【注意!】 OpenShiftをサーバアプリケーションとして、トップディレクトリ(/)以外のディレクトリで起動した場合は、環境変数 KUBECONFIGの値の修正が必要 デフォルトのKUBECONFIGの値は『/openshift.local.config/master/admin.kubeconfig』
  • 17. Copyright 2015 Japan OSS Promotion Forum 5.8.Private docker registry のデプロイ  OpenShiftのにデプロイされるユーザアプリケーション(をDockerコンテナ化したもの)の 格納先である、Private docker registry のデプロイを行う  Private docker registry のデプロイコマンド( oadm registry )を管理者権限で実行する必要があるが、sudo先 にPAHT環境変数等環境変数を引き継げない設定になっているため、コマンドをPath付きで呼び出す必要が ある  配備作業実施後、配備結果の確認コマンドを投入し、結果出力中の『Endpoints』の値が、 <none>から何らかのIPアドレスに変われば配備完了  配備完了までに、2分程度時間がかかる  オペレーション 16 $ sudo `which oadm` registry --create --credentials=/openshift.local.config/master/openshift- registry.kubeconfig --config=/openshift.local.config/master/admin.kubeconfig $ oc describe service docker-registry --config=openshift.local.config/master/admin.kubeconfig $ oc describe service docker-registry --config=openshift.local.config/master/admin.kubeconfig Name: docker-registry Namespace: default Labels: docker-registry=default Selector: docker-registry=default Type: ClusterIP IP: 172.30.217.24 Port: 5000-tcp 5000/TCP Endpoints: 172.17.0.2:5000 ← <none> と表示されていないこと Session Affinity: None No events.
  • 18. Copyright 2015 Japan OSS Promotion Forum 6.動かしてみる 17
  • 19. Copyright 2015 Japan OSS Promotion Forum 6.1.ログイン  5.で構築したOpenShift v3 にログインする  現在環境変数KUBECONFIGに設定されている値(ファイル)はadmin用のものなの で、unsetする  ゲストOS(vagrantで起動したVM)内でログインコマンド(oc login)を実行する  対話式に、ログインするユーザネームとパスワードを尋ねられるので応答する  この例では、ユーザネーム: test-admin、パスワード: test-admin と入力  オペレーション 18 $ unset $KUBECONFIG $ oc login 【注意!】 Vagrantによるオールインワン構成OpenShiftの場合、パスワードはなにを指定しても認証される ただし、パスワードに空パスワードを指定すると、認証が失敗する
  • 20. Copyright 2015 Japan OSS Promotion Forum 6.2.プロジェクトの作成(1/2)  ユーザは複数のプロジェクトを所有できる  プロジェクト作成コマンド(oc new-project )実行後、WebGUIにプロジェクトを所 有するユーザでログインすると、プロジェクト作成時に指定したdisplay-name のプロジェクトが作成されていることを確認できる  オペレーション(例) 19 $ oc new-project test-admin-01 --display-name="test-admin-first-project" --description="This is test-admin's first project"
  • 21. Copyright 2015 Japan OSS Promotion Forum 6.2.プロジェクトの作成(2/2) 【WebGUI】 20
  • 22. Copyright 2015 Japan OSS Promotion Forum 6.3.アプリケーションのデプロイ(1/2)  ユーザは自分の所有する任意のプロジェクトに、複数のアプリケーションをデプ ロイできる  アプリケーションのデプロイコマンド( oc new-app )に、デプロイするアプリケー ション、アプリケーションを動作するために使用する、言語、エンジン等の存在 位置等を記述した json ファイルを指定することで、アプリケーションをデプロイ する  オペレーション(例) 21 $ oc new-app /data/src/github.com/openshift/origin/examples/sample- app/application-template-stibuild.json
  • 23. Copyright 2015 Japan OSS Promotion Forum 6.3.アプリケーションのデプロイ(2/2) 【WebGUI】 【デプロイ前】 【デプロイ後】 22
  • 24. Copyright 2015 Japan OSS Promotion Forum 6.4.アプリケーションへのアクセス(1/2)  アプリケーションはゲストVM内で動いている  WebGUIで、アプリケーションに割り振られたIPおよびPortを確認し、vagrantの ポートフォワード機能等で、ホストOS側からアクセスできるように設定し、アクセ スする 1. WebGUIでアプリケーションに振り当てられたIP、ポートを確認 2. vagrantのポートフォワード機能等でホストOS側からアクセスできるように設定 3. ホストOS上のWebブラウザでアクセス 23 この場合、IP= 172.30.182.252、Port=5432
  • 25. Copyright 2015 Japan OSS Promotion Forum 6.4.アプリケーションへのアクセス(2/2) 24 この場合、IP= 172.30.182.252、Port=5432 【端末を開きoriginディレクトリ下で実施】 vagrant ssh -- -L 9999:172.30.182.252:5432 ※ ホストOS: localhost:9999 ゲストOS: 172.30.182.252:5432 間をポートフォワード
  • 26. Copyright 2015 Japan OSS Promotion Forum 6.5.他のユーザでのログイン(1/2)  6.1.ログインと同様の方法で、他のユーザでのログインが可能  他のユーザでログイン(WebGUI含む)した場合、別のユーザが作成したプロ ジェクトやアプリケーションは表示されない  5.で構築したOpenShift v3 にログインする  ゲストOS(vagrantで起動したVM)内でログインコマンド(oc login)を実行する  対話式に、ログインするユーザネームとパスワードを尋ねられるので応答する  この例では、ユーザネーム: yosihiko、パスワード: yosihiko と入力  ログイン後、display-name=“yosihiko-first-project” であるプロジェクトも作成する  オペレーション(例) 25 $ oc login $ oc new-project yosihiko-01 --display-name="yosihiko-first-project" -- description="This is yosihiko's first project"
  • 27. Copyright 2015 Japan OSS Promotion Forum 6.5.他のユーザでのログイン(2/2) 26 ユーザ: yosihiko でログインした場合 • ユーザ: yosihiko としてログインに成功し display-name=“yosihiko-first-project” であるプロジェクトも確認できる • ただしユーザ: test-admin の所持するプ ロジェクトやデプロイ済みアプリケーショ ンの情報は見えない
  • 28. Copyright 2015 Japan OSS Promotion Forum 6.6.GUIを使ったプロジェクトの作成(1/3)  プロジェクトは、WebGUIを使用しても作成可能  プロジェクトを使いたいユーザで、WebGUIにログインする  ページ右上の『New Project』ボタンを押下する 27 ① ユーザ: test-admin で ログイン ② 『New Project』ボタンを押下
  • 29. Copyright 2015 Japan OSS Promotion Forum 6.6.GUIを使ったプロジェクトの作成(2/3)  『New Project』ページでプロジェクトのName等を入力する  入力後画面左下の『Create』ボタンを押下する 28 ① プロジェクトのName等を入力 ② 『Create』ボタンを押下
  • 30. Copyright 2015 Japan OSS Promotion Forum 6.6.GUIを使ったプロジェクトの作成(3/3)  既に作成済みのプロジェクトに加えて、まだアプリケーションがデプロイされて いない新規プロジェクトページが表示される  複数プロジェクトを所有している場合、プロジェクトの切り替えは左上部の 『Projecs』タブを使って行う 29
  • 31. Copyright 2015 Japan OSS Promotion Forum 6.7.GUIを使ったアプリケーションのデプロイ(1/4)  GUIを使ってアプリケーションをデプロイする前に、アプリケーションをデプロイす るプロジェクトに対し、ImageStream(アプリケーションを動作させるための言語 やエンジン、DB等をテンプレート化したもの)を登録しておく必要がある 1. CUIでプロジェクトを所有するユーザとしてOpenShiftにログインする 2. ImageStream の登録コマンド(osc create –f < ImageStream を定義した json ファイル名> -n <登録先 Project 名>)を実行する ※ Githubから入手したOpenShiftのソース類中に『< ImageStream を定義した json ファイル』 の例(/data/src/github.com/openshift/origin/examples/image-streams/image-streams- centos7.json)がある ※ 上記ファイルを利用して登録を行った場合以下のImageStreamがプロジェクトに登録される • ruby、nodejs、perl、php、python、wildfly、mysql、postgresql、mongodb、jenkins  上記を実行の後、WebGUIからアプリケーションをデプロイする  オペレーション(例) 30 $ oc login $ osc create -f /data/src/github.com/openshift/origin/examples/image- streams/image-streams-centos7.json -n test-admin-02
  • 32. Copyright 2015 Japan OSS Promotion Forum 6.7.GUIを使ったアプリケーションのデプロイ(2/4)  プロジェクトを使いたいユーザで、WebGUIにログインし、アプリケーションを登録 したいプロジェクトを選択する  ページ中の『Get Started』ボタンを押下する 31 ① ユーザ: test-admin で ログイン ② アプリケーションをデプロイしたい プロジェクトを選択 ③ 『Get Started』ボタンを押下
  • 33. Copyright 2015 Japan OSS Promotion Forum 6.7.GUIを使ったアプリケーションのデプロイ(3/4)  デプロイしたいアプリケーションを登録したGitリポジトリの情報を入力する 32 デプロイしたいアプリケーションを登録したGitリポジトリの 情報を入力
  • 34. Copyright 2015 Japan OSS Promotion Forum 6.7.GUIを使ったアプリケーションのデプロイ(4/4)  アプリケーションを動作させるために使用するImageStream(builder image)を 押下する  ImageStream(builder image)の選択が終わるとアプリケーションのデプロイ 作業が開始される 32 使用するImageStream(builder image)を押下する
  • 35. Copyright 2015 Japan OSS Promotion Forum 7.使って気になったこと  jsonファイルの書き方がよくわからない!  プロジェクトの作成、アプリケーションのデプロイ、使えるリソースの制約実現 のため等、多々 json ファイルを記述する必要があるが、記述すべき項目や 内容、書式がよくわからない  まずは公式ドキュメント (https://docs.openshift.org/latest/welcome/index.html)を読み込むべき?  Vagrantが起動したVMでSELinux、firewalldが無効化されている  OpenShiftは、マルチテナント機能(通信や各ユーザ間のアプリケーションへ のアクセス制限等)の実現にSELinuxやfirewalldを活用するといってたは ず、、、なのに?  開発が進むごとにコマンド名が変わって言っているような、、、  ちょっと前まで、 Private docker registry のデプロイって、OpenShiftコマンド を使って行うものじゃなかったでしたっけ? 33
  • 36. Copyright 2014-2015 Japan OSS Promotion Forum 35