Chef Soloローカル開発環境の自動構築  ~仮想サーバ起動編~

Chef Soloとは・・・・?
中規模以上のシステムでの利用を想定したChef Server/Chef Clientモデルが中央集権の
サーバーやデータベースを必要とするのに対して、Chef Soloはサーバもクライアントも必要とせず、コマンドとして実装される。Chefのようにサーバ構成を自動化するツールは一般的に「プロビジョニング(構成)ツール」と呼ばれるが、最近このプロビジョニングツールの世界では、Vagrantを併用するのが定番になっている。

 

1. VirtualBoxとBagrantをインストール
* VirtualBox ダウンロードURL
   http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html
* Vagrant ダウンロードURL
   https://www.vagrantup.com/downloads.html

Vagrant用のOSイメージは「box」と呼ばれ、インターネット上で公開されているものを利用することもできる。インターネット上で公開されているものとしては、Vagrantbox.esというサイト、あるいはChef社によるプロジェクトBentoなどがあり、自作のbox以外を使う場合は、そのboxが安全なのかどうか自身で検証する必要がある。ここでは、Bentoで公開されているCentOSを使用。

CentOSの最新バージョンの有無についてはBentoプロジェクトサイトを参照。
https://github.com/chef/bento

 

2. 仮想サーバを起動させる
Current Baseboxesの箇所のVirtualBoxの一覧の中から「opscode-centos-6.5」のURLをコピーして、vagrant box add [boxの名前(任意の名前)] [boxのURL]コマンド実行しイメージを取得。

vagrant box add opscode-centos6.5 https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_centos-6.5_chef-provisionerless.box


3. 仮想サーバを初期化(Vagrantfileを作成)
vagrant init opscode-centos-6.5
vagrant halt ・・・・ 仮想サーバを止めたい場合)
vagrant destroy・・・仮想サーバを破棄したい場合)

 VagrantfileにプライベートネットワークのIPアドレスを追記
config.vm.box = "opscode-centos6.5"
config.vm.network "private_network", ip: "192.168.33.10"

 

4. 仮想サーバを起動
vagrant up

 

Laravel Homestead

Laravel Homestead でLaravel5.3の開発環境の構築を行う
Laravelには簡単にLaravel開発環境を構築できる「Laravel Homestead」と呼ばれる、
公式VagrantBoxが用意されている。今回は、Vagrantを用いてLaravel5.3の開発環境の構築を行う。

 

1. Laravel Homestead のインストールを実行する
Laravel Homesteadの利用には、統合開発環境としてグローバルで環境を共有する方法と、
プロジェクトごとに環境を構築する方法の2種類があり、
それぞれVirtualBoxVagrantのインストール後に実行する。
Windows環境の軸にコマンドを実行している。
次のコマンドでhomesteadをboxに追加する。

(ネットワーク環境によるが、20分ほどかかる)      

Windows環境でgitコマンド使えるようにする必要があるので、
以下サイトよりインストーラーをダウンロードし、exeファイルを実行する。
https://git-scm.com/download/win

vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead

 

2. Homesteadに含まれるinit.shを実行する
clone実行後、Homesteadに含まれるinit.shを実行。
実行後、ホームディレクトリに.homesteadディレクトリが設置され、
設定ファイルのHomestead.yamlが作成される。C:\Vagrant\Homestead\src\stubs\Homestead.yaml
cd ./Homestead

bash init.sh

 

3. シェルスクリプトを追加
Homestead.yamlと同じ階層にafter.shを設置して、実行したいスクリプトを記述すると、vagrant環境実行時にHomestead環境に反映される。
今回は、PHPやOSのタイムゾーンを日本時間に設定されるように記述しておく。

≪after.shの内容≫
===========================
#!/bin/sh
sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
sudo locale-gen ja_JP.UTF-8
sudo /usr/sbin/update-locale LANG=ja_JP.UTF-8

grep '^date.timezone = Asia/Tokyo' /etc/php5/fpm/php.ini
if [ $? -eq 1 ]; then
sudo cat >> /etc/php5/fpm/php.ini << "EOF"
date.timezone = Asia/Tokyo
mbstring.language = Japanese
EOF
fi
===========================

 

4. vagrant up を実行する
Laravel Homestead環境の構築を実行する
vagrant up

