Translate

2013年7月5日金曜日

Puppetを使ったOpenShift Origin のインストールについてのドキュメントをを翻訳してみる

OpenShift Originを企業内で使用するには
結局ブローカとノードを分離したインストールを実施しておかないといけなくなる。
なのでその作業に必要そうなドキュメントを翻訳してみた。
原本は、以下のリンクである。

(OpenShift Origin GitHub)Installing OpenShift Origin using Puppet



翻訳文章を参考にされる方は、
at your own riskでお願いします。


----

Puppetを使ったOpenShift Origin のインストール

このガイドは、基本のパペットスクリプトを設定してRPMからOpenShiftをインストールするためのウォークスルーを提供する。


OpenShift Origin RPMは以下のリポジトリ上で利用可能である:

・自分でソースからビルドしたOpenShift Origin RPMの入ったローカルリポジトリ
・Openshift Origin nightly ミラーリポジトリ - Fedora 19 リポジトリ
 - RHEL 6.4 リポジトリ
注意:OpenShift Origin ブローカ/ノードを適切に設定するために、DNS登録されたホスト名および静的IPアドレスが設定されたホストが必要となる。

Puppetのインストール


注意:RHELシステムへpuppetをインストールするためにEPELリポジトリをインクルードする必要がある。

ここにある最新のepel-releaseパッケージをインストールする。

 yum install -y --nogpgcheck ${url_of_the_latest_epel-release_rpm}

以下のコマンドを実行してpuppetとfacterをインストールする。

 yum install -y puppet facter tar

openshift puppetモジュールをインストールする:

 puppet module install openshift/openshift_origin



BIND TSIG キーの生成


BINDパッケージをインストールする。


 yum install -y bind

TSIG キーを生成する。

 #クラウドドメインとして example.com を使う場合
 /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n USER -r /dev/urandom -K /var/named example.com
 cat /var/named/Kexample.com.*.key  | awk '{print $8}'

TSIGキーは、CNk+wjszKi9da9nL/1gkMY7H+GuUng== といった様な文字列である。次のステップで使用する。


/etc/hosts へのエントリの追加(オプション)


もしあなたのマシンのホスト名からパブリックIPアドレスを(DNSで)引くことができないのであれば、以下の作業を行うこと:

1. /etc/hosts へ、ホスト名からパブリックIPアドレスへのマッピングエントリを追加する。例:

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 10.211.55.3 thishost.thisdomain.com

2. /etc/hostnameを更新する。例:

 echo "thishost.thisdomain.com" > /etc/hostname
 hostname thishost.thisdomain.com


オールインワンホストの設定

この設定では、ホスト上で、ブローカ、ノード、アクティブMQ、mongodb、バインドサービスが動作する。

以下の内容を含むファイルconfigure_origin.ppを作成する:

 class { 'openshift_origin' :
  #The DNS resolvable hostname of this host
  node_fqdn                  => "thishost.thisdomain.com",
 
  #The domain under which application should be created. Eg: -.example.com
  cloud_domain               => 'example.com',
 
  #Upstream DNS server.
  dns_servers                => ['8.8.8.8'],
 
  enable_network_services    => true,
  configure_firewall         => true,
  configure_ntp              => true,
 
  #Configure the required services
  configure_activemq         => true,
  configure_mongodb          => true,
  configure_named            => true,
  configure_avahi            => false,
  configure_broker           => true,
  configure_node             => true,
 
  #Enable development mode for more verbose logs
  development_mode           => true,
 
  #Update the nameserver on this host to point at Bind server
  update_network_dns_servers => true,
 
  #Use the nsupdate broker plugin to register application
  broker_dns_plugin          => 'nsupdate',
 
  #If installing from a local build, specify the path for Origin RPMs
  #install_repo               => 'file:///root/origin-rpms',
 
  #If using BIND, let the broker know what TSIG key to use
  named_tsig_priv_key         => ''
 }

puppetスクリプトを実行する:

 puppet apply --verbose configure_origin.pp


ブローカ/ノードを分離したホストで動かす設定

ブローカホスト


この設定では、ホスト上で、ブローカ、アクティブMQ、mongodb、バインドサービスが動作する。

