Ansible/Vagrantでアドテク環境を最速構築

3,581 views

Published on

ほぼAnsibleのお話。

Published in: Technology

Ansible/Vagrantでアドテク環境を最速構築

  1. 1. Ansible/Vagrantで アドテク環境を最速構築
  2. 2. 自己紹介 マーベリック株式会社 プロダクトグループ オープンユニットマネージャー 池田英司 Github : https://github.com/pky Wiki : http://wiki.pky.jp Blog : http://pky.jp
  3. 3. 今日の内容 数百台のアドテクサーバを構築するために Vagrantをdestroyしてupして、 Ansible流して ServerSpec走らせて。 の繰り返しをしてて気づいたことを いくつか。
  4. 4. まずは
  5. 5. Vagrant/Ansible
  6. 6. Vagrant みんなとっくに使いこなしてるだろうからスルー
  7. 7. そんなわけでほぼ、Ansibleのお話
  8. 8. Ansible
  9. 9. 今回、OSのチューニングからミドルウェア のインストール、デプロイまで全部Ansible でやりました。
  10. 10. 特徴
  11. 11. いらない Agent Database Daemons Listen Port
  12. 12. いいところ  クライアント側には何もインストー ルする必要がない
  13. 13. いいところ クライアント側には何もインストー ルする必要がない  sshがつながれば使える 
  14. 14. いいところ クライアント側には何もインストー ルする必要がない  sshがつながれば使える   構成管理ツールにもデプロイツール にも使える
  15. 15. いいところ クライアント側には何もインストー ルする必要がない  sshがつながれば使える  構成管理ツールにもデプロイツール にも使える  Yaml書くだけの簡単設定 
  16. 16. いいところ クライアント側には何もインストー ルする必要がない  sshがつながれば使える  構成管理ツールにもデプロイツール にも使える  Yaml書くだけの簡単設定  Chefに挫折した私でも覚えれた 
  17. 17. 自分の構成
  18. 18. いろいろ
  19. 19. できるかぎりModuleを使う めんどくさくてもShellやCommandじゃなく てなんかしらのModuleを使うようにする Module > Command > Shell
  20. 20. Vagrant destroyをあまり使わない $ vagrant destroy –f $ vagrant up のようにサクッと壊して作ってを繰 り返すよりAnsibleの上書きを多めに。
  21. 21. ignore_errors: yesを使う - name: password shell: cat /root/.mysql_secret | awk '{ print $NF }' register: mysql_passwd - name: check MySQL root password shell: mysqlshow -uroot -p{{ mysql_passwd.stdout }} register: root_check ignore_errors: yes - name: set MySQL root password command: | mysql --connect-expired-password -uroot -p{{ mysql_passwd.stdout }} -e "set password for root@'{{ item }}' = PASSWORD('{{mysql_root_passwd}}')" creates=/root/.my.cnf with_items: - localhost when: root_check.stderr.find('deniend') != -1 or root_check.stderr.find('expired.') != -1
  22. 22. forksを設定する 並列プロセス数の値 デフォルトだと5でとても少ない。 25〜50とかでも平気そう。 500でも大丈夫らしい。 $ ansible –I dev -m command -a "sudo service nginx status” all –forks 50
  23. 23. 怖い時は --checkでdryrun  --stepで1つずつ実行 
  24. 24. できるかぎりAnsibleで  1サーバの修正でも出来る限り Ansibleを修正して流すように  ドキュメント代わりに、ログ代わり に  一回しかやらないと思っても絶対ま たやる
  25. 25. ご清聴 ありがとうございました。

×