2013/12/12

OpenStackerがMacBookを買ったらまずセットアップする環境構築 / OpenStack Advent Calendar 2013

どうも、@naoto_gohkoです。


しばらく、blog書いてなかったのですけど、OpenStack Advent Calendar 2013 JPにエントリーしてしまったので、沖縄で今、懇親会の後に書いています。
Linkなどは書かないものもありますので、ご了承ください。
(ぐぐるとわかりますけど)
https://github.com/irixjp/opstjp-ac/wiki/OpenStack-Advent-Calendar-2013-JP


Okinawa Open Days 2013 については、会長(@irix_jp)さんが明日書くようなので、それをお楽しみに。


さて、沖縄までまっさら(OSの初期電源投入しただけ)のMacBook Proを持ち込んでかいています。
発表に使ったMacBook Airとはべつにもってきていたりします。
重かったですが、200gしか重量が違わないそうなので、今後こっちを使っていくために環境構築したいと思います。
BbNVYefCIAAXPjb jpg large
こんな感じ。
薄さもそんなかわらないですね。いがいと。
まず、なにを設定したかというと、iCloud, AppStoreの設定ですね。
Xcodeがないといろいろ開発環境の構築ができないので。
スクリーンショット 2013 12 11 23 19 14
これで、keychainは認証がほかのiPhoneまたはMacBook Airで実施します。
すると、iCloudの設定が同期します。

それと、せっかく高解像度のMacBook Proなので、ディスプレイの設定を「スペースを拡大」に設定します。

さすがに字がちっさいですけど、図を書いたりするので、広いのが良いです。
スクリーンショット 2013 12 11 23 24 39
Appleメニューから、「App Store」を起動して、アプリケーションを最新にします。
2013のMac OS X Merverikプリインストールのモデルから、Keynote 2013を含むiWorksがデフォルトでインストールされます。

ただし、注意しないといけないのは、keynote 2013は書類の形式がそれまでの形式とかわって、zipでのpackがかかっていないようになっています。Dropbox, Windowsなどとやり取りする場合、Folderにみえてしまうので、dropboxにuploadする場合には、zip圧縮する方がよいですね(iWork 2013)。iWork 2013などかなりサイズがデカイので、updateが時間がかなりかかります。

じぶんが、個別にApp Storeでインストールするソフトは、
  • TextWrangler
  • Xcode
  • Twitter
  • Microsoft Remote Desktop
  • Simple Note
  • LINE
ですかね。
Vagrantをインストールする前に、Xcodeまではかならずインストールを完了してください。

ほかに、個別にインストールするのはConoHaやOnamae.com VPS KVMの検証で各種ブラウザは入れます。
  • Firefox
  • Google chrome
あと、その他は
  • Google 日本語入力(なんかKeynote固まるので自粛中)
  • LibreOffice 4.1.3
  • iTerm2  http://www.iterm2.com
  • Homebrew  
  • VirtualBox + Extension
  • Vagrant

iterm2
スクリーンショット 2013 12 12 8 02 03

Homebrew (Xcode install済みで入れる)
スクリーンショット 2013 12 12 8 28 38
Homebrewはrubyのone linerでインストールします。
Mac OS X Merverikはruby 2.0.0p247とかのかなり新しめのrubyが入っていますけど、問題ないです。
2nd-ConoHa-MacBook-Pro:~ chroum$ git --version
git version 1.8.3.4 (Apple Git-47)
2nd-ConoHa-MacBook-Pro:~ chroum$ which git
/usr/bin/git

2nd-ConoHa-MacBook-Pro:~ chroum$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
2nd-ConoHa-MacBook-Pro:~ chroum$ which ruby
/usr/bin/ruby
管理者権限が必要なので、sudoパスワードを聞かれます。
2nd-ConoHa-MacBook-Pro:~ chroum$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
enter password


0) 作業の前にvagrant plugin install

Vagrant, VirtualBoxまではインストールが終わっているものとします。
snapshotを使えるようにして、スクリプトをカスタマイズしているときにまちがっても
やり直せるようにします。
2nd-ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant plugin install vagrant-vbox-snapshot
Installing the 'vagrant-vbox-snapshot' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vbox-snapshot (0.0.4)'!
2nd-ConoHa-MacBook-Pro:devstack-vm chroum$
これは、Virtualbox providerの場合のsnapshotをとれるようにするpluginです。
ほかの仮想化(libvirt, kvm, OpenStack)providerの場合には別の方法がひつようですね。

