LoginSignup
5
5

More than 5 years have passed since last update.

Omnibus-rubyプロジェクトでビルドしたrpm,debをs3に公開する

Last updated at Posted at 2013-12-26

この記事は最終更新から1年以上経過しています。 気をつけてね。

以前のエントリ、Omnibus-rubyプロジェクトでツールの周辺依存をまるごとrpm,debに固める - Qiita [キータ] の続編です。

omnibusには作成したパッケージをAWSのs3にアップ&公開する機能があるのでついでに紹介しよう。

ominubusの使い方は書いていたけど、配布もOKだと書いてなかったね。

ツール選定

今回はRubyと適当なRubyGemsを入れただけのものを単純にパッケージにしてみました。
gemのbuildすらしてないですが、たまにはいいかと。

で、RubyGemsのエコシステムから簡単にいけるもの、serverspecにしてみました。

Omnibusプロジェクトはこちら。

https://github.com/OpsRockin/omnibus-serverspec

で、vagrant upして放っておいたら手元にパッケージがそろいました。

$ ls -1 pkg/
serverspec-0.14.1_01-1.el6.x86_64.rpm
serverspec-0.14.1_01-1.el6.x86_64.rpm.metadata.json
serverspec_0.14.1-01-1.ubuntu.10.04_amd64.deb
serverspec_0.14.1-01-1.ubuntu.10.04_amd64.deb.metadata.json
serverspec_0.14.1-01-1.ubuntu.12.04_amd64.deb
serverspec_0.14.1-01-1.ubuntu.12.04_amd64.deb.metadata.json

それぞれ20MBくらいあるので、Diskの空き容量には注意ってか。

omnibus release package

前エントリではプロジェクト雛形作成に使用したomnibusCLIですが、releaseサブコマンドがついてます。
次のように使います。

omnibus release package PATH   [ --public] # Upload a single package to S3

使用するには少々設定が必要です。

S3リリースのセットアップ

リリースしたいバケットを事前に作成したら、コンフィグファイルにIAMのキーを記述します。

omnibus.rb.example
release_s3_access_key S3_ACCESS_KEY
release_s3_secret_key S3_SECRET_KEY
release_s3_bucket S3_BUCKET_NAME
# use_s3_caching true
# solaris_compiler "gcc"
# build_retries 3

omnibus.rbにコピーして直接入れておいてもよし、サンプルと同じ名前の環境変数にしてもよしです。

リリースしてみる

—publicオプションを付けておくと、s3のパーミッションにpublic_readを付けてくれます。

omnibus_release_package
 $ omnibus release package pkg/serverspec-0.14.1_01-1.el6.x86_64.rpm --public
Using Omnibus configuration file PATH_TO/omnibus.rb
Using Omnibus configuration file PATH_TO/omnibus.rb
Uploaded el/6.5/x86_64/serverspec-0.14.1_01-1.el6.x86_64.rpm.metadata.json
Uploaded el/6.5/x86_64/serverspec-0.14.1_01-1.el6.x86_64.rpm

その他のパッケージも順々にアップ。
無事、s3にて公開されました。

S3_Management_Console.png

インストールしてみる

どこかのクラウドにインスタンスを上げて、それぞれ全く初期状態からおもむろにインストールしてみました。

CentOS

   __        .                   .
 _|  |_      | .-. .  . .-. :--. |-
|_    _|     ;|   ||  |(.-' |  | |
  |__|   `--'  `-' `;-| `-' '  ' `-'
                   /  ;  VirtualMachine (centos 6.4-2.4.1)
                   `-'   http://wiki.joyent.com/jpc2/Centos
# wget https://s3.amazonaws.com/omnibus-serverspec/el/6.5/x86_64/serverspec-0.14.1_01-1.el6.x86_64.rpm
# rpm -ivh ./serverspec-0.14.1_01-1.el6.x86_64.rpm 
Preparing...                ########################################### [100%]
You're about to install serverspec!
   1:serverspec             ########################################### [100%]
Thank you for installing serverspec!


# serverspec-init 
Select OS type:

  1) UN*X
  2) Windows

Select number: 1

Select a backend type:

  1) SSH
  2) Exec (local)

Select number: 2

 + spec/
 + spec/localhost/
 + spec/localhost/httpd_spec.rb
 + spec/spec_helper.rb
 + Rakefile


# rspec 

— snip —

Finished in 0.10964 seconds
6 examples, 6 failures


Ubuntu

   __        .                   .
 _|  |_      | .-. .  . .-. :--. |-
|_    _|     ;|   ||  |(.-' |  | |
  |__|   `--'  `-' `;-| `-' '  ' `-'
                   /  ;  Joyent VirtualMachine (ubuntu 12.04-2.4.1)
                   `-'   http://wiki.joyent.com/jpc2/Ubuntu
# wget https://s3.amazonaws.com/omnibus-serverspec/ubuntu/12.04/x86_64/serverspec_0.14.1-01-1.ubuntu.12.04_amd64.deb
# dpkg -i serverspec_0.14.1-01-1.ubuntu.12.04_amd64.deb 
Selecting previously unselected package serverspec.
(Reading database ... 48405 files and directories currently installed.)
Unpacking serverspec (from serverspec_0.14.1-01-1.ubuntu.12.04_amd64.deb) ...
You're about to install serverspec!
Setting up serverspec (0.14.1-01-1.ubuntu.12.04) ...
Thank you for installing serverspec!


# serverspec-init 
Select OS type:

  1) UN*X
  2) Windows

Select number: 1

Select a backend type:

  1) SSH
  2) Exec (local)

Select number: 2

 + spec/
 + spec/localhost/
 + spec/localhost/httpd_spec.rb
 + spec/spec_helper.rb
 + Rakefile


# rspec 

— snip --

Finished in 0.59345 seconds
6 examples, 6 failures

動いてんのかなー
よくわかんないかなー

成果物サンプル

今回作ったserverspecインストール用のパッケージはここに公開状態でおいてます。

たまに更新するかもしれない。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5