以下の内容を含むファイルconfigure_origin.ppを作成する:

 class { 'openshift_origin' :
  #The DNS resolvable hostname of this host
  node_fqdn                  => "thishost.thisdomain.com",
 
  #The domain under which application should be created. Eg: -.example.com
  cloud_domain               => 'example.com',
 
  #Set to `'nightlies'` to pull from latest nightly build
  #Or pass path of your locally built source `'file:///root/origin-rpms'`
  install_repo               => 'nightlies',
 
  #Upstream DNS server.
  dns_servers                => ['8.8.8.8'],
 
  enable_network_services    => true,
  configure_firewall         => true,
  configure_ntp              => true,
 
  #Configure the required services
  configure_activemq         => true,
  configure_mongodb          => true,
  configure_named            => true,
  configure_avahi            => false,
  configure_broker           => true,
 
  #Don't configure the node
  configure_node             => false,
 
  #Enable development mode for more verbose logs
  development_mode           => true,
 
  #Update the nameserver on this host to point at Bind server
  update_network_dns_servers => true,
 
  #Use the nsupdate broker plugin to register application
  broker_dns_plugin          => 'nsupdate',
 
  #If installing from a local build, specify the path for Origin RPMs
  #install_repo               => 'file:///root/origin-rpms',
 
  #If using BIND, let the broker know what TSIG key to use
  named_tsig_priv_key         => ''
 }

puppetスクリプトを実行する:

 puppet apply --verbose configure_origin.pp

ノードホスト

この設定では、ホスト上でノードのみが動作する。

以下の内容を含むファイルconfigure_origin.ppを作成する:

 class { 'openshift_origin' :
  #The DNS resolvable hostname of this host
  node_fqdn                  => "thishost.thisdomain.com",
 
  #The domain under which application should be created. Eg: -.example.com
  cloud_domain               => 'example.com',
 
  #Set to `'nightlies'` to pull from latest nightly build
  #Or pass path of your locally built source `'file:///root/origin-rpms'`
  install_repo               => 'nightlies',
 
  #Upstream DNS server.
  dns_servers                => ['8.8.8.8'],
 
  enable_network_services    => true,
  configure_firewall         => true,
  configure_ntp              => true,
 
  #Don't configure the broker services
  configure_activemq         => false,
  configure_mongodb          => false,
  configure_named            => false,
  configure_avahi            => false,
  configure_broker           => false,
 
  #Configure the node
  configure_node             => true,
  named_ipaddress            => ,
  mongodb_fqdn               => ,
  mq_fqdn                    => ,
  broker_fqdn                => ,
 
  #Enable development mode for more verbose logs
  development_mode           => true,
 
  #Update the nameserver on this host to point at Bind server
  update_network_dns_servers => true,
 
  #Use the nsupdate broker plugin to register application
  broker_dns_plugin          => 'nsupdate',
 
  #If installing from a local build, specify the path for Origin RPMs
  #install_repo               => 'file:///root/origin-rpms',
 }

puppetスクリプトを実行する:

 puppet apply --verbose configure_origin.pp

ソースコードからOpenShift Origin RPMSをビルドする方法を翻訳してみる

OpenShift Origin(オープンソース版OpenShift)のRPMを
ローカル上に構築する方法を翻訳してみた。

翻訳内容について保障はできませんので、
at your own riskで参照して下さい。

原本は、以下のリンクです。
(OpenShift GitHub) Building OpenShift Origin RPMS from source

----

ソースコードからOpenShift Origin RPMSをビルドする方法


このガイドは、GitHubからOpenShift Origin ソースコードを入手し、Origin RPMSのローカルコピーをビルドするウォークスルーを提供する。

OpenShift Origin は、パッケージをビルドするためには、Fedora19もしくは RHEL 6.4 コンパチブルシステムが必要となる。ビルドを処理するために最小インストレーションで開始することを推奨する。


OpenShift Origin リポジトリ

OpenShift Origin ソースコードは、5つのリポジトリで構成されている:

  • origin-dev-tools:このリポジトリは、ローカルもしくはEC2へOpenShft Originインストーレーションのビルドやテストに必要なすべてのビルドツールが含まれている。
  • origin-server:ブローカ、ノードおよびDNSのためのプラグイン群、通信及び認証機能のソースコードを含むメインリポジトリ。OpenShiftインストレーションで使用するいくつかのコアカートリッジも含んでいる。
  • origin-community-cartridges:このリポジトリは、Fedora 19インストレーション中に使用する追加カートリッジ群を含んでいる。
  • rhc:このリポジトリはOpenShiftベースのPaaSへアクセスするためのコマンドラインツールを含んでいる。
  • puppet-openshift_origin:このリポジトリは、OpenShift Originを設定するためのpuppetスクリプトを含んでいる。




ビルドの必要条件


1. 基本の依存パッケージ群をインストールする(root)

 yum install -y rubygem-thor git tito yum-plugin-priorities wget vim-enhanced \
  ruby-devel rubygems-devel rubygem-aws-sdk rubygem-parseconfig rubygem-yard rubygem-redcarpet \
  createrepo

