Chefでメール送信開発環境をサクッと作る
こんにちは!エンジニアの落合です。
前回の記事で、メール送信機能における開発環境について書かせていただきました。
開発環境なので、基本的に毎回同じものを使います。chefのようなプロビジョニングが有効的です!
具体的な詳細は、前回の記事で確認していただければと思います。
今回は、Chefで簡単に送信開発環境をできるレシピを紹介したいと思います。
fileの配置
まずは、設定ファイルをあらかじめ取得しておいて、設定変更を行い、
files/default内に配置しておきます。
今回使用するファイルは以下の通りです。
recipeの作成
それでは、recipeを作成したいと思います。
まずは、postfixを起動できる状態にして、postfixの設定を変更します。
service "postfix" do supports :status => true, :restart => true, :reload => true action [ :enable, :start ] end #postfixの設定を変更 cookbook_file "/etc/aliases.regexp" do source "aliases.regexp" mode "0644" end cookbook_file "/etc/postfix/transport_maps" do source "transport_maps" mode "0644" end cookbook_file "/etc/postfix/main.cf" do source "main.cf" mode "0644" end
次にユーザーを作成して、受信できる状態にします。
## ID catchall ## PASS catchall user "catchall" do comment "catchall" home "/home/catchall" shell "/bin/bash" password "$1$ks.iXsX.$tTErfotf/Zg2n.0zZlFxl1" supports :manage_home => true end bash "catchallsetup" do cwd catpath code <<-EOH sudo su usermod -s /bin/false catchall EOH notifies :reload, 'service[postfix]' end
最後に受信できるように受信サーバーの設定を設定を行います。
yum_package "dovecot" do action :install end cookbook_file "/etc/dovecot/dovecot.conf" do source "dovecot.conf" mode "0644" end cookbook_file "/etc/dovecot/conf.d/10-auth.conf" do source "10-auth.conf" mode "0644" end cookbook_file "/etc/dovecot/conf.d/10-mail.conf" do source "10-mail.conf" mode "0644" end directory "/home/catchall/mail/.imap/INBOX" do recursive true owner "catchall" group "catchall" action :create end
最後に、dovecotを再起動すれば完璧です!
service "dovecot" do supports :status => true, :restart => true, :reload => true action [ :enable, :restart ] end
これを行ったら、rainloop等のWEBメーラーツールを使用して、受信できるような環境を用意しましょう!
それに関しての手順は、前回の記事を参照して下さい!