Chef Cookbook でユーザ・グループ追加

こんにちは。@jedipunkz です。 今回は Opscode Chef でユーザ・グループを作成する方法をまとめます。 ‘users’ Cookbook を使います。 % cd ${YOUR_CHEF_REPO} % ${EDITOR} Berksfile cookbook 'users' % berks install --path ./cookbooks data_bag を使ってユーザ・グループの管理をしたいので管理ディレクトリを作成しま す。 % mkdir -p data_bags/users data_bags/users/jedipunkz.json ファイルを作成します。必要に応じて内容を書き換えてください。 { "id": "jedipunkz", "ssh_keys": "ssh-rsa AAAABx92tstses jedipunkz@somewhere", "groups": [ "sysadmin", "sudo" ], "uid": 2001, "shell": "\/usr\/bin\/zsh", "comment": "jedipunkz sysadmin", "password": "$1$s%H8BMHlB$7s3h30y9IB1SklftZXYhvssJ" } json ファイルの説明です。 id : ユーザ名 ssh_keys : SSH 公開鍵 groups : 所属させるグループ uid : unix id sheell : ログインシェル comment : コメント passwd : ハッシュ化したパスワード 特にハッシュ化したパスワードは下記のコマンドで生成出来ます。 ...

Ceph-Deploy で Ceph 分散ストレージ構築

今回は ceph-deploy というツールを使って Ceph ストレージを簡単に構築することが 出来るので紹介します。Ceph は分散ストレージでオブジェクトストレージとしてもブ ロックストレージとしても動作します。今回の構築ではブロックストレージとしてのみ の動作です。 Ceph が公開しているのが ceph-deploy なわけですが、マニュアル操作に代わる構築方 法として公開しているようです。その他にも Chef Cookbook も公開されているようで す。 それでは早速。 今回の構成 +--------+ +--------+ +--------+ | ceph01 | | ceph02 | | ceph03 | | osd | | osd | | osd | | mon | | mon | | mon | | mds | | mds | | mds | +--------+ +--------+ +--------+ | 10.0.0.1 | 10.0.0.2 | 10.0.0.3 | | | +----------+----------+ | | 10.0.0.10 +-------------+ | workstation | +-------------+ 特徴は ...

Quantum Network ノードの分散・冗長

こんにちは。Grizzly がリリースされてから暫く経ちました。今回は Folsom リリース まであった Quantum ノードのボトルネックと単一障害点を解決する新しい機能につい て評価した結果をお伝えします。 Folsom までは Quantum L3-agent が落ちると、その OpenStack 一式の上にある仮想マシン全ての通 信が途絶える Quantum L3-agent に仮想マシンの全てのトラフィックが集まりボトルネックとなる。 という問題がありました。Folsom リリース時代にもし僕が職場で OpenStack を導入す るのであればこれらを理由に nova-network を選択していたかもしれません。 nova-network は compute ノードが落ちればその上の仮想マシンも同時に落ちるが、他 の compute ノード上の仮想マシンの通信には影響を与えないからです。もちろん仮想 ルータ・仮想ネットワークの生成等を API でユーザに提供したいなどの要望があれば Quantum を選択するしかありませんが。これに対して Grizzly リリースの Quantum は 改善に向けて大きな機能を提供してくれています。L3-agent, DHCP-agent の分散・冗 長機能です。 下記の構成が想定出来ます。ここでは Network ノードを2台用意しました。それ以上の 台数に増やすことも出来ます。 +-------------+-------------+-------------------------- Public/API Network | | | +-----------+ +-----------+ +-----------+ +-----------+ | | | | | | |vm|vm|.. | | controller| | network | | network | +-----------+ | | | | | | | compute | +-----------+ +-----------+ +-----------+ +-----------+ | | | | | | | +-------------+-----)-------+-----)-------+-----)------ Management/API Network | | | +-------------+-------------+------ Data Network L3-agent の分散は仮想ルータ単位で行います。それに対し DHCP-agent は仮想 ネットワーク単位で行います。 ...