# ansible を install 
自分の構成設定はansibleが最近多いので、入れます。
devstackでansible deployする場合には、実際には中のOSでansibleされますので、host OSではansibleは必要ありません。
ConoHaはssh keyをOpenStackのinjectionでvmに設定してくれるのでとくに、手元で操作できる方が良いので入れちゃいます。
2nd-ConoHa-MacBook-Pro:DevStack chroum$ brew install ansible


1) stableソースコードを読むため環境のつくる

stableのソースコードを手元でいつでもみれるようにします。
まず、brewでwget, curlを入れておきます。
2nd-ConoHa-MacBook-Pro:dev-nova chroum$ brew install wget
2nd-ConoHa-MacBook-Pro:dev-nova chroum$ brew install curl
Grizzly stable, Havana stableのソースコード取得します。
stableだと、zipでgithubから取得するのがgitのよけいな情報がないので、高速に取得できます。

githubはgitでアクセスするものと基本的には思っていますが、stableでまずは
電車内でノマドなリーディングする場合など、ローカルにあると重宝します。
Dropboxなんかにおいて、iPadで読むなんてもおしゃれじゃないですかね。
wgetこまんどかcurlコマンドかは趣味の範囲ですので、各自ユーザーに任せます。
mkdir ~/devel/OpenStack/dev-nova
cd ~/devel/OpenStack/dev-nova/
wget https://github.com/openstack/nova/archive/stable/grizzly.zip -O grizzly.zip
unzip grizzly.zip
wget https://github.com/openstack/nova/archive/stable/havana.zip -O havana.zip
unzip havana.zip
cd ../
こんなかんじですね。たいしたことないですけど

