今回の目標を確認

今回の目標を確認します。

  • rootパスワードの変更
  • SSH接続の設定変更
  • sudoの設定
  • 一般ユーザーの追加
  • システムのアップデート
  • iptablesの設定
  • WEBサーバーの設定
  • WEBページの設定
  • マルチドメインの設定
  • PHPの設定
  • MySQLの設定
  • Postfix/Dovecot/Postfix Adminの設定

メールを設定する前に

メールを設定するには、いくつかのアプリケーションインストールする必要があります。

Postfix 送信用メールサーバー
Dovecot 受信用メールサーバー
Postfix Admin メールのユーザーやドメインをGUIで管理するツール

設定ファイルの収集

仮インストールして設定ファイルを集めます。
mailsetというCookbookを作成します。

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/recipes/default.rb

~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json

仮想環境に反映させて、データを手に入れます。

必要なファイル

必要なファイルは以下のものになります。

Postfix

/etc/postfix/main.cf
/etc/postfix/master.cf

Dovecot

/etc/dovecot/conf.d/10-mail.conf
/etc/dovecot/conf.d/20-pop3.conf
/etc/dovecot/conf.d/10-auth.conf
/etc/dovecot/conf.d/10-master.conf

Postfix Adminは、ファイルをダウンロードして、解凍すれば、設定ファイルを手に入れられます。

postfixadmin-2.91.tar.gz

Postfix Admin

/var/www/postfixadmin/config.inc.php
/var/www/postfixadmin/backup.php

templatesに入れる

これらを集めたら、とりあえず拡張子をerbに変えて、templatesディレクトリに入れましょう。

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default

Database Cookbookのインストール

メールの設定に、データベースを使います。
recipe上で、MySQLのデータベースユーザーを作成する必要があります。
DatabaseというサードパーティCookbookで設定します。

database Cookbook – Chef Supermarket

Cookbookのバージョンを指定

いつものようにBerksfileに追記したいのですが、注意が必要です。

あまり分かっていませんが、現時点でのdatabase Cookbookの最新版である2.3.0では、上手く使えませんでした。
以前、使ったときは上手くいっていたので、仕様が変わったのかもしれません。
(どなたか、知っている方がいたら、教えてください)

そこで、バージョンを指定してインストールします。

~/vagrantdir/sakuravps/chef-repo/Berksfile

設定ファイルの変更

取得したファイルを書き換えます。
以下のサイトを参考にさせていただきました。
ありがとうございます。

水銀室 PostfixとDovecotでメールサーバを構築する -CentOS最短構築支援-

Postfix 基本設定

メールサーバー構築(Postfix+Dovecot) – CentOSで自宅サーバー構築

Postfix + Dovecot 2 + PostfixAdmin + MySQL [がらくたネット]

ベリーキュート Blog » Blog Archive » PostfixAdminでバーチャルメールの構築

CentOS Postfixの基本設定

他多数

Postfixのファイル

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/main.cf.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/master.cf.erb

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/mysql_virtual_alias_maps.cf.erb

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/mysql_virtual_domains_maps.cf.erb

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/mysql_virtual_mailbox_maps.cf.erb

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/mysql_virtual_mailbox_limit_maps.cf.erb

Dovecotのファイル

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/dovecot-mysql.conf.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/10-mail.conf.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/20-pop3.conf.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/10-auth.conf.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/10-master.conf.erb

(新規作成)
~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/auth-mysql.conf.ext.erb

Postfix Adminのファイル

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/config.inc.php.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/backup.php.erb

.htaccess/.htpasswdの設置

一般のユーザーが、Postfix Adminアクセスできてしまうのは良くないので、想定している環境以外からアクセスできないように.htaccessを設定します。
念のため.htpasswdも設定します。

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/htaccess.erb

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/templates/default/htpasswd.erb

メール専用のユーザー

メールを設定するためには、Linuxのユーザーが必要になります。

accountと同じようにdata_bagで処理したいと思います。
メール専用なので、accountとは別にmailディレクトリを作成しました。

~/vagrantdir/sakuravps/chef-repo/data_bags/mail/vuser.json

メールユーザーを識別のためにgiduidを使うので、明示的に指定します。

recipe

仮インストールの記述は忘れて、新しく書いていきます。
templateのファイルが多いので、少し長く見えます。

~/vagrantdir/sakuravps/chef-repo/site-cookbooks/mailset/recipes/default.rb

nodes

nodes/sakuravps.jsonrecipeなどを追記します。
postfixallowip000.000.000.000にはアクセスを許可するIPアドレスを入れてください。
postfixhtpasswdには、コマンドラインで生成したものや、下記のWEBサービスなどで作成したものを入れてください。

.htaccess ファイルを簡単作成「.htaccess Editor」

htpasswdファイル生成(作成)

.htpasswd生成ツール(MD5対応)|株式会社エン・PCサービス|システム開発・Webサイト制作・ITコンサルティング

~/vagrantdir/sakuravps/chef-repo/nodes/sakuravps.json

Postfix Adminの初期設定

ブラウザからアクセスして、初期設定をします。
この段階では、仮想環境での作業ですからhostsファイル書き換えてアクセスすると良いでしょう。

c:¥windows¥system32¥drivers¥etc¥hosts

setup passwordの設定

Postfix Adminをインストールしたアドレスのsetup.phpにアクセスし、setup passwordを設定します。

http://exmaple.com/postfix

cygwin-chef-sakura6_01

$CONF[‘setup_password’]が表示されるので、サーバーにアクセスしてconfig.inc.phpを書き換えます。

cygwin-chef-sakura6_02

そのあと、管理者登録を行います。
login.phpに移動して、管理者としてログインできれば完了です。

この設定は、本番環境でも行う必要があります。

さくらVPSへ

さくらVPS契約が完了したら、コントロールパネルにログインし、仮想サーバ操作からサーバーを起動します。

さくらVPSにknife solo prepareを実行するために~/.ssh/configに追記します。
[さくらVPSのIP]には、契約したIPアドレスを入れてください。

~/.ssh/config

これは、仮想環境で行ったことと同じです。

nodesの新しいファイルに、sakuravps.jsonの内容をコピーします。

~/vagrantdir/sakuravps/chef-repo/nodes/[さくらVPSのIP].json

反映してみましょう。
何度かパスワードを聞かれますが、コピペして進めてください。
10回くらい聞かれます)

無料期間とDNSについて

すでにさくらVPSを契約している方もおられると思いますが、2週間お試し無料期間中は、Port25(メール送信用ポート)が使えません。
メールの送信テストの際は、本契約して起きましょう。
また、DNSのAレコード、MXレコードの設定を忘れないようにしてください。

エラーについて

さくらVPSを初期化(OS再インストール)して、Chefを実行しようとすると、エラーがでる場合があります。
明確な理由が分かりませんでしたが、一定期間経つとアクセスできると思います。
(OS再インストールが、まだ終わっていなかったというオチだと嫌ですね…)

そのあと、以下のようなエラーが出ることがあります。

これは以下のコマンドで解消する必要があります。

GitHubへ

今回、設定したrecipeGitHubにアップしておきます。

https://github.com/tukumemorisan/sakuravps

最後まで見ていただき、ありがとうございました。
また、ご不明な点、間違いなどありましたらご連絡ください。

それでは、またねー。