Chef for OpenStack

以前にも話題にしたことがある Chef For OpenStack ですが今週新しい情報が入って来 ました。#ChefConf 2013 というイベントがあったのですがここで Opscode の Matt Ray さんらが集まり OpenStack を Chef で構築する ‘Chef for OpenStack’ について 語られた模様です。その時の資料が SlideShare に上がっていたので見てみました。 Chef for OpenStack: Grizzly Roadmap from Matt Ray 気にあった点を幾つか挙げていきます。 https://github.com/osops で管理される 各コンポーネントの cookbook の名前には ‘-cookbook’ を最後に付ける quantum, cinder, ceilometer, heat 等、比較的新しいコンポーネントも加わる gerrit でコードレビューされ CI も提供される Chef11 が用いられる Ruby 1.9.x に対応した chef-client が用いられる Foodcritic で可能な限りテストされる chef-solo はサポートされない 5月に ‘2013.1.0’ がリリースされる (openstack 2013.1 対応と思われる) chef-repo の形で提供される Ubuntu 12.04 が前提 HyperVisor は KVM, LXC がサポートされる 以上です。恐らく chef-repo で提供されるということは spiceweasel を使った構成構 築が出来るような形になるでしょう。楽しみです。またコントリビュートする方法も掲 載されているので興味が有る方は協力してみるのも楽しいかもしれません。 ...

OpenStack Grizzy で非 Virtio OS 稼働

こんにちは jedipunkz です。 Virtio に対応していない OS を OpenStack で稼働させることが今まで出来なかったの ですが Grizzly から非 Virtio な OS イメージが扱えるようになった。今まで NetBSD やら古い FreeBSD やら virtio ドライバを OS イメージに入れることに苦労していたの だけど、これで問題無くなった。 最初、この機能のこと調べるのに「どうせ libvirt が生成する xml を書き換えるのだ から nova 周りの設定なんだろうー」と思っていたら全く方法が見つからず…。結局 OS イメージを格納している Glance の設定にありました。 ここでは FreeBSD7.4 Release を例に挙げて説明していきます。 前提とする環境 OpenStack Grizzly が稼働していること ホスト OS に Ubuntu 12.04.2 LTS が稼働していること ゲスト OS に FreeBSD 7.4 Release を用いる とします。OS のバージョンはホスト・ゲスト共に、上記以外でも構いません。Grizzly さえ動いていれば OK です。 OS イメージ作成 KVM で OS イメージを作成します。もちろん virtio なインターフェースは指定せず ...

OpenStack Grizzly 構築スクリプト

OpenStack Grizzly がリリースされて2週間ほど経過しました。皆さん動かしてみまし たか?今回、毎度の構築 Bash スクリプトを開発したので公開します。 下記のサイトで公開しています。 https://github.com/jedipunkz/openstack_grizzly_install このスクリプト、複数台構成とオールインワン構成の両方が構成出来るようなっていま すが、今回は簡単なオールインワン構成の組み方をを簡単に説明したいと思います。 前提の環境 Ubuntu 12.04 LTS が稼働している Cinder のためのディスクを OS 領域と別に用意 (/dev/sdb1 など) オールインワン構成の場合は 2 NICs 準備 Ubuntu 13.04 の daily build も完成度上がっている時期ですが OVS 側の対応が OpenStack 構成に問題を生じさせるため 12.04 LTS + Ubuntu Cloud Archive の組み合 わせで構築するのが主流になっているようです。また、Cinder 用のディスクは OS 領 域を保持しているディスクとは別 (もしくはパーティションを切ってディスクデバイス を別けても可) が必要です。オールインワン構成の場合は NIC を2つ用意する必要があ ります。通常 OpenStack を複数台構成する場合は コントローラノード x 1 台 ネットワークノード x 1 台 コンピュートノード x n 台 で組み、VM はコンピュートノードからネットワークノードを介してインターネットに 接続します。よってそのため更に NIC が必要になるのですが、オールインワン構成の 場合は ...

