シンプルなシステム構成フレームワーク        alnair
お前、誰よ●   naoina●   kyoto.py 主催
WEBサービス開発で●    デプロイサーバーの環境構築を手動でする    –   今の設定がどうなっているか分からない    –   2台目以降に同じ環境を構築するのが面倒    –   設定が別管理になる
解決方法案●    あきらめる●   Chefを使う●   Puppetを使う●   Kokkiを使う
解決方法案●    あきらめる → 試合終了●   Chefを使う●   Puppetを使う●   Kokkiを使う
解決方法案●    あきらめる → 試合終了●   Chefを使う → Ruby製、サーバーが必要●   Puppetを使う●   Kokkiを使う
解決方法案●    あきらめる → 試合終了●   Chefを使う → Ruby製、サーバーが必要●   Puppetを使う → 上記 + DSL●   Kokkiを使う
解決方法案●    あきらめる → 試合終了●   Chefを使う → Ruby製、サーバーが必要●   Puppetを使う → 上記 + DSL●   Kokkiを使う → サーバー上で実行
alnair
alnairとは●    システム構成フレームワーク    –   サーバー上で実行する必要のないKokki●   Python製●   CLIとライブラリの両方提供    –   Fabricなどと組み合わせて使うことができる
https://github.com/naoina/alnair
使い方●    インストール●    テンプレート作成●    パッケージインストールコマンドの設定●    レシピの作成●    実際にサーバーをセットアップ
インストール% sudo pip install -U alnair or% sudo easy_install -U alnair
テンプレート作成 % alnair generate template archlinux  or % alnair g template archlinux現在のディレクトリに recipes/archlinux/common.py が作成される
パッケージインストールコマンドの       設定% vim recipes/archlinux/common.py# common.pyinstall_command = pacman -Sy --noconfirm
レシピの作成% alnair g recipe pythonrecipes/archlinux/python.py が作成される
実際にサーバーをセットアップ% alnair setup archlinux pythonホストを聞かれるのでデプロイ先のホストを入力してGo!
デモ
ライブラリとして使うfrom alnair import Distributiondistname = archlinuxwith Distribution(distname) as dist:    dist.setup(python)
デモ
設定ファイルだけのデプロイrecipes/archlinux/mysql.pyfrom alnair import Packagemysql = Package()mysql.setup.config(/etc/my.cnf).contents...
設定ファイルだけのデプロイ% alnair config archlinux mysql orfrom alnair import Distributiondistname = archlinuxwith Distribution(distna...
セットアップ後のコマンド実行recipes/archlinux/mysql.pyfrom alnair import Package, Commandmysql = Package()mysql.setup.after = Command()....
セットアップ後のコマンド実行% alnair setup archlinux mysql orfrom alnair import Distributiondistname = archlinuxwith Distribution(distna...
レシピファイル●   ただのPythonスクリプト    –   Pythonで出来ることはなんでも書ける
(まだ)できないこと●    依存関係の解決●    共通処理の定義
向かないこと●    数十〜数百台のサーバーのセットアップ
まとめ●   サーバーにRubyを入れたくないときにalnair●   ChefやPuppetサーバーを立てたくない程度の    小規模サーバー群のセットアップにalnair●   Pythonですべてやってしまいたいときにalnair
質問?https://github.com/naoina/alnair
ありがとうございました
Upcoming SlideShare
Loading in …5
×

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

2,320 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,320
On SlideShare
0
From Embeds
0
Number of Embeds
606
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

シンプルなシステム構成フレームワーク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.pyinstall_command = pacman -Sy --noconfirm
  16. 16. レシピの作成% alnair g recipe pythonrecipes/archlinux/python.py が作成される
  17. 17. 実際にサーバーをセットアップ% alnair setup archlinux pythonホストを聞かれるのでデプロイ先のホストを入力してGo!
  18. 18. デモ
  19. 19. ライブラリとして使うfrom alnair import Distributiondistname = archlinuxwith Distribution(distname) as dist: dist.setup(python)
  20. 20. デモ
  21. 21. 設定ファイルだけのデプロイrecipes/archlinux/mysql.pyfrom alnair import Packagemysql = Package()mysql.setup.config(/etc/my.cnf).contents("""[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid""")
  22. 22. 設定ファイルだけのデプロイ% alnair config archlinux mysql orfrom alnair import Distributiondistname = archlinuxwith Distribution(distname) as dist: dist.config(mysql)
  23. 23. セットアップ後のコマンド実行recipes/archlinux/mysql.pyfrom alnair import Package, Commandmysql = 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 orfrom alnair import Distributiondistname = archlinuxwith 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. ありがとうございました

×