• Chefで既存手順のレシピを書く4(DBサーバ)

    おつかれさまです。小宮です。

    前回に引き続きdbserverのレシピについて書いていきます。
    のこってるのはmunin、zabbxとserverspecでのテストだけです。もうすこしの辛抱です。

    webと同じくバージョン固定インストールなので、外部レシピは基本的に使わない方向とする

    ・mysqlのインストールと起動と自動起動の有効化

    [shell]# cd /root/chef-repo/site-cookbooks/mysqld/recipes

    mkdir -p /root/chef-repo/site-cookbooks/mysqld/files/default/usr/local/src/rpms

    mkdir -p ../templates/default/etc/init.d

    mkdir -p ../files/default/etc/init.d

    mkdir -p ../files/default/root

    mkdir -p /root/chef-repo/site-cookbooks/mysqld/files/default/etc/logrotate.d

    mkdir -p /root/chef-repo/site-cookbooks/mysqld/files/default/opt/{backup,bin}

    scp -Cp xxx-db02:/opt/bin/mysql-back.sh /root/chef-repo/site-cookbooks/mysqld/files/default/opt/bin/

    cp -p /etc/logrotate.d/mysqld /root/chef-repo/site-cookbooks/mysqld/files/default/etc/logrotate.d/

    scp -Cp xxx-db01:/etc/init.d/mysqld ../files/default/etc/init.d/

    scp -Cp xxx-db02:/etc/my.cnf ../templates/default/etc/

    cp -p /root/.path_to_file ../files/default/root/

    cd /opt/src/rpms/

    tar czf /root/chef-repo/site-cookbooks/mysqld/files/default/usr/local/src/rpms/db-rpm.tar.gz ./db-rpm/

    tar czf /root/chef-repo/site-cookbooks/mysqld/files/default/usr/local/src/rpms/db-tools-rpm.tar.gz ./db-tools-rpm/

    tar tzf /root/chef-repo/site-cookbooks/mysqld/files/default/usr/local/src/rpms/db-rpm.tar.gz

    vi ../templates/default/etc/my.cnf

    diff /etc/my.cnf ../templates/default/etc/my.cnf

    53c53

    ...
  • Chefで既存手順のレシピを書く3(WEBサーバ)

    こんにちは。プラットフォームの小宮です。
    前回に引き続き既存手順のレシピ化をすすめていきます。あと3回くらいだと思われるので気長におつきあいください。

    今回はWEBサーバのレシピになります。
    特別なことは特にしていなくて普通のwebサーバだと思いますが、一応何してるか書いておきますと、
    apache2.2+php5.3系で中間コードキャッシュにAPCを使っていてwordpressとそのsshプラグインつかっておりAWSのS3にmountしています。
    s3mountに使うfuseが最新版からソースコードで入れる必要があり、バージョン固定のphpのパッケージが18個くらいとかありまして
    一つ一つpackageリソース書くのが面倒だったこともありましてscriptつかいました。
    scriptつかうときはnot_if忘れるとmakeとか何回も実行されて困るので注意が必要です。
    あとcd書き忘れると展開場所が認識してるとこに出ないのでその後の手順でファイルが存在しないエラーがでました。

    ・httpdのレシピを書く
    設定ファイルの準備をする
    [shell]# mkdir -p /root/chef-repo/site-cookbooks/httpd/files/default/rpms # tar cf /root/chef-repo/site-cookbooks/httpd/files/default/rpms/web-rpm.tar ./web-rpm/ # tar tf /root/chef-repo/site-cookbooks/httpd/files/default/rpms/web-rpm.tar ./web-rpm/ # cd /root/chef-repo/site-cookbooks/httpd/recipes # mkdir -p /root/chef-repo/site-cookbooks/httpd/files/default/etc/httpd/{conf,conf.d} # cp -p /opt/src/config/web/httpd.conf /root/chef-repo/site-cookbooks/httpd/files/default/etc/httpd/conf/ # vi /root/chef-repo/site-cookbooks/httpd/files/default/etc/httpd/conf/httpd.conf # mkdir -p /root/chef-repo/site-cookbooks/httpd/files/default/etc/php.d # cp -p /opt/src/config/php/php.ini /root/chef-repo/site-cookbooks/httpd/files/default/etc/ # cd /root/chef-repo/site-cookbooks/httpd/files/default/rpms # wget http://rpms.famillecollet.com/enterprise/5/olds/x86_64/php-pecl-apc-3.1.13-3.el5.remi.x86_64.rpm # cp -p /etc/php.d/apc.ini /root/chef-repo/site-cookbooks/httpd/files/default/etc/php.d/ # wget http://rpms.famillecollet.com/enterprise/5/remi/x86_64/php-pecl-ssh2-0.11.3-2.el5.remi.x86_64.rpm[/shell]
    apacheのインストールと基本設定
    [shell]# vi httpd-server.rb cookbook_file “/tmp/web-rpm.tar” do source “rpms/web-rpm.tar” mode 0644 end

    ...