Chef 11 サーバのローカルネットワーク上構築

chef-solo を使うの?Chef サーバを使うの?という議論は結構前からあるし、答えは 「それぞれの環境次第」だと思うのだが、僕は個人的に Chef サーバを使ってます。ホ ステッド Chef を使いたいけどお金ないし。会社で導入する時はホステッド Chef を契 約してもらうことを企んでます。(・∀・) 何故なら cookbooks を開発することがエン ジニアの仕事の本質であって Chef サーバを運用管理することは本質ではないから。そ れこそクラウド使えという話だと思う。 でも!Chef に慣れるには無料で使いたいし、継続的に Cookbooks をターゲットノード で実行したい。ということで Chef サーバを構築して使っています。 Chef 10 の時代は Chef サーバの構築方法は下記の通り3つありました。 手作業! Bootstrap 構築 Opscode レポジトリの Debian, Ubuntu, CentOS パッケージ構築 それが Chef 11 では Ubuntu, RHEL のパッケージ (パッケージインストールですべて環境が揃う) http://www.opscode.com/chef/install/ この方法1つだけ。でも簡単になりました。 ‘Chef Server’ タブを選択するとダウンロード出来る。じっくりは deb ファイルの中 身を見たことがないけど、チラ見した時に chef を deb の中で実行しているように見 えた。徹底してるw Chef 10 時代のパッケージと違って行う操作は下記の2つのコマンドだけ。 % sudo dpkg -i chef-server_11.0.6-1.ubuntu.12.04_amd64.deb # ダウンロードしたもの % sudo chef-server-ctl reconfigure 簡単。でも… この状態だと https://<サーバの FQDN> でサーバが Listen している。 IP アドレスでアクセスしてもリダイレクトされる。つまり、ローカルネットワーク上 に構築することが出来ない。安易に hosts で解決も出来ない。何故ならターゲットノー ドは通常まっさらな状態なので bootstrap するたびに hosts を書くなんてアホらしい しやってはいけない。 ...

クラウドマネジメント勉強会レポ

クラウドマネジメント勉強会に参加してきた。今が旬なのか定員140名が埋まっていま した。クラウドフェデレーションサービス各種の話が聞ける貴重な勉強会の場でした。 場所 : スクエアエニックスさん 日程 : 2013年4月5日 19:00 - 少し長くなるので、早速。 クラウド運用管理研究会 クラウド利用推進機構が運営するクラウド運用管理研究会は下記の3つに分別されるそ うです。今回は一項目の ‘クラウドマネジメントツール研究会’ にあたるそう。別の研 究会も既に勉強会を実施しているそうです。 クラウドマネジメントツール研究会 デザインパターン研究会 運用管理・監視研究会 AWS OpsWorks アマゾンデータサービスジャパン AWS 片山さん, 船崎さん OpsWorks は最近話題になった AWS 利用者に無料で提供されるクラウドフェデレーショ ンサービス。Web UI で操作し簡単デプロイを実現するサービスです。 OpsWorks が自動化するモノ サーバ設定 ミドルウェア構築 特徴 Chef フレームワークを利用 (chef-solo を内部的に利用) 任意の cookbooks を利用可能 LB, AP, DB などをレイヤ化, 任意のレイヤも作成可能 OpsWorks の流れ Stack 作成 レイヤ作成 (LB, AP, DB, 任意) レシピの作成 レイヤにインスタンス作成 下記をレイヤ化で区別する Package インストール OS 設定 アプリデプロイ 所感 AWS OpsWorks の登場で他のクラウドフェデレーションサービスがどうなるの?とさえ 思った。AWS はインターネット・ホスティング業界のあらゆるサービスを押さえようと している感がある。もう隙間がない!w OpsWorks に関してまだ問題は残っているそう だ。VPC, micro 現在未対応など。が解決に向けて作業しているそう。 ...