Skip to content
Tag

Virtualization

Articles and publications tagged Virtualization across the Atmosphere.

15articles6publications
ばうあーろぐ
ばうあーろぐ
Sep 29, 2016
MacOS の VMWare Fusion 内で Docker for Windows をインストールする
最初失敗したので、同じところではまるであろう人のためにメモっておきます。 (念のため言っておきますが僕ははまったわけではないです・・・) そもそも Windows 10 検証用のために VMWare Fusion をインストールしているのですが、 Mac で Docker を使いたいだけなら、 Docker for Macを インストールするだけで問題ありません。 (仮想レイヤーが増えるだけで全くおすすめできない) 僕の場合は、Docker for Windows で検証したいことがあったため、 Windows Update 中に(よくないけど)マシンが空いてたので入れてみようと思い、 インストールしたはいいものの、以下のような画面になりました。 困り顔・・・。(このキャラクターの名前ってあるんですかね?) Docker for Mac/Windows の動作の仕組み 仕組みといっても、そこまで詳しいことは書けないのですが、 Docker は前提として Linux のコンテナ技術を用いているので、 Linux なしに動作させることはできません。 Docker for Mac/Windows の1つ前のバージョンである Docker Toolbox では、 VirtualBox を利用することで仮想 OS のうすーい Linux を手元に作り、 そこの上に Docker コンテナを作ることで利用できてました。 Docker for Mac/Windows になってもそれは同様で、 ホスト型の VirtualBox を利用する代わりに、 Mac であれば xhyve というハイパーバイザー型の仮想化技術を、 Windows であれば Hyper-V というハイパーバイザー型の仮想化技術を それぞれ利用して超うすい Linux を作り、その上で Docker を動作させてます。
DockerVirtualization
ばうあーろぐ
ばうあーろぐ
May 17, 2013
Chef の サードパーティ Cookbook を利用して、yum のリポジトリを追加してみる
よーし、いろいろアプリケーションのインストールの自動化しちゃうぞー! と思っていましたが、 先に試しておいた方が良さそうなものがあったので、そちらを先にやります。 yum のリポジトリの追加 RPM系Linuxディストリビューション、つまり CentOS だったり、 Fedora などの Linux のディストリビューションでは、 yum (Yellowdog Updater Modified) と呼ばれるパッケージ管理システムが採用されています。 yum に限らずですが、ソースコードから毎回インストールするのはかなり骨の折れる作業だったりします。 (もちろんやったことない場合には、絶対経験しておくべき作業ではあると思うのですが。) この yum は、パッケージのインストールがコマンド 1行で出来るので非常に便利ではあるものの、そのまま使うと場合によってはちょっと古めのパッケージ(PHP5.3, MySQL5.1 など)がインストールされてしまいます。 ゲストOS上で、sandbox モードになった状態で試しに PHP をインストールしてみます。 ※これは、ゲストOSに実際にログインして手作業でコマンド打ってます。 [vagrant@vmclient1 ~]$ sudo yum install php (略) Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: php x86_64 5.3.3-22.el6 base 1.1 M Installing for dependencies: apr x86_64 1.3.9-5.el6_2 base 123 k apr-util x86_64 1.3.9-3.el6_0.1 base 87 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k httpd x86_64 2.2.15-28.el6.centos updates 821 k httpd-tools x86_64 2.2.15-28.el6.centos updates 73 k mailcap noarch 2.1.31-2.el6 base 27 k php-cli x86_64 5.3.3-22.el6 base 2.2 M php-common x86_64 5.3.3-22.el6 base 524 k Transaction Summary ================================================================================ Install 9 Package(s) Total download size: 4.9 M Installed size: 16 M Is this ok [y/N]: (y と入力) (略) Installed: php.x86_64 0:5.3.3-22.el6 Dependency Installed: apr.x86_64 0:1.3.9-5.el6_2 apr-util.x86_64 0:1.3.9-3.el6_0.1 apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 httpd.x86_64 0:2.2.15-28.el6.centos httpd-tools.x86_64 0:2.2.15-28.el6.centos mailcap.noarch 0:2.1.31-2.el6 php-cli.x86_64 0:5.3.3-22.el6 php-common.x86_64 0:5.3.3-22.el6 Complete! 入りました。さてバージョンを表示してみます。
ChefVagrant
ばうあーろぐ
ばうあーろぐ
May 14, 2013
Chef の Data Bag を使ってユーザー作成の自動化をしてみる
Chef のユーザー管理を突き詰めてみるだけでも、色々と勉強になっていますね。 前回までで、Chef の Cookbook にユーザー作成やグループ作成のレシピを記述することで、 ユーザー作成の自動化を試してみましたが、今回はもうちょっと複雑なことをやりたいので、 別の方法を試してみようと思います。 『入門 Chef Solo』によると、 システムに追加されるべきユーザーの各種データなどはノードの「属性」でもないし Resource の「属性」でもないデータと見ることができます。 こういったドメインモデル的なデータは Chef のデータ管理の仕組みである Data Bag を使うほうが扱いやすい。 (『入門 Chef Solo』 #19 Attribute と Data Bag より引用) とのことで、データを扱うための仕組みが存在するようです。 また、 Data Bag はクックブック単位ではなく、レポジトリ全体にグローバルなスコープのデータです。 (『入門 Chef Solo』 #19 Attribute と Data Bag より引用) ともありますね。 ということで、今回は Data Bag の仕組みを使って、もうちょっと凝ったユーザー作成の自動化をやってみようと思います。 まずは Data Bag を使ってみる この Data Bag、Cookbook とは別のところに書いて、Cookbook 側から読み込んで使う類のものらしいです。 対象ディレクトリの下に、種別のサブディレクトリを区切って、その中に JSON ファイルをデータごとに用意するようです。 であれば、まずは自分で作った cookbooks ディレクトリと並列なところに、 data_bags というディレクトリでも作り、users というサブディレクトリを作っておきます。 $ mkdir -p data_bags/users $ cd data_bags/users で、それぞれのユーザーごとに [ユーザー名].json のファイルを作ります。 ちなみにこの JSON ファイルは、あくまで任意のデータを扱うためのもので、あとで Cookbook 側から読み込むために用意するので、 前回設定した項目がこちらに用意できればオーケーですね。前回と同じことが出来るところまで設定しましょう。
ChefVagrant
ばうあーろぐ
ばうあーろぐ
May 13, 2013
Vagrant と Chef でユーザー作成の自動化をしてみる
だんだんと Chef いじりが楽しくなってきた girigiribauer です、こんにちは。 この前**『入門 Chef Solo』**というKindle本(電子書籍)を購入して、休憩時などに少しずつ読み進めていたのですが、 ようやくざっと一通り目を通すことができました。 今回以降、この辺も見ながらいろいろ試してみようと思います。 レシピを書くとどんなことが設定できるの? 前回までで、Vagrant と Chef を連携させて、 超シンプルなレシピを書いてみたわけですが、 今回はレシピを書くことで他にどんなことが出来ちゃうのかを、もう少し試してみようと思います! 『入門 Chef Solo』に、この Cookbook はユーザーの設定やらグループの設定やらが一通り載っていて、 最初に全体像を見るのにいいよ!と書かれていたので、まずはこちらの GitHub - treasure-data/chef-td-agent: Chef Cookbook for td-agent (Treasure Agent or Fluentd) Chef Cookbook for td-agent (Treasure Agent or Fluentd) - treasure-data/chef-td-agent github.com を参考にしてみます。 ログデータの収集に使うツールと、それ専用のユーザーなりを設定してくれる Cookbook のようですね。 recipes/default.rb を早速見てみます。 # # Cookbook Name:: td-agent # Recipe:: default # # Copyright 2011, Treasure Data, Inc. # group 'td-agent' do group_name 'td-agent' gid 403 action [:create] end user 'td-agent' do comment 'td-agent' uid 403 group 'td-agent' home '/var/run/td-agent' shell '/bin/false' password nil supports :manage_home => true action [:create, :manage] end directory '/etc/td-agent/' do owner 'td-agent' group 'td-agent' mode '0755' action :create end (以下略) 中身は Ruby のコードとはいえ、見ると何をやっているのかは何となく分かりそうな感じです。
ChefVagrant
ばうあーろぐ
ばうあーろぐ
May 10, 2013
Vagrant と Chef で仮想マシンの環境をいろいろいじれるようにしたい!
前々回、前回までで、ようやく気軽に作って壊せる仮想環境が用意できたので、 ここからは実際に仮想環境に作っていくところをやりたいと思います。 ※まだあやふやな部分が多いので、明らかに違っていた箇所はあとで修正する可能性があります。 もちろんゴールは、実際に少し作れるところまでです。(ファイルを自動で配置するとか、アプリケーションインストール済みの状態にするとか) ただ、そこまで大規模なものは想定していないので(数百台を一元管理とかは絶対やらない)、ローカル環境だけで気軽に試せる方法をとっていきます。 以下、こんな感じで最小構成で進めていきます。 Vagrant を最低限使えるようにする(終わってます) Chef を最低限使えるようにする 簡単な Cookbook を用意する Vagrant, Chef を連携させて、仮想環境が変化するか見てみる Chef とは? 最近かなり頻繁に聞くワードです。 サーバ構築、システム管理の自動化を助けてくれるツールです。アプリケーションのインストールや、OS・ミドルウェアの設定などを、Cookbook と呼ばれる設定ファイルに落とし込んでおくと、各プラットフォームの差異を吸収したうえで、その設定ファイルの状態に保ってくれます。 詳しくはまだまだこれからです。ただ気軽に試せる環境を用意したので、ここからどんどんと試してみようと思います。 また、自動化というメリットの他にも、こういう気軽に試して壊してが出来るってところは大きなメリットだなーと思います。 では早速。 Chef をインストール まず Chef に関連したパッケージを gem でインストールしてみます。gem ならば比較的すぐです。 $ gem install chef Fetching: chef-11.4.4.gem (100%) Successfully installed chef-11.4.4 1 gem installed $ chef-solo -v Chef: 11.4.4 chefというパッケージを入れると、chef-solo, chef-client, knife などのコマンドが一式用意されるようです。試しに chef-solo -v と打ってみたら、「Chef のバージョンは11.4.4ですよー」と表示されました。 ちなみに、数百、数千台とか管理するわけでもないので、Chef Server を用意してうんぬん・・・というのは今回やらずに、 サーバの役割を内包しつつ単独で動く、Chef Solo を使っていきます。 さてさて、何か Cookbook を作ってみることにします。 Cookbook を作る! ※以下、2012年10月に発売された『Software Design / Chef 入門』を参考に進めます。
ChefVagrant
ばうあーろぐ
ばうあーろぐ
May 7, 2013
Vagrant に仮想マシンのスナップショットがとれる sahara というプラグインを入れた
個々の仮想マシンのアプリケーションを入れていく前に、仮想マシンの操作でよくある**『スナップショット機能』**的なものが使えるように、 Vagrant のプラグインの追加をしたいと思います。 sahara プラグインのインストール Vagrant 1.0 までは vagrant に続けて gem サブコマンドで入れられたようですが、 Vagrant 1.1 以降は、plugin サブコマンドを使うようです。 と思って試したら、どうやら Vagrant1.1 以降では対応してないようで・・・。 で色々と調べていたら、対応させている方が!素敵ですねー。 Vagrantの必須プラグインSaharaをVagrant 1.1に対応させました | Ryuzee.com こちらの方の記事にもあるように、『Vagrantを使っている人であれば必携のプラグイン』とあるので、 これはぜひとも入れておき、砂場のように作りは消し、作りは消しが簡単に出来るようにしておきたいですね! (必携といわれるくらいなので、ひょっとしたら後で記事見直したら、この辺きちんと整備されているかもしれませんね。) $ git clone https://github.com/ryuzee/sahara.git (略) $ cd sahara $ bundle install Fetching gem metadata from http://rubygems.org/.......... Fetching gem metadata from http://rubygems.org/.. Resolving dependencies... Using rake (0.9.2.2) Installing Platform (0.4.0) Using bundler (1.3.5) Installing open4 (1.3.0) Installing popen4 (0.1.2) Installing thor (0.18.1) Using sahara (0.0.14) from source at . Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. $ bundle exec rake build sahara 0.0.14 built to pkg/sahara-0.0.14.gem. bundle 使ってビルドすると、 sahara/pkg/ 以下に gem ファイルが出来ました。これを以下の代わりに
VagrantVirtualBox
ばうあーろぐ
ばうあーろぐ
May 5, 2013
仮想環境を CUI(コマンドライン)でいじれる Vagrant を試してみた
もう最近では、OSの上にOSを動かす仮想環境が当たり前になってきていますが、そのソフトウェアの1つに VirtualBox というものがあります。 Vagrant は、元々この VirtualBox を CUI(コマンドライン)でいじれるツールだったのですが、 バージョン1.1以降で VirtualBox 以外のソフトウェアにも対応してくれるようになったため、 今では VirtualBox に限らず使えます。 ちなみに個人としては、Windows に関しては描画の再現性なども考慮して、Mac 上で VMWare Fusion (有料)を起動して、その上に Windows7 やら Windows8 やらをインストールして検証用に使っています。(それでもさくさく動く Retina MacBook Pro 最高ですね!) 一方で、サーバ用途に用いられるような、描画の再現性を考えなくてもよいOSについての検証は、VirtualBox を起動して、その上に CentOS などを入れて今後検証していこうかなと考えています。(まだまだこれからです) このような、後者のサーバ用途に用いるOSの検証で、いちいち VirtualBox(や他のソフトウェア) を GUI から立ち上げて、GUI でぽちぽちとインストールを行って、起動させるような作業を毎回繰り返す場合、Vagrant はかなり役に立ってくれるのではないかと思います。 まずは Vagrant の準備の仕方や考え方などを軽くまとめてみました。 VirtualBox, Vagrant のインストール まず、事前に VirtualBox を入れておきます。(Vagrant 1.1 からは必ずしも VirtualBox ではなくてもいいのですが、前述の通り今回はサーバ用途で VirtualBox を使うという前提での準備なので、VirtualBox でやります) Vagrant の 1.0 も入れたことがあるのですが、こちらは gem install vagrant で一発インストールだったのに比べ、1.1以降は専用のパッケージをインストールします。(ちなみに記事書いてる時点の最新は、1.2.2 のようです) なんか開発速度がめちゃ早いので、あとでこの記事見返したらバージョン古くなってることでしょう。 あとは普通にインストールをしていきます。 はい、インストール完了しました。
VagrantVirtualBox

You've reached the end.