2. openshift-dev-toolsリポジトリのクローンを作成する

 git clone git://github.com/openshift/origin-dev-tools.git

3. OpenShift Originソースコードのクローンを作成する

 # origin-dev-tools の checkout から
 export SKIP_SETUP=1
 ./build/devenv clone_addtl_repos master

4. 必須パッケージをインストールする(root)

 # origin-dev-tools の checkout から
 # このステップはたくさんのRPMをインストールするため時間がかかる
 ./build/devenv install_required_packages

5. RPMをビルドする(root)

 # origin-dev-tools の checkout から
 ./build/devenv local-build --skip-install

RPMがorigin-rpmsディレクトリ上で利用可能となる

6. RPMメタデータを作成すると、ディレクトリはYUMリポジトリとしてアクセス可能となる

 # origin-rpms ディレクトリから
 createrepo .

2013年7月2日火曜日

パブリックPaaS版Cloud Foundryにログインしてみる


[InfoQ]: Cloud Foundryが新バージョンを発表し、旧を廃止。


上記記事を読むと、2013年6月30日で古いV1が廃止され、
かわってV2サービスにかわるらしい。
旧版V1で使っていた人は期限内に移行しないと
アプリが消されるらしい。
しかも移行ツールとかの提供もないらしい..

しかも"無料"ベータが終了するらしい...


そういえばMicro Cloud Foundryは試したことがあるが
パブリックPaaS版は試したことなかったので
とりあえずアカウントを取ってログインしてみた。

まずApp Spaceタブの画面(初期画面)。






ここでアプリケーションを追加して
開発者を割り当てるらしい。


Org xxxx-org has 60 days left in its free trial, which includes 2GB of app memory and 10 of the free Marketplace services. Paid plans coming soon.
組織 xxxx-org は60日間フリートライアル期間を保有しています。トライアルには、2GB アプリケーションメモリ、10のフリーマーケットプレイスサービスを含んでいます。支払いプランについてはもうすぐ完成予定です。

というのがてっぺんにでていて、
使う気を削いでくれる..


次にUsersタブ。



ロールは、
デベロップメントロール、
プロダクションロール、
ステージングロールの3種類で
組織(org)単位、App Space単位に割り当てられそうだ。

ユーザはメールアドレスを持っていることが必須。




Org Settings タブは
組織設定変更やドメインの割り当てなどを行うようだ。




で Marketplace。
もう「金、とりまっせ~」って感じの名前が嫌!




アプリケーションに加えることの出来るサービス。
今のところDB、NoSQLとMQ、JMeterくらい。

一体いくらぐらいなのか..
どきどきしながら1つづつPlan Optionを開いてみたが
今のところ無料版の範囲だけしかのっていなかった。

rediscloud

Powered by Grantia Data
開発者向けエンタープライズクラスredis(インメモリデータベース)
  • 20MB無料版
  • 1データベース
  • 10接続まで無料

mongolab

完全に管理されたMongoDB as a Service
  • SANDBOXバージョン無料
  •  ストレージ496MB
  •  MongoLabのS3バケットかユーザ指定領域へのバックアップ(即時、計画)
  •  24/365モニタリング
  •  電子メールサポート(support@mongolab.com)
  •  MongoDB/データベース エキスパートアドバイス
  •  標準ドライバ及びREST APIサポート
  •  Webベースの管理ツール

cleardb

SUCCESSBRICKS, INC DBA CLEARDB
アプリ用高アベイラビリティMySQL
  • SPARK
  •  価格:無料!
  •  DBサイズ:20MBまで
  •  接続4
  •  I/Oパフォーマンス:Low
  •  日次バックアップ
  •  完全POC/初期開発向け

blazemeter

JMeter負荷テストクラウド
  • FREE-TRIAL版
  •  ずっと無料
  •  50接続ユーザまで
  •  10テスト/月まで

treasuredata

Hadoopベースのクラウドデータウェアハウス
  • NANO版(無料)
  •  100MBの圧縮データストレージ
  •  60クエリ/月
  •  保障コア0、最大コア1

cloudamqp

84CODES AB
管理されたクラウドHA RabbitMQサービス
  • LEMUR(無料)版

elephantsql

84CODES AB
PostgreSQL as a Service
  • TURTLE(無料)版


App Engineを使っているうちに染み付いてしまった
なんとかして無料でやりくりしてやろうという
姑息な根性が成長してしまい
どうしても有料という単語→あきらめ
という性根がこれ以上のアプリ作成にブレーキをかける。
とりあえずまだ60日無料で使えるんだけど..


き、今日はここまでにしといてやろう..

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...