Vagrantで開発環境

http://www.vagrantup.com/
ここからdmgをダウンロードしてインストールする。

.zshrcに
export PATH=/Application/vagrant/bin:$PATH
を追加しておく。

VirtualBoxは導入済み。

vagrantで使うboxのリスト。
http://www.vagrantbox.es/

適当なものをチョイス。

> vagrant box add centos_64_nocm http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210-nocm.box
> vagrant box list
centos_64_nocm (virtualbox)

サーバ起動の準備

> mkdir develop
> cd develop
> vagrant init centos_64_nocm

Vagrantfileを編集する。
今回は自分のmacから開発環境をつくるのが目的なのでブリッジ接続することにした。

> vi Vagrantfile
config.vm.network :public_network

固定にするなら

config.vm.network :private_network, ip: "192.168.0.124"

メモリの設定をする。

config.vm.provider :virtualbox do |vb|
  vb.customize ["modifyvm", :id, "--memory", "1024"]
end

起動する。

> vagrant up

途中で、

[default] Available bridged network interfaces:
1) en1: Ethernet 2 (AirPort)
2) en0: Ethernet 1
3) p2p0
What interface should the network bridge to? 1

と聞かれるので1を入力。

サーバに入る。

> vagrant ssh
[vagrant@localhost ~]$ pwd
/home/vagrant
[vagrant@localhost ~]$ ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:B1:58:9A
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feb1:589a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:569 errors:0 dropped:0 overruns:0 frame:0
          TX packets:356 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:56092 (54.7 KiB)  TX bytes:46757 (45.6 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:94:8D:7F
          inet addr:192.168.0.124  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe94:8d7f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:408 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:52461 (51.2 KiB)  TX bytes:13714 (13.3 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

macからsshしてみる。パスワードはユーザ名と一緒みたい。

> ssh vagrant@192.168.0.124

ここにansible-playbookで環境を流す。
vagrant pluginでansibleと連携できるみたいだけど、今回は以前つくったplaybookを流す。

(ansible-env)> ansible-playbook -i develop develop.yml -K -v

環境ができたらvagrantのboxを作成しておく。

> vagrant package

package.boxというファイルができるのでこれをdropboxかどこかで開発者に共有してもらって、

> vagrant add develop http://共有したURL/package.box

みたいな感じで環境がすぐできる。

次回はvagrantでAWSとvSphere(切実)の連携を予定。

Rubymotionのアレコレ2

RubyMotionのアレコレの続き。

・app.provisioning_profileの指定
Xcode5でファイル特定ができなくなった?っぽいのでterminalから直接調べにいきます。
cd ~/Library/MobileDevice/Provisioning Profiles で移動して、head * すると、ファイルの中身に

<key>AppIDName</key>
<string>アプリ名</string>

みたいなのが出てくるので、そのファイルをapp.provisioning_profileに指定する。
ちょっとめんどくさい。

・AppStoreへのリリース時
rake archive:distributionで.ipaを作成。
Xcodeを起動して、メニューの[Xcode] > [Open Developer Tool] > [Application Loader]を起動する。
Deliver Your Appをクリックすると事前にiTunes Connectで登録した情報が出てくる(出てこない場合は何かしら情報が足りてないかAgreeしていない項目があるかも)ので、そこからアップロードする。
指定したprovisioning profileが違うとか、アイコンファイルが足りないとか色々でるので頑張って用意する。
あとはレビューを経てReady For Saleになるまで待つ。