vagrant up実行時に以下のようなエラーメッセージが表示される
=================================
Bringing machine 'homestead-7' up with 'virtualbox' provider...
There are errors in the configuration of this machine. Please fix
the following errors and try again:

vm:
* The host path of the shared folder is missing: ~/Code
=================================

C:\Users\plus_ の配下に「Code」ディレクトを作成すれば解決する

※これでLaravel開発環境の構築が完了※

 

 

 

VirtualBox Zabbix3.0 エージェント構築

1. Zabbixエージェントの構築

* Zabbixサーバ
  統合監視するサーバで、Zabbixエージェントから送信されるデータを収集監視する
  IPアドレス ・・・ 192.168.33.12
* Zabbixエージェント(※このサーバーが作業対象)
  Zabbixサーバにサーバ稼働情報を送信する

  IPアドレス ・・・ 192.168.33.10

 

2. Zabbix 3.0 のインストール
Zabbixのリポジトリを追加
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum -y install zabbix-agent
yum -y install zabbix-get

 

Zabbix の yumリポジトリyum update でアップデートされないように無効化しておく
vim /etc/yum.repos.d/zabbix.repo

[zabbix]
enabled=1

enabled=0

[zabbix-non-supported]
enabled=1

enabled=0

 

3. zabbix_agentd.conf の編集
# Zabbixサーバからのリモートコマンドを許可
- EnableRemoteCommands=0
+ EnableRemoteCommands=1

# ZabbixサーバのIPアドレスを設定
- Server=127.0.0.1
+ Server=192.168.33.12

# アクティブチェック先。Zabbixサーバを指定しておく
- ServerActive=127.0.0.1
+ ServerActive=192.168.33.12

 

4. Zabbixエージェントの起動と自動起動設定
systemctl start zabbix-agent
systemctl enable zabbix-agent

 

5. Zabbixサーバ 疎通テスト
Zabbixサーバ(192.168.33.12)側で以下のコマンドを実行し、
Zabbixエージェント(192.168.33.10)のバージョンが表示されれば疎通OK
zabbix_get -s 192.168.33.10 -k agent.version
3.0.1
  

VirtualBox Zabbix3.0 インストール構築

2016年2月16日、Zabbix3.0がリリースされました。

今回のバージョンアップでは、WEBインターフェースデザインの一新、通信の暗号化、予測検知機能など、100以上の機能改善が行われました。

5 What's new in Zabbix 3.0.0 | Zabbix Documentation 3.0

 

1. Zabbix 3.0 のインストール
Zabbixのリポジトリを追加
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
yum -y install zabbix-agent
yum -y install zabbix-get

Zabbix の yumリポジトリyum update でアップデートされないように無効化しておく
vim /etc/yum.repos.d/zabbix.repo

[zabbix]
enabled=1
      ↓
enabled=0

[zabbix-non-supported]
enabled=1
      ↓
enabled=0

 

2. Zabbix3.0 用のDBを構築
mysql -u root -p;
create database zabbix default character set utf8;
grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
flush privileges;
exit;
 

Zabbix3.0 用のDBスキーマとデータをインポート
cd /usr/share/doc/zabbix-server-mysql-3.0.1/
zcat create.sql.gz | mysql -uroot -p zabbix

 

3. Zabbixサーバの設定と起動
vim /etc/zabbix/zabbix_server.conf
# DBPassword=
       ↓
DBPassword=password

 

4. Apacheの設定
vim /etc/httpd/conf.d/zabbix.conf

# php_value date.timezone Europe/Riga

php_value date.timezone Asia/Tokyo


5. Zabbixサーバの起動と自動起動設定
systemctl start zabbix-server
systemctl enable zabbix-server


6. Apacheの再起動
service httpd restart

 

7. Zabbixエージェントの動作確認
zabbix_get -s 127.0.0.1 -k agent.version
3.0.1  ←  バージョンが表示されればOK

 

8. Zabbix 接続テスト & 初期設定
http://******/zabbix/

 

 

 

 

VirtualBox php5.6 LAMP環境の構築

VirtualBox CentOS 7 に LAMP(php5.6)環境を構築する手順について

1. Apacheのインストール
yum -y install httpd
httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Nov 19 2015 21:43:13


