Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
シンプルなシステム構成フレームワーク        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,534 views

Published on

Published in: Technology
  • Be the first to comment

シンプルなシステム構成フレームワーク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. ありがとうございました

×