fedora 21 server をgraphical modeに変更する
作業手順
1. 利用可能なGUI環境を確認する
yum grouplist
グラフィカル環境のインストール
yum groupinstall "Fedora Workstation" --skip-broken
システム設定の変更
systemctl set-default graphical.target
※変更まえは systemctl get-default で確認すると multi-user.target でした。
参考
詳細はこちらを見てください。
Graphical Desktop Environments on Fedora 21 Server | Fedora Server Working Group
OpenShift v3 beta1rc1 を試す
OpenShift v3 のβ版が github で公開されました。そこで、プリビリドされたバイナリとサンプルアプリケーションのデプロイの手順をご紹介します。
※書慣れないので、コマンドを色付けするとかうまく出来ていません。。。
■利用するソフトウェアなど
- Virtualbox
- Vagrant
- OpenShift v3 プリビルドバイナリReleases · openshift/origin · GitHub
■作業の流れ
- OpenShiftをデプロイする仮想環境の準備
- OpenShift v3 の環境構築
- サンプルアプリケーションのデプロイ
■手順
1. OpenShiftをデプロイする仮想環境の準備
当初はOpenShift v3 のDocker Imageを利用しようと試みていましたが、いくつかうまくいかないことがあったのでVirtualBoxを使って仮想環境を作成することしました。OpenShiftOriginのプロジェクトはVagrantを使って簡単に環境構築ができるよになっています。
VirtualBoxのインストール
ホストOSにはRHEL7を使っているのでVirtualBox 4.3 on CentOS 7 / RHEL 7を参考してインストールします。
Vagrantのインストール
Download Vagrant - VagrantからVagrantをダウンロードしてインストールします。
仮想OSの設定
https://github.com/openshift/origin/blob/master/CONTRIBUTING.adoc#develop-on-virtual-machine-using-vagrant に従い仮想OSを設定します。
この作業は、ホストOSで実行します。
- github からopenshift-origin を取得
$ git clone git://github.com/openshift/origin
- 以降、openshift-originのトップディレクトリを<ORIGIN_HOME>とします。
-
仮想OSの設定
cd <ORIGIN_HOME>
$ vagrant up
- 仮想OSにログイン
$ vagrant ssh
仮想OSにOpenShiftの環境構築
- ログインの確認
$ ls
bin sync
$ id
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant),991(docker) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- 設定の確認
docker の起動オプションに"--insecure-registry 172.30.17.0/24" が設定されてることを確認します。
---- $ cat /etc/sysconfig/docker # /etc/sysconfig/docker # Modify these options if you want to change the way the docker daemon runs OPTIONS='--insecure-registry=172.30.17.0/24 --selinux-enabled -H fd://' DOCKER_CERT_PATH=/etc/docker ---
2. OpenShift v3 の環境構築
- プリビリドバイナリとソースコードの入手
https://github.com/openshift/origin/releasesからバイナリとソースコードを取得します
https://github.com/openshift/origin/blob/master/examples/sample-app/README.mdに従って、サンプルアプリケーションをデプロイします。[vagrant@openshiftdev ~]$ tar ztvf openshift-origin-v0.2.2-a58b1fb-linux-amd64.tar.gz drwxr-xr-x root/root 0 2015-02-04 03:48 ./ -rwxr-xr-x root/root 45165144 2015-02-04 03:48 ./osc -rwxr-xr-x root/root 45165144 2015-02-04 03:47 ./openshift [vagrant@openshiftdev ~]$ tar ztvf v0.2.2.tar.gz drwxrwxr-x root/root 0 2015-02-04 00:43 origin-0.2.2/ -rw-rw-r-- root/root 204 2015-02-04 00:43 origin-0.2.2/.gitignore -rw-rw-r-- root/root 597 2015-02-04 00:43 origin-0.2.2/.travis.yml -rw-rw-r-- root/root 8096 2015-02-04 00:43 origin-0.2.2/CONTRIBUTING.adoc -rw-rw-r-- root/root 698 2015-02-04 00:43 origin-0.2.2/Dockerfile <まだまだたくさんファイルが含まれています>
- Openshiftの起動
$ sudo ./openshift start &> logs/openshift.log &
コマンドを実行したディレクトリに openshift.local.certificates openshift.local.etcd openshift.local.volumes という3つのディレクトリができます。
- 環境変数の設定
OpenShiftの起動で作成されたファイルのオーナは root になっているので、権限を追加します。
$ export KUBECONFIG=`pwd`/openshift.local.certificates/admin/.kubeconfig
$ export CURL_CA_BUNDLE=`pwd`/openshift.local.certificates/admin/root.crt
$ export CERT_DIR=`pwd`/openshift.local.certificates/master
※CERT_DIR は次の install-registry.sh を実行するために必要な環境変数です。
$ sudo chmod +r `pwd`/openshift.local.certificates/admin/key.key
$ sudo chmod +r `pwd`/openshift.local.certificates/master/key.key
- <ローカルの Docker Registry を作成
$ cd <ORIGIN_HOME>
$ ./hack/install-registry.sh
[INFO] Submitting docker-registry template file for processing
docker-registry
docker-registry - レジストリのPodができていることを確認します
$ osc get pods
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS
e6997a19-ad14-11e4-8d65-080027c5bfa9 172.17.0.13 registry-container openshift/docker-registry openshiftdev.local/ deployment=docker-registry-1,deploymentconfig=docker-registry,name=registrypod,template=docker-registry-template Running
$ osc get services
NAME LABELS SELECTOR IP PORT
docker-registry template=docker-registry-template name=registrypod 172.30.17.5 5001
kubernetes component=apiserver,provider=kubernetes <none> 172.30.17.243 443
kubernetes-ro component=apiserver,provider=kubernetes <none> 172.30.17.95 80
- レジストリへのアクセスを確認
$ curl `osc get services docker-registry -o template --template="{{ .portalIP}}:{{ .port }}"`
"docker-registry server (dev) (v0.9.0)"
※ openshift-origin の docker image ではここが出来ませんでした。。。
- プロジェクトの作成
OpenShift v2 ではドメインと呼んでいた概念がプロジェクトという名称に変わりました。
$ cd <ORIGIN_HOME>examples/sample-app
$ osc create -f project.json
test
作業する namespace を、今作成したプロジェクトのnamespaceである"test"に設定します。
$ osc namespace test
Set current namespace to test
F0205 09:02:49.329490 27652 namespace.go:57] open : no such file or directory
※エラーの原因究明は後日に、、、。name は設定されているけど、namespaceが正しくされておらず、default になっている模様。
- 管理コンソールの確認
ここでホストOSのブラウザからhttps://localhost:8444へアクセスすると、OpenShiftOriginの管理コンソールが現れます。ジャジャーン♪
※ VirtualBoxのNATの設定でポートフォワーディングが設定されているので localhost で接続可能です。
3. サンプルアプリケーションのデプロイ
githubで公開されている ruby のアプリケーションをデプロイし、Source To Build を実行します。
- アプリケーションの作成
$ cd <ORIGIN_HOME>/examples/sample-app
$ osc process -f application-template-stibuild.json | osc create -f -
frontend
origin-ruby-sample
database と frontend というサービスができていることを確認します。
$ osc get services
NAME LABELS SELECTOR IP PORT
database template=ruby-helloworld-sample name=database 172.30.17.24 5434
frontend template=ruby-helloworld-sample name=frontend 172.30.17.127 5432
ruby-helloworld-sample という pod ができていることを確認します。
$ osc get pods
POD IP CONTAINER(S) IMAGE(S) HOST LABELS STATUS
646c6c8f-ad18-11e4-8d65-080027c5bfa9 172.17.0.15 ruby-helloworld-database mysql openshiftdev.local/ deployment=database-1,deploymentconfig=database,name=database,template=ruby-helloworld-sample Running
- Source To Image ビルドの実行
本当ならば、webhook の指定をして、ソースコードの変更をトリガにしたいところですが、ここでは、openshift master に変更を通知しビルドを実施します。
$ curl -X POST https://localhost:8443/osapi/v1beta1/buildConfigHooks/ruby-sample-build/secret101/generic?namespace=default
README(参考にしたサイト[2]) のstep 14の通りに実行すると、”buildConfig "ruby-sample-build" not found"となり buildConfig が見つかりません。default ネームスペースに作成されているようなので、namespace=default とします。
$ osc get builds
NAME TYPE STATUS POD
f765cd24-ad18-11e4-8d65-080027c5bfa9 STI Running build-f765cd24-ad18-11e4-8d65-080027c5bfa9
$ osc get builds --watch
NAME TYPE STATUS POD
f765cd24-ad18-11e4-8d65-080027c5bfa9 STI Complete build-f765cd24-ad18-11e4-8d65-080027c5bfa9
ビルドのステータスが"Complete"となれが完了です。"Failed"となった場合は、
$ osc build-logs <build name>
※<build name> は、osc get builds で出力されるNAMEを指定で、ビルドログを確認してください。
- アプリケーションの確認
フロントエンドサービスのアドレスにアクセスし、アプリケーションがデプロイされていることを確認します。$ osc get services |grep ruby-helloworld-sample
database template=ruby-helloworld-sample name=database 172.30.17.24 5434
frontend template=ruby-helloworld-sample name=frontend 172.30.17.127 5432
今回の場合は http://172.30.17.127:5432 です。
参考にしたサイト
[1]https://github.com/openshift/origin/blob/master/CONTRIBUTING.adoc
[2]https://github.com/openshift/origin/blob/master/examples/sample-app/README.md
メモ
STI Build ソースコードの変更をトリガーとする場合
ruby-hello-world をFORK
右側のメニューから Settings を選択
左側のメニューから Webhooks & Services を選択
真ん中のWebhoooksの「Add webhook」を選択
JBoss Fuse Fabric の使い方-お試し編
コンテナ作成と確認
- Fabricコンテナ作成
JBossFuse:karaf@root> fabric:create --new-user AdminUser --new-user-password AdminPass --zookeeper-password ZooPass --wait-for-provisioning
- rootのサブコンテナ作成
JBossFuse:karaf@root> fabric:container-create-child root child
- コンテナリスト確認
JBossFuse:karaf@root> shell:watch container-list
- サンプルのデプロイ
JBossFuse:karaf@root> fabric:container-change-profile child example-camel-twitter
※Getting Start Guideでは example-camel-hello となっているが、jboss-fuse-6.1.0.redhat-379/fabric/import/fabric/configs/versions/1.0/profiles にないので twitterに変更 - コンテナリスト確認
JBossFuse:karaf@root> shell:watch container-list
Fabric Web App
参考
https://access.redhat.com/documentation/en-US/Red_Hat_JBoss_Fuse/6.1/html/Fabric_Guide/
OpenShift OnlineのDBの活用方法
OpenShift のDIYカートリッジとポートフォワーディングを活用して、OpenShift Online上のデータベースがあたかもローカルにインストールされているかのように利用することができます。
作業の流れ
- OpenShift Onlineへログイン
- DIYカートリッジを利用したアプリケーションを作成
- 2で作成したアプリケーションにデータベーすのカートリッジを追加
- ポートフォワーディングを開始
- クライアントアプリケーションで接続
実践
PostgreSQL9.2カートリッジを利用する mydb というアプリケーションを作成していきます。
DIYカートリッジを利用したアプリケーションの作成
$ rhc create-app mydb diy-0.1
データベースカートリッジの追加
ここでは、PostreSQLカートリッジを mydb アプリケーションへ追加します。
$ rhc cartridge add postgresql-9.2 -a mydb
Adding postgresql-9.2 to application 'mydb' ... done
postgresql-9.2 (PostgreSQL 9.2)
-------------------------------
Gears: Located with diy-0.1
Connection URL: postgresql://$OPENSHIFT_POSTGRESQL_DB_HOST:$OPENSHIFT_POSTGRESQL_DB_PORT
Database Name: mydb
Password: mqDgzBCpUbLX
Username: admin4cphbbk
カートリッジが追加されると、データベースのユーザとパスワード、DB名が表示されます。
ポートフォワーディングの有効化
$ rhc port-forward mydb
Checking available ports ... done
Forwarding ports ...
To connect to a service running on OpenShift, use the Local address
Service Local OpenShift
---------- -------------- ---- ----------------
postgresql 127.0.0.1:5432 => 127.2.112.2:5432
ruby 127.0.0.1:8080 => 127.2.112.1:8080
Press CTRL-C to terminate port forwarding
接続確認
DB接続のクライアントアプリケーションで接続を確認します。ここではSQuirrelSQLを使って接続してみます。
URL | jdbc:postgresql://localhost:5432/mydb |
---|---|
User Name | admin4cphbbk |
Password | mqDgzBCpUbLX |
ユーザ名とパスワードは、PostgreSQLカートリッジを追加した時に設定されたユーザとパスワードです。