Chefで既存手順のレシピを書く1(初期設定)
...こんにちは。プラットフォームの小宮です。
前回はChefでレシピを書く前のroleやdata_bagsなどの環境定義について書きました。
今回は既存手順のレシピ化ということで淡々と地味に書いていきたいと思います。注意:
scriptリソースを使うときはnot_ifまたはonly_ifを必ず書くこと(複数回実行されないように)
bash内でcdを書き忘れるとtarの解凍先パスがその後のコマンドの指定と一致しなくなるので注意
scriptリソースを使うとエラーがまともに出ないので自分でコマンドをたたいて状況を確認する必要がある
リソースのマニュアルを熟読推奨。クックブック名とその内容は以下の通り。
base_setting 初期設定など ★今回ご紹介するレシピはこちらのみです。
login-users ログインユーザ作成
httpd web関連設定
mysqld db関連設定
munin 統計グラフ設定
zabbix 監視設定レシピを書く
・base_settingのレシピを書く
使いまわしやすさを意識した結果細かく分割して書くことにしました。
☆バックアップディレクトリ作成レシピ
[shell]# cd site-cookbooks/base_setting/recipes/ # for i in bkup_dir hosts sysctl disable ntpd ntpdate mail logrotate ;do touch $i.rb ;done # vi bkup_dir.rb directory ‘/etc/.backup/’ do owner ‘root’ group ‘root’ mode ‘0755’ action :create end[/shell]AmazoneSESを使ってメール送信する(SMTPリレー)
...こんにちは。プラットフォームの小宮です。 ちょっと前にAmazoneSESを使ってSMTPリレーでメール送信の設定をしたのでその記録を公開させていただきます。
※SDKでなくSMTPリレーのほうを試します。(SDKつかうにはサーバにruby入っていてruby使う必要があるため。)
★SESの申し込みをする SESのサービスダッシュボードに「RequestProductionAccess」というボタンがあるのでそれを押すと お問い合わせ画面が出てくるので、必要な内容を入力する (名前とサービスドメインとメールアドレスとメールの用途など) Request Production Access to Simple Email Service(お問い合わせ) 入力送信すると、 リクエストありがとう、1日も早く使えるように審査するからマニュアル読んでお待ちください と英文メッセージが出る。
申請の翌日SESのダッシュボードを確認したところ、以下の標記になっていた
Your Amazon SES Sending Limits Sending Quota: send 10000 emails per 24 hour period Quota Used: 0% as of 2013-03-08 10:53 UTC+9 Max Send Rate: 5 emails/second24時間に10000通まで送ることが可能 現在の使用率は0% 最大送信レートは秒間5通
送信元は以下と教えていただいた → 会員登録時「no_reply@hoge.jp」というメールを送信、 問合せ時「support@hoge.jp」というメールを受信(転送)、
裏セグメントからyumやwget等したい場合の設定
...裏セグメントのホスト(たとえばVPCのEIPついてないのとかDBやNASなど裏においときたいやつ) から名前解決とかメールとかyumとかwgetとか時刻同期とかメールしたい! という場合の設定についてざっくりまとめさせていただきます。
とりあえず2パターンあります。 NATする(AWSの場合NATインスタンスを使う)パターンと、 グローバル通信できる管理サーバにソフトウェアを入れて解決するパターン。
★NATする(AWSの場合NATインスタンスを使う)パターン
db側はInternetGatewayつけてなくてパブリックでなくローカルなルーティングな場合、 名前解決をはじめ外に出られないです。(※) NATインスタンスを作るのも勿体ないと、複数NICがついたwebをnat化しようとしたところ、 マルチインタフェースなインスタンスはNATの出口に出来ない模様でした。 (※)最近新しくとったアカウントはVPCオンリーになっていてそちらだとグローバルIPがどんどん勝手に振られるようです。。(EIPつけざるをえない仕様)
NATインスタンス作成方法は以下URLから Amazon VPCトレーニング-NATインスタンスの作成方法 VPC詳細 -ほぼ週刊AWSマイスターシリーズ第7回- Amazon VPCでNATを使ってPublic SubnetとPrivate Subnetを分ける
一番上のスライドのとおりでnatインスタンスを作成可能。 ざっくりいうと、 VPCサブネットをつくり、 “ami-vpc-nat"AMIでNATインスタンスを作成し、 NATインスタンスの"Change Source/DestCheck"をDisableにし、 NATインスタンスにEIPをアソシエートし、 PublicSubnetのRouterTableにNATインスタンスのIDを追加し、 必要に応じてNATインスタンスのSecurityGroupを設定する
そのほか、一般的なルータ化設定方法と同様に、 インスタンス作成後にiptablesでnatのルール設定が必要になる模様。
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 10.0.0.0/16 -j MASQUERADE service iptables save iptables --list -t nat上記スライドのとおりNATインスタンスをデフォルトゲートウェイにするルーティング設定も必要 forwardingの設定も必要