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

Naoya Inada
Naoya InadaWeb Developer at home
シンプルなシステム構成フレームワーク
        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.py
install_command = 'pacman -Sy --noconfirm'
レシピの作成

% alnair g recipe python



recipes/archlinux/python.py が作成される
実際にサーバーをセットアップ

% alnair setup archlinux python



ホストを聞かれるのでデプロイ先のホストを入力してGo!
デモ
ライブラリとして使う

from alnair import Distribution

distname = 'archlinux'
with Distribution(distname) as dist:
    dist.setup('python')
デモ
設定ファイルだけのデプロイ
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
""")
設定ファイルだけのデプロイ

% alnair config archlinux mysql


 or

from alnair import Distribution

distname = 'archlinux'
with Distribution(distname) as dist:
    dist.config('mysql')
セットアップ後のコマンド実行
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')
セットアップ後のコマンド実行

% alnair setup archlinux mysql


 or

from alnair import Distribution

distname = 'archlinux'
with Distribution(distname) as dist:
    dist.setup('mysql')
レシピファイル
●   ただのPythonスクリプト
    –   Pythonで出来ることはなんでも書ける
(まだ)できないこと
●
    依存関係の解決
●
    共通処理の定義
向かないこと
●
    数十〜数百台のサーバーのセットアップ
まとめ
●   サーバーにRubyを入れたくないときにalnair
●   ChefやPuppetサーバーを立てたくない程度の
    小規模サーバー群のセットアップにalnair
●   Pythonですべてやってしまいたいときにalnair
質問?

https://github.com/naoina/alnair
ありがとうございました
1 of 30

Recommended

Puppet on AWS by
Puppet on AWSPuppet on AWS
Puppet on AWSSugawara Genki
5.4K views59 slides
Webサーバ構築で心がけるべき二つのこと by
Webサーバ構築で心がけるべき二つのことWebサーバ構築で心がけるべき二つのこと
Webサーバ構築で心がけるべき二つのことTrinityT _
1.9K views26 slides
Fabricでサーバー管理をDRYにしよう by
Fabricでサーバー管理をDRYにしようFabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしようmax747
10.7K views31 slides
No SSH (@nojima; KMC関東例会) by
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)京大 マイコンクラブ
2K views37 slides
Webサーバ勉強会4 nginx で php-fpm を動かしてみた by
Webサーバ勉強会4 nginx で php-fpm を動かしてみたWebサーバ勉強会4 nginx で php-fpm を動かしてみた
Webサーバ勉強会4 nginx で php-fpm を動かしてみたdo_aki
3.8K views20 slides
2日間Fabricを触った俺が
 色々解説してみる by
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみるairtoxin Ishii
4.4K views41 slides

More Related Content

What's hot

Capistrano by
CapistranoCapistrano
CapistranoYasuharu Fukuda
1.5K views16 slides
Ansible 入門 #01 (初心者向け) by
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)Taro Hirose
6.2K views34 slides
Ansible 2.0 のサマライズとこれから by
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれからTakeshi Kuramochi
6.2K views40 slides
Puppetのススメ by
PuppetのススメPuppetのススメ
PuppetのススメGosuke Miyashita
22.8K views102 slides
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト by
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテストKen Sawada
3.6K views39 slides
ChefとPuppetの比較 by
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較Sugawara Genki
29.4K views47 slides

What's hot(20)

Ansible 入門 #01 (初心者向け) by Taro Hirose
Ansible 入門 #01 (初心者向け)Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose6.2K views
Ansible 2.0 のサマライズとこれから by Takeshi Kuramochi
Ansible 2.0 のサマライズとこれからAnsible 2.0 のサマライズとこれから
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi6.2K views
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト by Ken Sawada
Serverspecを使ってサーバ5000台のBaculaクライアントをテストServerspecを使ってサーバ5000台のBaculaクライアントをテスト
Serverspecを使ってサーバ5000台のBaculaクライアントをテスト
Ken Sawada3.6K views
ChefとPuppetの比較 by Sugawara Genki
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki29.4K views
Vagrant環境のAnsibleを速くしたい by Kazuhiro Oinuma
Vagrant環境のAnsibleを速くしたいVagrant環境のAnsibleを速くしたい
Vagrant環境のAnsibleを速くしたい
Kazuhiro Oinuma5.3K views
第1回 一撃サーバー構築シェルスクリプト勉強会 by Yasutaka Hamada
第1回 一撃サーバー構築シェルスクリプト勉強会第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada5.6K views
これからはじめるCoda2とSublime Text 2 by masaaki komori
これからはじめるCoda2とSublime Text 2これからはじめるCoda2とSublime Text 2
これからはじめるCoda2とSublime Text 2
masaaki komori5.2K views
Pythonユーザのための構成管理入門 #pyconapac by Takeshi Komiya
Pythonユーザのための構成管理入門 #pyconapacPythonユーザのための構成管理入門 #pyconapac
Pythonユーザのための構成管理入門 #pyconapac
Takeshi Komiya10.1K views
Ansibleで始めるサーバ管理勉強会(2014年10月1日) by CLARA ONLINE, Inc.
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるinfraTDD(初級編) by 佐久本正太
Ansibleで始めるinfraTDD(初級編)Ansibleで始めるinfraTDD(初級編)
Ansibleで始めるinfraTDD(初級編)
佐久本正太981 views
serverspecでサーバ環境のテストを書いてみよう by Daisuke Ikeda
serverspecでサーバ環境のテストを書いてみようserverspecでサーバ環境のテストを書いてみよう
serverspecでサーバ環境のテストを書いてみよう
Daisuke Ikeda22.3K views
Ansible handson ood2016 by Hideki Saito
Ansible handson ood2016Ansible handson ood2016
Ansible handson ood2016
Hideki Saito1.6K views
20140828 #ssmjp 社内チューニンガソンで優勝したはなし by Masahiro NAKAYAMA
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA2.3K views
Ansible ではじめるインフラのコード化入門 by Sho A
Ansible ではじめるインフラのコード化入門Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A9.2K views

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

ネットワークエンジニアのための Puppet / Chef by
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefnpsg
8.1K views57 slides
130412 kayac-cinnamon by
130412 kayac-cinnamon130412 kayac-cinnamon
130412 kayac-cinnamonYuki Shibazaki
1.2K views32 slides
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8 by
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8Satoshi Ohkubo
4.1K views27 slides
microPCFを使ってみよう by
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
1.5K views51 slides
3分間 開発環境クッキング 2012.07 #pyfes by
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfesTakeshi Komiya
5.4K views37 slides
ビルドサーバで使うDocker by
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDockerMasashi Shinbara
23.4K views58 slides

Similar to シンプルなシステム構成フレームワークalnair(20)

ネットワークエンジニアのための Puppet / Chef by npsg
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg8.1K views
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8 by Satoshi Ohkubo
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
Satoshi Ohkubo4.1K views
microPCFを使ってみよう by Hiroaki_UKAJI
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
Hiroaki_UKAJI1.5K views
3分間 開発環境クッキング 2012.07 #pyfes by Takeshi Komiya
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya5.4K views
ビルドサーバで使うDocker by Masashi Shinbara
ビルドサーバで使うDockerビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara23.4K views
Building production server on docker by Hiroshi Miura
Building production server on dockerBuilding production server on docker
Building production server on docker
Hiroshi Miura53 views
Building production server on docker by Hiroshi Miura
Building production server on dockerBuilding production server on docker
Building production server on docker
Hiroshi Miura1.2K views
恋に落ちるデプロイツール by totty jp
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
totty jp5.1K views
Dockerイメージ構築 実践テクニック by Emma Haruka Iwao
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
Emma Haruka Iwao23K views
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 by Masahito Zembutsu
 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編 Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu9.8K views
今だからこそ知りたい Docker Compose/Swarm 入門 by Masahito Zembutsu
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu23.2K views
環境構築自動化ツールのご紹介 by Etsuji Nakai
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai2.7K views
XenServerによるお手軽開発サーバ運用 by Shinya Okano
XenServerによるお手軽開発サーバ運用XenServerによるお手軽開発サーバ運用
XenServerによるお手軽開発サーバ運用
Shinya Okano4.9K views
Circle ci and docker+serverspec by Tsuyoshi Yamada
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
Tsuyoshi Yamada8.1K views
Nseg20120929 by hiro345
Nseg20120929Nseg20120929
Nseg20120929
hiro3451.2K views

More from Naoya Inada

べき等データベースマイグレーションツールmigu by
べき等データベースマイグレーションツールmiguべき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmiguNaoya Inada
1.7K views22 slides
Tokyo Otaku Mode での PayPal 活用事例 by
Tokyo Otaku Mode での PayPal 活用事例Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例Naoya Inada
996 views27 slides
kyotovim#1 by
kyotovim#1kyotovim#1
kyotovim#1Naoya Inada
2.9K views56 slides
HTML5-pronama-study by
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-studyNaoya Inada
940 views32 slides
dvcs-kyoto by
dvcs-kyotodvcs-kyoto
dvcs-kyotoNaoya Inada
1.1K views61 slides
rucs_vim LT by
rucs_vim LTrucs_vim LT
rucs_vim LTNaoya Inada
1.3K views27 slides

More from Naoya Inada(8)

べき等データベースマイグレーションツールmigu by Naoya Inada
べき等データベースマイグレーションツールmiguべき等データベースマイグレーションツールmigu
べき等データベースマイグレーションツールmigu
Naoya Inada1.7K views
Tokyo Otaku Mode での PayPal 活用事例 by Naoya Inada
Tokyo Otaku Mode での PayPal 活用事例Tokyo Otaku Mode での PayPal 活用事例
Tokyo Otaku Mode での PayPal 活用事例
Naoya Inada996 views
HTML5-pronama-study by Naoya Inada
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
Naoya Inada940 views
Python Kyoto study LT by Naoya Inada
Python Kyoto study LTPython Kyoto study LT
Python Kyoto study LT
Naoya Inada926 views

Recently uploaded

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 views26 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
90 views41 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
453 views15 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
380 views13 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things IndustriesCRI Japan, Inc.
76 views29 slides

Recently uploaded(12)

Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)

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