LAMP環境構築itamaeレシピを作ってみる

実際に実行するレシピ setup.rb

まずはtimezoneを設定します

# timezoneの設定
execute 'set timezone' do
  command 'timedatectl set-timezone Asia/Tokyo'
end

次にfirewallの停止と無効化
開発環境なのでばっさりきります

# firewalld停止,無効化
service 'firewalld' do
  action [:disable, :stop]
end

インストールするミドルウェア別にレシピを作成しそれを読み込む
それぞれの内容は後述する
それぞれのレシピはこのレシピと同階層のcookbooks配下に
それぞれのミドルウェアのディレクトリを作成してそこに配置することとする。

include_recipe "./cookbooks/apache/default.rb"
include_recipe "./cookbooks/php/default.rb"
include_recipe "./cookbooks/mariadb/default.rb"
include_recipe "./cookbooks/phpmyadmin/default.rb"

最後に設定の反映を兼ねてApacheを起動、有効化する

# Apache起動、有効化
service 'httpd' do
  action [:start, :enable]
end

Apache設定レシピ ./cookbooks/apache/default.rb

# Apacheインストール
package 'httpd' do
  version '2.4.6'
end

# httpd.confのバックアップ
execute 'httpd.conf backup' do
    command 'mv /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org'
end

# httpd.confの転送
remote_file "/etc/httpd/conf/httpd.conf" do
  owner "root"
  group "root"
  source "/vagrant_data/httpd.conf"
end

PHP設定レシピ ./cookbooks/php/default.rb

# PHPのremiリポジトリ設定
execute 'php remi repo set' do
    command <<-EOF
rpm --import https://raw.githubusercontent.com/remicollet/remirepo/master/remi-release/RPM-GPG-KEY-remi
yum -y install yum-utils http://remi.kazukioishi.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php56
EOF
end

# PHPのインストール
package 'php' do
    version '5.6.14'
end

# PHPのプラグインをインストール
package 'php-mysqlnd php-gd php-intl php-mbstring'

# php.iniのバックアップ
execute 'php.ini backup' do
    command 'mv /etc/php.ini /etc/php.ini.org'
end

# php.iniの転送
remote_file "/etc/php.ini" do
  owner "root"
  group "root"
  source "/vagrant_data/php.ini"
end

# phpinfoの転送
remote_file "/var/www/html/info.php" do
  owner "apache"
  group "apache"
  source "/vagrant_data/info.php"
end

MariaDB設定レシピ ./cookbooks/mariadb/default.rb

# MariaDBインストール
package 'mariadb-server'

# MariaDB所有者設定
execute 'mariadb permition' do
    command <<-EOL
chown -R mysql:mysql /var/log/mariadb
chown -R mysql:mysql /var/lib/mysql
EOL
end

# my.cnfのバックアップ
execute 'my.cnf backup' do
    command 'mv /etc/my.cnf /etc/my.cnf.org'
end

# my.cnfの転送
remote_file "/etc/my.cnf" do
  owner "root"
  group "root"
  source "/vagrant_data/my.cnf"
end

# MariaDB起動、有効化
service 'mariadb' do
  action [:start, :enable]
end

# MariaDB初期設定
execute "mysql_secure_installation" do
  user "root"
  only_if "mysql -u root -e 'show databases' | grep information_schema" # パスワードが空の場合
  command <<-EOL
mysqladmin -u root password "password"
mysql -u root -ppassword -e "DELETE FROM mysql.user WHERE User='';"
mysql -u root -ppassword -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1');"
mysql -u root -ppassword -e "DROP DATABASE test;"
mysql -u root -ppassword -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';"
mysql -u root -ppassword -e "FLUSH PRIVILEGES;"
EOL
end

phpMyAdmin設定レシピ ./cookbooks/phpmyadmin/default.rb

# phpMyAdminインストール
package 'phpMyAdmin'

# phpMyAdmin権限設定
execute 'phpMyAdmin owner permition' do
  command <<-EOL
chown -R apache:apache /usr/share/phpMyAdmin/
chmod -R 700 /usr/share/phpMyAdmin/
EOL
end

# phpMyAdmin.confのバックアップ
execute 'phpMyAdmin.conf backup' do
    command 'mv /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.org'
end

# my.cnfの転送
remote_file "/etc/httpd/conf.d/phpMyAdmin.conf" do
  owner "root"
  group "root"
  source "/vagrant_data/phpMyAdmin.conf"
end

※各設定ファイルはそれぞれ/vagrant_data配下に設定しておく必要がある

あとは実行するだけ

su -
itamae local setup.rb

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA