recipe でよく使うコマンド
recipeでよく使うコマンドのメモです。
パッケージインストール
NTPサーバの例
%w{ ntp }.each do |pkg| package pkg do action :install end end
サービスの起動
service "ntpd" do action [:enable, :start] end
テンプレートファイル切り替え
template "/etc/ntp.conf" do source "ntp.conf.erb" user "root" group "root" mode 0644 end
コマンド実行
execute "ntpdate ntp.nict.jp" do command "ntpdate ntp.nict.jp" user "root" group "root" end
コマンド連続実行
zabbixでの例
bash "create user, database" do code <<-EOH mysql -u root -e "create database zabbix character set utf8 collate utf8_bin;" mysql -u root -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';" mysql -u root -e "flush privileges;" EOH end
rpmファイルのインストール
nginxの場合
remote_file "#{Chef::Config[:file_cache_path]}/nginx-release-rhel-6-0.el6.ngx.noarch.rpm" do source "http://nginx.org/packages/rhel/6/noarch/RPMS/nginx-release-rhel-6-0.el6.ngx.noarch.rpm" not_if "rpm -qa | grep -q '^nginx-release'" action :create notifies :install, "rpm_package[nginx-release]", :immediately end rpm_package "nginx-release" do source "#{Chef::Config[:file_cache_path]}/nginx-release-rhel-6-0.el6.ngx.noarch.rpm" action :nothing end
githubのリポジトリを入れる
%w{ https://github.com/k2la/tuning.git }.each do |repo| file = repo.split("/")[-1].split(".")[0] git "/home/vagrant/#{file}" do repository repo revision "master" user "vagrant" group "vagrant" action :sync end end