2) ふつうに、DevStack環境を作る
vagrantでdevstack環境を作っておきます。
devstackはgitでmaster branchからソースを持ってきますので、stableとは別にあった方が良いですね。
動作するdevstackなのか、動作しないdevstackなのかは、vagrantでdevstackを稼働させて判断します。
最新のtrunkコードの確認やDevStack動作確認について必要な方のためのQuick install
http://devstack.org/
以下のスライドを見つけました。lorinhさんのやつ
githubはこちら
この動作の流れは、
Ubuntu 13.10 + devstackの環境をつくってdevstack All-in-oneのインストールを
するものです。
MacBook Airで試したときにはかなり時間がかかりました。
全然Quickじゃないです。
ConoHa-MacBook-Pro:OpenStack chroum$ mkdir ~/devel/OpenStack/devstack-vm
ConoHa-MacBook-Pro:OpenStack chroum$ cd ~/devel/OpenStack/devstack-vm/
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 8
-rw-r--r--  1 chroum  staff  13 12 12 21:37 01-git-clone-devstack-vag.sh
ConoHa-MacBook-Pro:devstack-vm chroum$ vim 01-git-clone-devstack-vag.sh
ConoHa-MacBook-Pro:devstack-vm chroum$ sh 01-git-clone-devstack-vag.sh
Cloning into 'devstack-vm'...
remote: Counting objects: 229, done.
remote: Compressing objects: 100% (96/96), done.
remote: Total 229 (delta 123), reused 220 (delta 118)
Receiving objects: 100% (229/229), 50.86 KiB | 0 bytes/s, done.
Resolving deltas: 100% (123/123), done.
Checking connectivity... done
ConoHa-MacBook-Pro:devstack-vm chroum$ cat 01-git-clone-devstack-vag.sh
#!/bin/bash
git clone https://github.com/lorin/devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 8
-rw-r--r--   1 chroum  staff   62 12 12 21:38 01-git-clone-devstack-vag.sh
drwxr-xr-x  17 chroum  staff  578 12 12 21:38 devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$ cd devstack-vm/
ConoHa-MacBook-Pro:devstack-vm chroum$ ls -l
total 128
-rw-r--r--  1 chroum  staff     55 12 12 21:38 Makefile
-rw-r--r--  1 chroum  staff   7928 12 12 21:38 README.md
-rw-r--r--  1 chroum  staff   1384 12 12 21:38 Vagrantfile
-rw-r--r--  1 chroum  staff    164 12 12 21:38 admin.openrc
-rw-r--r--  1 chroum  staff    107 12 12 21:38 ansible_hosts
-rwxr-xr-x  1 chroum  staff   2863 12 12 21:38 boot-cirros.py
-rw-r--r--  1 chroum  staff    163 12 12 21:38 demo.openrc
-rw-r--r--  1 chroum  staff   1145 12 12 21:38 devstack.yaml
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 files
-rw-r--r--  1 chroum  staff    510 12 12 21:38 horizon-workaround.yaml
-rw-r--r--  1 chroum  staff   1675 12 12 21:38 id_vagrant
drwxr-xr-x  3 chroum  staff    102 12 12 21:38 templates
-rw-r--r--  1 chroum  staff  18133 12 12 21:38 topology.png
ConoHa-MacBook-Pro:devstack-vm chroum$
Memoryのサイズが4096になっています。
環境によっては足りないと思いますので、3072とか2048とか変更してください。
でも、4096以上あった方が良いです。いろいろ中で動くので。
ConoHa-MacBook-Pro:devstack-vm chroum$ vim Vagrantfile
devstackのall in oneは、ご使用の環境に応じて手加減してください。
vagrant upすると、まずはboxのダウンロードから始まります。
Ubuntu 13.10(saucy 64bit)のダウンロードで回線によっては結構かかります。
12/12現在、沖縄のホテルでは110k/sぐらいで1時間くらいかかりました。
ubuntuが公開しているvagrant Imageから落としてきます
URL: http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box
以下、vagrant up実行結果
ConoHa-MacBook-Pro:devstack-vm chroum$ pwd
/Users/chroum/devel/OpenStack/devstack-vm/devstack-vm
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant
ConoHa-MacBook-Pro:devstack-vm chroum$ vim Vagrantfile
ConoHa-MacBook-Pro:devstack-vm chroum$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Box 'saucy64' was not found. Fetching box from specified URL for
the provider 'virtualbox'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading box from URL: http://cloud-images.ubuntu.com/vagrant/saucy/current/saucy-server-cloudimg-amd64-vagrant-disk1.box
Extracting box...te: 92649/s, Estimated time remaining: 0:00:01)
Successfully added box 'saucy64' with provider 'virtualbox'!
[default] Importing base box 'saucy64'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Running 'pre-boot' VM customizations...
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] The guest additions on this VM do not match the installed version of
VirtualBox! In most cases this is fine, but in rare cases it can
cause things such as shared folders to not work properly. If you see
shared folder errors, please update the guest additions within the
virtual machine and reload your VM.
Guest Additions Version: 4.2.16
VirtualBox Version: 4.3
[default] Configuring and enabling network interfaces...
[default] Mounting shared folders...
[default] -- /vagrant
[default] Running provisioner: ansible...
PLAY [default] ****************************************************************
GATHERING FACTS ***************************************************************
ok: [default]
TASK: [create keyring config directory] ***************************************
changed: [default] => {"changed": true, "gid": 1000, "group": "vagrant", "mode": "0775", "owner": "vagrant", "path": "/home/vagrant/.local/share/python_keyring", "size": 4096, "state": "directory", "uid": 1000}
>>> snip <<<
さらに以下、待つのみ
開始してから、3時間、終わらないですね。
box downloadで1時間、destack構築はその後です。

ざんねんながら、負けた感じです( ; _ ; )

(3) RDO havana 環境構築
ここについては、沖縄の発表の中でIIJ斉藤さんのチームから発表がありましたので、リンクURLを張っておきます。
ついでに、私の資料もはります。
https://www.slideshare.net/chroum/open-stack-basepublicservicebygmo20131212


Open stack base-public-service-by-gmo-2013-1212 from Naoto Gohko

とりあえず、まっさらの環境からVagrant upをできるまでの環境を作りました。
devstackは負けた感じですけど、RDOとかOpenCenterとかの環境もいろいろgithubにあがっていたりします。斉藤さんのIIJチームの資料の今後もちょっと楽しみです。

Vagrantはshell, chef, puppet, ansibleなどいろいろkickできるので、 手元でノマドするにはいい感じのツールです。私の場合、PC持ち歩かないときには、ConHaのVPS上でもやったりしています。

 

0 件のコメント: