実際に実行するレシピ 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