Successfully reported this slideshow.

シンプルなシステム構成フレームワークalnair

2

Share

Upcoming SlideShare
Puppet on AWS
Puppet on AWS
Loading in …3
×
1 of 30
1 of 30

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

シンプルなシステム構成フレームワークalnair

  1. 1. シンプルなシステム構成フレームワーク alnair
  2. 2. お前、誰よ ● naoina ● kyoto.py 主催
  3. 3. WEBサービス開発で ● デプロイサーバーの環境構築を手動でする – 今の設定がどうなっているか分からない – 2台目以降に同じ環境を構築するのが面倒 – 設定が別管理になる
  4. 4. 解決方法案 ● あきらめる ● Chefを使う ● Puppetを使う ● Kokkiを使う
  5. 5. 解決方法案 ● あきらめる → 試合終了 ● Chefを使う ● Puppetを使う ● Kokkiを使う
  6. 6. 解決方法案 ● あきらめる → 試合終了 ● Chefを使う → Ruby製、サーバーが必要 ● Puppetを使う ● Kokkiを使う
  7. 7. 解決方法案 ● あきらめる → 試合終了 ● Chefを使う → Ruby製、サーバーが必要 ● Puppetを使う → 上記 + DSL ● Kokkiを使う
  8. 8. 解決方法案 ● あきらめる → 試合終了 ● Chefを使う → Ruby製、サーバーが必要 ● Puppetを使う → 上記 + DSL ● Kokkiを使う → サーバー上で実行
  9. 9. alnair
  10. 10. alnairとは ● システム構成フレームワーク – サーバー上で実行する必要のないKokki ● Python製 ● CLIとライブラリの両方提供 – Fabricなどと組み合わせて使うことができる
  11. 11. https://github.com/naoina/alnair
  12. 12. 使い方 ● インストール ● テンプレート作成 ● パッケージインストールコマンドの設定 ● レシピの作成 ● 実際にサーバーをセットアップ
  13. 13. インストール % sudo pip install -U alnair or % sudo easy_install -U alnair
  14. 14. テンプレート作成 % alnair generate template archlinux or % alnair g template archlinux 現在のディレクトリに recipes/archlinux/common.py が作成される
  15. 15. パッケージインストールコマンドの 設定 % vim recipes/archlinux/common.py # common.py install_command = 'pacman -Sy --noconfirm'
  16. 16. レシピの作成 % alnair g recipe python recipes/archlinux/python.py が作成される
  17. 17. 実際にサーバーをセットアップ % alnair setup archlinux python ホストを聞かれるのでデプロイ先のホストを入力してGo!
  18. 18. デモ
  19. 19. ライブラリとして使う from alnair import Distribution distname = 'archlinux' with Distribution(distname) as dist: dist.setup('python')
  20. 20. デモ
  21. 21. 設定ファイルだけのデプロイ recipes/archlinux/mysql.py from alnair import Package mysql = Package() mysql.setup.config('/etc/my.cnf').contents(""" [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid """)
  22. 22. 設定ファイルだけのデプロイ % alnair config archlinux mysql or from alnair import Distribution distname = 'archlinux' with Distribution(distname) as dist: dist.config('mysql')
  23. 23. セットアップ後のコマンド実行 recipes/archlinux/mysql.py from alnair import Package, Command mysql = Package() mysql.setup.after = Command(). sudo(r'/etc/rc.d/mysqld start'). sudo(r'/etc/rc.d/mysqld stop')
  24. 24. セットアップ後のコマンド実行 % alnair setup archlinux mysql or from alnair import Distribution distname = 'archlinux' with Distribution(distname) as dist: dist.setup('mysql')
  25. 25. レシピファイル ● ただのPythonスクリプト – Pythonで出来ることはなんでも書ける
  26. 26. (まだ)できないこと ● 依存関係の解決 ● 共通処理の定義
  27. 27. 向かないこと ● 数十〜数百台のサーバーのセットアップ
  28. 28. まとめ ● サーバーにRubyを入れたくないときにalnair ● ChefやPuppetサーバーを立てたくない程度の 小規模サーバー群のセットアップにalnair ● Pythonですべてやってしまいたいときにalnair
  29. 29. 質問? https://github.com/naoina/alnair
  30. 30. ありがとうございました

×