ここのところ、Vagrantを使っていろいろとやるのにはまってます。
インストール方法とかは色々なところに書かれているので、それ以降の事を書いてみたいと思います。
1. 基本となるboxファイルをaddする。
今回はCentOS 6.6のboxファイルを作りたいので、VirtualBoxとpackerを使ってごにょごにょする方法もあるのですが、既存のboxファイルを流用する方法をご紹介します。そっちの方が楽だからw
https://atlas.hashicorp.com/ からaddしますが、従来のようにboxファイルをダウンロードする方法や、boxファイルやjsonファイルのURLを指定する方法ではなく、box名を指定します。ATLASの中からboxファイルを検索します。
https://atlas.hashicorp.com/boxes/search
ここで、「centos」「virtualbox」「Downloads」で検索すると、"chef/centos-6.5"がヒットしますので、これをaddします。
[host]$ vagrant init chef/centos-6.5 [host]$ vagrant up
ネット環境にもよりますが数分から数時間待つと自動的にboxをaddした上でcentos-6.5環境ができます。なんと簡単な!!従来より格段に便利になっていますね。
2. CentOS 6.5からCentOS 6.6へアップデート
ログインさえしていまえば普通のCentOSです。アップデートを行います。ここでは後ほどVirtualBoxのGuest Additionsをリビルドする必要があるので、"Development tools"をインストールしています。
[host]$ vagrant ssh $ sudo yum groupinstall "Development tools" -y $ sudo yum install kernel-devel yum-utils vim-enhanced -y $ sudo yum update -y $ exit [host]$ vagrant reload
3. Guest Additionsのリビルド
vagrant reloadすると共有ディレクトリがマウントされません。色々赤字でメッセージが出て精神衛生上良くありません。Guest Additionsをリビルドしてやります。
[host]$ vagrant ssh $ sudo service vboxadd setup $ exit [host]$ vagrant reload
4. 自分色に染めましょう
自分はApache、MySQL、Rubyなどをインストールしました。ここでは割愛。
5. アップデート後のクリーンナップ
色々とケアしてあげます。
[host]$ vagrant ssh $ export HISTIGNORE=* $ curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub >> ~/.ssh/authorized_keys $ sudo vi /boot/grub/grub.conf ===== timeout=0 ===== $ sudo vi /etc/sysctl.conf ===== vm.swappiness = 0 ===== $ sudo vi /etc/sysconfig/selinux ===== SELINUX=desabled ===== $ sudo yum clean all $ sudo package-cleanup --oldkernels --count=1 $ sudo package-cleanup --leaves 読み込んだプラグイン:fastestmirror libtool-2.2.6-15.5.el6.x86_64 <= これがいらないパッケージ $ sudo yum remove libtool-2.2.6-15.5.el6.x86_64 $ dd if=/dev/zero of=zerofile (時間がかかります) $ rm zerofile $ cat /dev/null > ~/.bash_history $ exit [host]$ vagrant halt
6. boxファイルの作成
vagrant packageコマンドでboxファイルを作成します。vagrant packageのオプションがなぜか通らないので後でリネームしています。
[host]$ vagrant package [host]$ mv package.box centos-6.6.box
7. boxファイルのテスト
[host]$ vagrant box add test ./centos-6.6.box [host]$ mkdir test [host]$ cd test [host]$ vagrant init test [host]$ vagrant up [host]$ vagrant ssh (テスト) $ exit [host]$ vagrant halt [host]$ vagrant destroy [host]$ cd .. [host]$ rm -rf test [host]$ vagrant box remove test
8. boxファイルのアップロード
インターネット上にboxファイルをアップロードします。ここではアップロード場所を以下とします。
https://uehatsu.info/vagrant/uehatsu/centos-6.6.box
9. jsonファイルの作成
以下のURLにjsonファイルを作成します。
https://uehatsu.info/vagrant/uehatsu/centos-6.6.json
{ "description": "CentOS6.6 x86_64", "short_description": "CentOS6.6", "name": "uehatsu/centos-6.6", "versions": [{ "version": "1.0.0", "status": "active", "description_html": "<p>CentOS6.6 x86_64</p>", "description_markdown": "CentOS6.6 x86_64", "providers": [{ "name": "virtualbox", "url": "https://uehatsu.info/vagrant/uehatsu/centos-6.6.box" }] }] }
10. boxファイルのadd
インターネット上のboxファイルをaddします。ローカルでやれば良い気もしますが、これをやっておくとboxファイルのバージョン管理ができるようになります。
[host]$ vagrant box add https://uehatsu.info/vagrant/uehatsu/centos-6.6.json [host]$ vagrant box list uehatsu/centos-6.6 (virtualbox, 1.0.0)
11. テスト
addしたboxファイルを使ってvmを立ち上げてみます。
[host]$ mkdir test [host]$ cd test [host]$ vagrant init uehatsu/centos-6.6 [host]$ vagrant up [host]$ vagrant ssh (テスト) $ exit [host]$ vagrant halt [host]$ vagrant destroy [host]$ cd .. [host]$ rm -rf test
12. boxファイルのアップデート
boxファイルをアップデートしたら、同じ場所にアップロードして、jsonファイルの"version"を1.0.1などに修正しておきます
boxファイルのアップデートは以下のコマンドで行います。
[host]$ vagrant box update --box uehatsu/centos-6.6
vagrant box listで確認するとバージョンが上がっているのが分かります。
[host]$ vagrant box list uehatsu/centos-6.6 (virtualbox, 1.0.0) uehatsu/centos-6.6 (virtualbox, 1.0.1)
13. アップデート前のboxファイルの削除
このままだとアップデート前のboxファイルが残ったままになるので削除します。
[host]$ vagrant box remove uehatsu/centos-6.6 --box-version 1.0.0
こんな感じでboxファイルの作成、アップデートを行っていきます。
将来的にはATLASでboxファイルを公開したいですね。
実践 Vagrant | |
Mitchell Hashimoto Sky株式会社 玉川 竜司 オライリージャパン 2014-02-21 売り上げランキング : 128897 Amazonで詳しく見る by G-Tools |
Vagrant入門ガイド | |
新原雅司 技術評論社 2013-09-12 売り上げランキング : 3788 Amazonで詳しく見る by G-Tools |
10日でおぼえるLinuxサーバー入門教室 CentOS対応 (10日でおぼえるシリーズ) | |
一戸 英男 翔泳社 2012-11-16 売り上げランキング : 103624 Amazonで詳しく見る by G-Tools |