こんにちは。@jedipunkz です。
前回 OpenStack Kilo のオールインワン構成を Chef-Zero を使ってデプロイする方法 を書きましたが、複数台構成についても調べたので結果をまとめていきます。
使うのは openstack/openstack-chef-repo です。下記の URL にあります。
https://github.com/openstack/openstack-chef-repo
この中に Vagrant を使ったファイルが存在しますが、実機でのデプロイには全く役に 立ちません。自分で Environment ファイルを作成する必要があります。今回は前提の 構成を作って、それに合わせた Environment ファイルを記します。ほぼスタンダード な構成にしましたので、自分の環境に合わせて修正するのも比較的簡単だと想います。 参考にしてください。
今回は knife-zero を使ってデプロイします。Chef サーバが必要なく、knife-zero を 使うホスト上のオンメモリで Chef サーバが稼働するので準備がほとんど必要ありません。
早速ですが、構成と準備・そしてデプロイ作業を記していきます。
前提の構成 +------------+ | GW Router | +--+------------+ | | | +--------------+--------------+---------------------------- public network | | eth0 | eth0 | +------------+ +------------+ +------------+ +------------+ | | Controller | | Network | | Compute | | Knife-Zero | | +------------+ +-------+----+ +------+-----+ +------------+ | | eth1 | eth1 | | eth1 | | eth1 +--+--------------+-------)------+------)-------+------------- api/management network | eth2 | eth2 +-------------+--------------------- guest network 特徴としては…
...
こんにちは。@jedipunkz です。
久々に openstack-chef-repo を覗いてみたら ‘openstack/openstack-chef-repo’ とし て公開されていました。今まで stackforge 側で管理されていましたが ‘openstack’ の方に移動したようです。
https://github.com/openstack/openstack-chef-repo
結構安定してきているのかな?と想い、ちらっと試したのですが案の定、簡単に動作さ せることが出来ました。
今回はこのレポジトリを使ってオールインワン構成の OpenStack Kilo を作る方法をま とめていきます。
前提の構成 このレポジトリは Vagrant で OpenStack を作るための環境一式が最初から用意されて いますが、Vagrant では本番環境を作ることは出来ないため、Ubuntu ホストを前提と した記述に差し替えて説明していきます。前提にする構成は下記のとおりです。
Uuntu Linux 14.04 x 1 台 ネットワークインターフェース x 3 つ eth0 : External ネットワーク用 eth1 : Internal (API, Manage) ネットワーク用 eth2 : Guest ネットワーク用 特徴としては上記なのですが、eth2 に関してはオールインワンなので必ずしも必要と いうわけではありません。複数台構成を考慮した設定になっています。
前提のIP アドレス この記事では下記の IP アドレスを前提にします。お手持ちの環境の IP アドレスが違 い場合はそれに合わせて後に示す json ファイルを変更してください。
10.0.1.10 (eth0) : external ネットワーク 10.0.2.10 (eth1) : api/management ネットワーク 10.0.3.10 (eth2) : Guest ネットワーク 事前の準備 事前に対象ホスト (OpenStack ホスト) に chef, berkshelf をインストールします。
...
こんにちは、@jedipunkz です。
久々にブログ更新になりましたが、ウォーミングアップで minio というオブジェクト ストレージを使ってみたメモを記事にしたいと想います。
minio は Minimal Object Storage の名の通り、最小限の小さなオブジェクトストレー ジになります。公式サイトは下記のとおりです。
http://minio.io/
Golang で記述されていて Apache License v2 の元に公開されています。
最近、資金調達の話も挙がっていたので、これから一般的になってくるのかもしれません。
早速ですが、minio を動かしてみます。
Minio を起動する 方法は mithub.com/minio/minio の README に書かれていますが、バイナリを持ってき て実行権限を与えるだけのシンプルな手順になります。
Linux でも Mac でも動作しますが、今回私は Mac 上で動作させました。
% wget https://dl.minio.io:9000/updates/2015/Jun/darwin-amd64/minio % chmod +x minio % ./minio mode memory limit 512MB Starting minio server on: http://127.0.0.1:9000 Starting minio server on: http://192.168.1.123:9000 起動すると Listening Port と共に EndPoint の URL が表示されます。
次に mc という minio client を使って動作確認します。
...
こんにちは。@jedipunkz です。
VyOS に VXLAN が実装されたと聞いて少し触ってみました。この情報を知ったきっかけ は @upaa さんの下記の資料です。
参考資料 : http://www.slideshare.net/upaa/vyos-users-meeting-2-vyosvxlan
VyOS は御存知の通り実体は Debian Gnu/Linux 系の OS でその上に OSS なミドル ウェアが搭載されていて CLI でミドルウェアのコンフィギュレーション等が行えるモ ノになっています。Linux で VXLAN といえば OVS を使ったモノがよく知られています が VyOS の VXLAN 機能は Linux Kernel の実装を使っているようです。
要件 トンネルを張るためのセグメントを用意 VyOS 1.1.1 (現在最新ステーブルバージョン) が必要 Ubuntu Server 14.04 LTS (同じく Linux VXLAN 搭載バージョン) 構成 特徴
マネージメント用セグメント 10.0.1.0/24 を用意 GRE と同じくトンネル終端が必要なのでそのためのセグメント 10.0.2.0/24 を用意 各 eth1 は IP reachable である必要があるので予め IP アドレスの設定と疎通を確認 VXLAN を喋れる Ubuntu 14.04 LTS x 1 台と VyOS 1.1.1 x 2 台で相互に疎通確認 +-------------+-------------+------------ Management 10.0.1.0/24 |10.0.0.254 |10.0.0.253 |10.0.0.1 |eth0 |eth0 |eth0 +----------+ +----------+ +----------+ | vyos01 | | vyos02 | | ubuntu | +-+--------+ +----------+ +----------+ | |eth1 | |eth1 | |eth1 | |10.0.2.254 | |10.0.2.253 | |10.0.2.1 | +-----------)-+-----------)-+---------- Tunneling 10.0.2.0/24 | | | +-------------+-------------+------------ VXLAN(eth1にlink) 10.0.1.0/24 10.0.1.254 10.0.1.253 10.0.1.1 設定を投入 vyos01 の設定を行う。VXLAN の設定に必要なものは…
...
こんにちは。@jedipunkz です。
自分は Ruby を普段使うのでいつも Fog というライブラリを使って OpenStack, AWS を操作していました。Fog を使うとクラウドの操作が Ruby のネイティブコードで行え るのでシステムコマンド打つよりミス無く済みます。
Fog より後発で Aviator というライブラリが登場してきたので少し使ってみたのです がまだ未完成なところがあるものの便利な点もあって今後に期待だったので紹介します。
認証情報を yaml ファイルに記す 接続に必要な認証情報を yaml ファイルで記述します。名前を ‘aviator.yml’ として 保存。この時に下記のように環境毎に認証情報を別けて書くことができます。こうする ことでコードの中で開発用・サービス用等と使い分けられます。
production: provider: openstack auth_service: name: identity host_uri: <Auth URL> request: create_token validator: list_tenants auth_credentials: username: <User Name> password: <Password> tenant_name: <Tenant Name> development: provider: openstack auth_service: name: identity host_uri: <Auth URL> request: create_token validator: list_tenants auth_credentials: username: <User Name> password: <Password> tenant_name: <Tenant Name> シンタックス確認 +++
次に aviator のシンタックスを確認します。Fog に無い機能で、コマンドラインでシ ンタックスを確認できてしかも指定可能はパラメータと必須なパラメータと共にサンプ ルコードまで提供してくれます。公式サイトに’サーバ作成’のメソッドが掲載されてい るので、ここでは仮想ディスクを作るシンタックスを確認してみます。
% gem install aviator % aviator describe openstack volume # <-- 利用可能な機能を確認 Available requests for openstack volume_service: v1 public list_volume_types v1 public list_volumes v1 public delete_volume v1 public create_volume v1 public get_volume v1 public update_volume v1 public root % aviator describe openstack volume v1 public create_volume # <-- シンタックスを確認 :Request => create_volume Parameters: +---------------------+-----------+ | NAME | REQUIRED? | +---------------------+-----------+ | availability_zone | N | | display_description | Y | | display_name | Y | | metadata | N | | size | Y | | snapshot_id | N | | volume_type | N | +---------------------+-----------+ Sample Code: session.volume_service.request(:create_volume) do |params| params.volume_type = value params.availability_zone = value params.snapshot_id = value params.metadata = value params.display_name = value params.display_description = value params.size = value end このように create_volume というメソッドが用意されていて、指定出来るパラメータ・ 必須なパラメータが確認できます。必須なモノには “Y” が REQUIRED に付いています。 またサンプルコードが出力されるので、めちゃ便利です。
...
こんにちは。@jedipunkz です。
OpenStack Juno がリリースされましたが、今日は Icehouse ネタです。
icehouse 以降、自分の中で OpenStack を自動で作る仕組みが無くなりつつあり、気軽 に OpenStack を作って色々試したい!ッていう時に手段が無く困っていました。例え ば仕事でちょっと OpenStack 弄りたい!って時に DevStack, RDO しかなく。DevStack は御存知の通り動かない可能性が結構あるし RDO は Ubuntu/Debian Gnu Linux ベース じゃないし。
ってことで、以前にも紹介した stackforge 管理の openstack-chef-repo と Chef-Zero を使って OpenStack Icehouse (Neutron) のオールインワン構成を作る方法 を書きます。ちなみに最近 Chef-Solo が Chef-Zero に置き換わりつつあるらしいです。 Chef-Zero はオンメモリで Chef サーバを起動する仕組みです。Chef-Solo と違って Chef サーバを扱う時と何も変更無く操作が出来るのでとても楽です。また、Chef サーバを 別途構、構築・管理しなくて良いので、気軽に OpenStack が作れます。
ちなみに stackforge/openstack-chef-repo の README.md に Chef-Zero での構築方法 が書いてありますが、沢山の問題があります。
nova-network 構成 API の Endpoint が全て localhost に向いてしまうため外部から操作不可能 各コンポーネントの bind_address が localhost を向いてしまう berkshelf がそのままでは入らない よって、今回はこれらの問題を解決しつつ “オールインワンな Neutron 構成の Icehouse OpenStack を作る方法” を書いていきます。
...
こんにちは。@jedipunkz です。
昨晩 Midokura さんが Midonet を OSS 化したとニュースになりました。公式サイトは 下記の URL になっています。Midonet は OpenStack Neutron のプラグインとして動作 するソフトウェアです。
http://www.midonet.org
下記のGithub 上でソースを公開しています。
https://github.com/midonet
本体の midonet と共に midostack というレポジトリがあってどうやら公式サイトの QuickStart を見ても devstack を交えての簡単な midonet の動作が確認できそう。
https://github.com/midonet/midostack
早速使ってみる 早速 midostack を使って midonet を体験してみましょう。QuickStart には Vagrant + VirtualBox を用いた使い方が改定ありますが手元の PC 端末だとリソース が足らなくて CirrOS VM 一個すら立ち上がりませんでした。よって普通にリソースの 沢山あるサーバで稼働してみます。Vagrantfile 見ても
config.vm.synced_folder "./", "/midostack" としているだけなので、Vagrant ではなくても大丈夫でしょう。
Ubuntu Server 14.04 をインストールしたマシンを用意して midostack を取得します。
% git clone https://github.com/midonet/midostack.git midonet_stack.sh を実行します。
% cd midostack % ./midonet_stack.sh 暫く待つと Neutron Middonet Plugin が有効になった OpenStack が立ち上がります。 Horizon にアクセスしましょう。ユーザ名 : admin, パスワード : gogomid0 (デフォ ルト) です。
...
こんにちは。@jedipunkz です。
昨晩 Chef が Chef-Container を発表しました。
http://www.getchef.com/blog/2014/07/15/release-chef-container-0-2-0-beta/ http://docs.opscode.com/containers.html まだ Beta リリースでバージョンは 0.2.0 です。(gem だと 0.1.1)
Docker を代表とするコンテナ周りの技術が最近、盛んにリリースされていますし、今 後クラウドプラットフォーム上でコンテナを使ってアプリを動かすケースも増えてくる のではないでしょうか。Dockerfile を使っても Chef-Solo を使ってソフトウェアをデ プロイ出来るのだけどそれだけだとしんどいので、コンテナに特化した Chef が出てき たってことだと思います。特徴として SSH でログインしてブートストラップするので はなくて Runit + Chef-init を用いてコンテナにデプロイすることが挙げられます。
では実際に使ってみたのでその時の手順をまとめてみます。
事前に用意する環境 下記のソフトウェアを予めインストールしておきましょう。
docker chef berkshelf ここで注意なのですが後に knife コマンドを使って Docker イメージをビルドします。 つまり root 権限が必要です。rbenv 等を使って ruby, chef をインストールすると、 辛いかもしれませんので OS のパッケージを使ってインストールすると良いと思います。 この辺りは今後改善策が出てくるかも…。
尚、インストール方法はここでは割愛します。
Chef-Container のインストール 下記の2つの Gems をインストールします。
knife-container chef-container % sudo gem install knife-container % sudo gem install chef-container 使用方法 まず knife コマンドを使って操作に必要なディレクトリとファイルを生成します。
...