vagrant + chef で moodle 環境をサクサクッと作っちゃうぞ!

2015年4月3日 at 9:17 AM

どもです。
ヨガグラマとか名乗ってるんで、たまにはプログラミング的なものでブログを更新するです。

最近、良く耳にするMOOC(MOOCs)
その関係で某大学様よりmoodlemaharaの開発をご依頼頂いておりました。
無事に機能拡張とプラグイン作成も終わって、少しホッとしているところです(ワイワイ。

開発するに当たって今回、moodleの環境をvagrantでサクっと作成しました。
その辺を備忘録含め、書いていきます。

スポンサーリンク



はじめに

vagrantchefについては、前回の記事を参考にされてください。

[vagrant + chef-solo + berkshelf で php と mysql な環境(x2台)を作る]
http://takafumikawano.net/development_php_mysql_at_vagrant_chef-solo_server/


ファイルの準備

任意のディレクトリにvagrant、berkshelfのファイルを用意します。

# sora at indra.local in ~/moodle_test
$ ls
Berksfile Vagrantfile


Berksfile:

site :opscode
cookbook “apt”
cookbook ‘build-essential’
cookbook “git”
cookbook “vim”
cookbook “apache2”
cookbook “php”
cookbook ‘mysql’, ‘5.5.3’


Vagrantfile:

# -*- mode: ruby -*-

VAGRANTFILE_API_VERSION = “2”

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = “ubuntu14.04”
config.vm.box_url = “https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box”

config.vm.define “moo” do |node|
config.vm.box = “ubuntu14.04”
node.vm.hostname = “moo”
node.vm.network :private_network, ip: “192.168.33.66”
end

config.vm.provider “virtualbox” do |vb|
vb.customize [“modifyvm”, :id, “–memory”, “1024”]
end

config.omnibus.chef_version = :latest
config.berkshelf.enabled = true
config.vm.provision :chef_solo do |chef|
chef.log_level = :debug
chef.run_list = [
“recipe[apt]”,
“recipe[apache2]”,
“recipe[apache2::mod_php5]”,
“recipe[apache2::mod_rewrite]”,
“recipe[php]”,
“recipe[mysql::server]”,
“recipe[mysql::client]”,
“recipe[vim]”,
“recipe[git]”
]

chef.json = {
:apache => {
:default_site_enabled => true
},
mysql: {
server_root_password: “password”,
bind_address: “127.0.0.1”
}
}
end
end


後は、vagrant upするだけです。

$ vagrant up


ログインしちゃいましょう!

$ vagrant ssh



moodleの構築

phpとmysqlのバージョンの確認をしておきます。

[email protected]:~$ php -v
PHP 5.5.9-1ubuntu4.7 (cli) (built: Mar 16 2015 20:47:39)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies

[email protected]:~$ mysql –version
mysql Ver 14.14 Distrib 5.5.41, for debian-linux-gnu (x86_64) using readline 6.3



apacheも確認。
今回、IPアドレスを192.168.33.66に設定しているんで、http://192.168.33.66/にブラウザからアクセスして確認します。
moodle001

うん、元気に動いてる!
phpもmysqlもapacheも元気に動いているんで、安心してmoodleを構築していきます。


moodleを環境に落としてきて、展開していきます。
(777のところは作業を簡素化するためのもの。
 良い子はマネしちゃダメだからね!www)

[email protected]:~$ cd /var/www/
[email protected]:/var/www$ sudo chmod 777 -R html
[email protected]:/var/www$ cd html
[email protected]:/var/www/html$ sudo apt-get install unzip
[email protected]:/var/www/html$ sudo wget https://download.moodle.org/download.php/direct/stable28/moodle-latest-28.zip
[email protected]:/var/www/html$ unzip moodle-latest-28.zip
[email protected]:/var/www/html$ cd ../
[email protected]:/var/www$ sudo chmod 777 -R html
[email protected]:/var/www$ cd html



mysqlにmoodleのデータベースとユーザを作成します。

[email protected]:/var/www/html$ mysql -u root -p
mysql> create database moodle;
mysql> grant all privileges on moodle.* to [email protected]”%” identified by ” with grant option;



あとは、moodleを使ってインストール処理を行っていきます。
ブラウザよりhttp://192.168.33.66/moodle/install.phpにアクセスして進めていくだけです。
(かんたん〜♪)

と、その前に、いくつか足りないものがあるのでapt-getで追加しておきます。

[email protected]:/var/www/html$ sudo apt-get install php5-curl php5-mysql php5-gd php5-xmlrpc php5-intl
[email protected]:/var/www/html$ sudo service apache2 restart
[email protected]:/var/www/html$ sudo chmod 777 /var/www



ブラウザからのインストール作業が無事に終わると、http://192.168.33.66/moodle/でmoodleにアクセスすることができます。

moodle002
(わーい!バッチリ)

と作業は全部でこれだけ。
簡単ですね!


終わりに

当初、お話を頂いた時にはmoodlemaharaも知らずドキドキしていたのですが、ソース見ると想像していたよりもずっとキレイで開発しやすかったです。
(まま大変なとこも当然ありましたが・・、そこは、僕もphpに慣れてきたのもあってだな・・)
使用感についても、概念を理解して慣れてくるとmoodlemaharaもとても使いやすく感じました。
色んな大学で広がっている理由が解ります。
開発しながら“これはヨガでも使えるんじゃないのか”と何度も思ってました。
(いつかほんとに使ってみようっと♪)

もしも現在、利用を考えられているのでしたら、この記事を参考にサクりと環境を作って一度試してみてはいかがでしょうか。
そして、さらに使いやすく、便利にといったご要望がございましたら、なんなりとご連絡ください!
直ぐにでもお伺いいたします(^^;

最後に、もう少しだけ営業ww
現在、4月末までの春のご紹介キャンペーンを実施中です。
ご紹介頂き、案件が確定した場合、ご紹介者の方に無料で健康相談+ヨガのクラスを1レッスン無料にさせて頂きます。
また、逆にヨガクラスにご紹介頂いたご紹介者の方には、システムのご相談を無料で受付させて頂きます。


さて、次回はmaharaの環境構築でも書こうかな。
ヨガグラマ、今日もガンバリマス。

ではでは。

あわせてお読みください