• 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]

    ...
  • 裏セグメントから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の設定も必要

    ...