2.MySQL Community Serverのインストール
無料で利用できる MySQL Community Server を利用。
MySQLyum installコマンドでインストールするが、MySQLCentOS/RHELyumリポジトリにはない。
MySQLyumでインストールするには、MySQL公式のyumリポジトリを追加必要がある。

MySQLリポジトリの追加を以下のコマンドにより実行
yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

 

リポジトリをインストールできたらMySQL Community Serveをインストール。
パッケージ名はmysql-server or mysql-community-server
yum -y install mysql-server
yum -y install mysql-community-server
mysqld --version
mysqld Ver 5.6.28 for Linux on x86_64 (MySQL Community Server (GPL))

/etc/my.conf に以下設定を追記。
MySQLのデフォルト文字コードUTF-8に設定しておく事。
また、ストレージエンジンはInnoDBを使用する事。
**********************************************************
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

#log=/var/log/mysql.log

#default-character-set=utf8
character-set-server=utf8
skip-character-set-client-handshake

innodb_file_per_table
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_log_files_in_group=2

[mysqld_safe]
log-error=/var/log/mysqld-error.log
pid-file=/var/run/mysqld/mysqld.pid
**********************************************************


3.PHP5.6のインストール
epelとremiのリポジトリを追加。
*CentOS 6.5 (6系)用
rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

*CentOS 7.0用
rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64/e/epel-release-7-9.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum listでphp5.6がインストールできるか確認。
yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

php5.6をインストール
yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

php.ini の timezone 設定
vim /etc/php.ini
date.timezone = Asia/Tokyo
cp /usr/share/zoneinfo/Japan /etc/localtime


その他のパッケージをインストール
yum -y install fping iksemel net-snmp-libs openldap curl unixODBC OpenIPMI-libs libssh2


Apacheを起動
service httpd start

 

mysqlを起動
service mysqld start


chkconfig設定
chkconfig httpd on
chkconfig mysqld on

PHP Framework Laravelのインストール

1. Composerのインストール

ライブラリの依存関係を管理するツール
あるライブラリをインストールする前に、特定のライブラリをインストールしなければいけないなどの、
依存関係を自動的にインストールしてくれる便利なツール

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

 

2. php-mcryptをインストールしておく

Laravelをインストールを試みた際、php-mcryptがインストールさせていないと、

Laravelのインストールが正常に終了せず、ブラウザからHTTPアクセスを行うと

以下のようなエラーメッセージが出てしまう。

…vendor/autoload.php): failed to open stream: No such file or directory 

 

このエラーメッセージの解決策として、以下のコマンドを実行し、

php-mcryptを事前にインストールしておくこと。

yum install --enablerepo=remi,epel,ius php-mcrypt

 

3. Laravelのインストール

Composer Create-Projectによるインストール

/var/www/html/hoce.co.jp/laravel 配下にLaravelがインストールされる

composer create-project laravel/laravel /var/www/html/hoge.co.jp/laravel --prefer-dist

 

Laravelではパーミッションの設定が必要。
storageとvendorフォルダー下にapacheユーザーからの書き込み権限を設定しておく。

chmod -R 777 /var/www/html/hoge.co.jp/laravel/storage

 

 

Mecabのインストール

1. MeCabのインストール

wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar zxfv mecab-0.996.tar.gz
cd mecab-0.996
./configure --enable-utf8-only
make
make install

 

2. 標準辞書 IPAdicのインストール

wget http://sourceforge.net/projects/mecab/files/mecab-ipadic/2.7.0-20070801/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-mecab-config=/usr/local/bin/mecab-config --prefix=/usr/local/ --with-charset=utf8
make
make install

 

MeCab用の辞書が存在する事を確認

more /usr/local/etc/mecabrc 

 

3. php_mecabのインストール

wget https://github.com/downloads/rsky/php-mecab/php-mecab-0.5.0.tgz
tar xzvf php-mecab-0.5.0.tgz
cd php-mecab-0.5.0
phpize
./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
make

make test
make install

 

以下のようなメッセージが表示される

Installing shared extensions:     /usr/lib64/php/modules/

 

以下のコマンドでmecab.soというファイルができていることを確認
ls -l /usr/lib64/php/modules/mecab.so

 

mecab.soを追加

vim /etc/php.ini

extension=mecab.so

 

4. Apache 再起動

 service httpd restart