Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

この記事は最終更新から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インストール用のパッケージはここに公開状態でおいてます。

https://s3.amazonaws.com/omnibus-serverspec/

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした