狠狠撸
Submit Search
Fabric Essentials
Nov 11, 2013
22 likes
7,182 views
Yoshinari Takaoka
Fabric の基礎/入門/使い方 と現状の社内プラクティス
Read more
1 of 44
Download now
Downloaded 42 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Ad
Recommended
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
贵补产谤颈肠でサーバー管理を顿搁驰にしよう
max747
?
kyoto.py in 高槻
2日間Fabricを触った俺か?? 色々解説してみる
2日間Fabricを触った俺か?? 色々解説してみる
airtoxin Ishii
?
Fabric
颁丑别蹿と笔耻辫辫别迟の比较
颁丑别蹿と笔耻辫辫别迟の比较
Sugawara Genki
?
笔耻辫辫别迟のススメ
笔耻辫辫别迟のススメ
Gosuke Miyashita
?
础苍蝉颈产濒别入门
础苍蝉颈产濒别入门
Daiki Hayakawa
?
罢谤颈蹿辞谤迟の社内勉强会で発表した资料です
Chef の気まぐれ環境構築 ?季節の Capistrano を添えて? #jawsug
Chef の気まぐれ環境構築 ?季節の Capistrano を添えて? #jawsug
Takeshi Komiya
?
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
?
2015/09/10 「Ansible 入門 #01 (初心者向け) 」の資料です。 ハンズオンの答え => https://github.com/uorat/ansible-handson.git https://atnd.org/events/68155
础苍蝉颈产濒别入门...?
础苍蝉颈产濒别入门...?
shirou wakayama
?
Ansible 紹介 at #pyfes 2013.11
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
CLARA, Inc.
?
2014年10月1日にクララオンラインで開催した Ansible 勉強会の資料です。 グローバルソリューション事業部 ソリューションビジネスグループ吉村 真輝
Puppet on AWS
Puppet on AWS
Sugawara Genki
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?
第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料です。
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
ネットワークプログラマビリティ勉強会 #1 http://network-programmability.connpass.com/event/9004/
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料です。
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
2014/09/06 実施の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。
奥别产サーバ构筑で心がけるべき二つのこと
奥别产サーバ构筑で心がけるべき二つのこと
TrinityT _
?
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
atk1234
?
OSC Tokyo fall 2015のLTで発表した資料です
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
?
Ansible、Vagrant、Serverspec などを用いた 「インフラのコード化」 手法について、初心者向けに解説します。
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
?
Lisp Tutorial最終回。コンパイラとかパッケージングとか、実際にツールを作ってう時に必須になりそうな部分を解説します。あと、おまけで賛否両論なloopマクロについてちょこっとまとめ。最後にお勧めの書籍とか紹介してからおしまいです。
Apache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
?
OSC2015 Tokyo/Spring #osc15tk 2015年2月28日 14:00 - 明星大学 202 号室
クックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
?
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
?
社内チューニンガソンで優勝したはなし @ #ssmjp 20140828
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
?
Common Lispのライブラリである clsqlを使ってRDBMSにアクセスする方法の基本部分をお勉強します。意外と簡単にアクセスできちゃうし、clsqlはよく出来てるのでデータのハンドリングとかでも楽できちゃいますよ。あとはプログラマの工夫次第でいくらでも。
NDS#31
NDS#31
hayajo Imai
?
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
?
お手軽并列処理
お手軽并列処理
博文 斉藤
?
今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿
Masahiro NAKAYAMA
?
今日から使い始める颁丑别蹿 2013-03-29 Xtone Ltd. ピザ会(without pizza><) Aki / @nekoruri
シンプルなシステム构成フレームワーク补濒苍补颈谤
シンプルなシステム构成フレームワーク补濒苍补颈谤
Naoya Inada
?
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
?
Okinawa Open Days 2016 Ansible Hands-on
Fab
Fab
エンジニア勉強会 エスキュービズム
?
how to use fabfile.py
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
Sho Shimauchi
?
2013/07/27 PyFes で話した Fabric のスライドです。
More Related Content
What's hot
(20)
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
CLARA, Inc.
?
2014年10月1日にクララオンラインで開催した Ansible 勉強会の資料です。 グローバルソリューション事業部 ソリューションビジネスグループ吉村 真輝
Puppet on AWS
Puppet on AWS
Sugawara Genki
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?
第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料です。
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
ネットワークプログラマビリティ勉強会 #1 http://network-programmability.connpass.com/event/9004/
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料です。
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
2014/09/06 実施の第1回 一撃サーバー構築シェルスクリプト勉強会 発表資料です。
奥别产サーバ构筑で心がけるべき二つのこと
奥别产サーバ构筑で心がけるべき二つのこと
TrinityT _
?
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
atk1234
?
OSC Tokyo fall 2015のLTで発表した資料です
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
?
Ansible、Vagrant、Serverspec などを用いた 「インフラのコード化」 手法について、初心者向けに解説します。
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
?
Lisp Tutorial最終回。コンパイラとかパッケージングとか、実際にツールを作ってう時に必須になりそうな部分を解説します。あと、おまけで賛否両論なloopマクロについてちょこっとまとめ。最後にお勧めの書籍とか紹介してからおしまいです。
Apache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
?
OSC2015 Tokyo/Spring #osc15tk 2015年2月28日 14:00 - 明星大学 202 号室
クックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
?
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
?
社内チューニンガソンで優勝したはなし @ #ssmjp 20140828
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
?
Common Lispのライブラリである clsqlを使ってRDBMSにアクセスする方法の基本部分をお勉強します。意外と簡単にアクセスできちゃうし、clsqlはよく出来てるのでデータのハンドリングとかでも楽できちゃいますよ。あとはプログラマの工夫次第でいくらでも。
NDS#31
NDS#31
hayajo Imai
?
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
?
お手軽并列処理
お手軽并列処理
博文 斉藤
?
今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿
Masahiro NAKAYAMA
?
今日から使い始める颁丑别蹿 2013-03-29 Xtone Ltd. ピザ会(without pizza><) Aki / @nekoruri
シンプルなシステム构成フレームワーク补濒苍补颈谤
シンプルなシステム构成フレームワーク补濒苍补颈谤
Naoya Inada
?
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
?
Okinawa Open Days 2016 Ansible Hands-on
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
础苍蝉颈产濒别で始めるサーバ管理勉强会(2014年10月1日)
CLARA, Inc.
?
Puppet on AWS
Puppet on AWS
Sugawara Genki
?
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
?
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
?
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
Yasutaka Hamada
?
第1回 一撃サーバー構築シェルスクリプト勉強会
第1回 一撃サーバー構築シェルスクリプト勉強会
Yasutaka Hamada
?
奥别产サーバ构筑で心がけるべき二つのこと
奥别产サーバ构筑で心がけるべき二つのこと
TrinityT _
?
OSC Tokyo fall LT~Dockerで分散処理をやってみた
OSC Tokyo fall LT~Dockerで分散処理をやってみた
atk1234
?
Ansible ではじめるインフラのコード化入門
Ansible ではじめるインフラのコード化入門
Sho A
?
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
?
Apache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
?
クックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
?
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
Masahiro NAKAYAMA
?
Lisp Tutorial for Pythonista : Day 4
Lisp Tutorial for Pythonista : Day 4
Ransui Iso
?
NDS#31
NDS#31
hayajo Imai
?
Itcamp長崎2012 capistrano
Itcamp長崎2012 capistrano
kumachang_LL
?
お手軽并列処理
お手軽并列処理
博文 斉藤
?
今日から使い始める颁丑别蹿
今日から使い始める颁丑别蹿
Masahiro NAKAYAMA
?
シンプルなシステム构成フレームワーク补濒苍补颈谤
シンプルなシステム构成フレームワーク补濒苍补颈谤
Naoya Inada
?
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
?
Similar to Fabric Essentials
(20)
Fab
Fab
エンジニア勉強会 エスキュービズム
?
how to use fabfile.py
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
Sho Shimauchi
?
2013/07/27 PyFes で話した Fabric のスライドです。
Fabric
Fabric
Joe_noh
?
勉强会で蹿补产谤颈肠を绍介する资料
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?
CLR/H Sapporo.cpp合同勉強会時に話したスライドです。
贵补产谤颈肠と搁补颈濒蝉と私
贵补产谤颈肠と搁补颈濒蝉と私
Chikara Miyake
?
贵补产谤颈肠と搁补颈濒蝉と私 ?シンプルで、親密で、正確
Fabric
Fabric
zhengen lin
?
Fabric Deploy Tool
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 ?productionへの移行をminifabricで加速?
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 ?productionへの移行をminifabricで加速?
LFDT Tokyo Meetup
?
講演者:富士通株式会社 データ&セキュリティ研究所 中川 格氏 概要:minifabricは、ブロックチェーンプラットフォームの1つHyperledger Fabricの環境構築を容易にするOSSです。 ブロックチェーンを使ってみたいが環境構築が大変で敷居が高いという問題を解消するため、minifabric は簡単さと柔軟性をあわせ持つ構築ツールとして開発されています。本講演では、minifabricの基本的な使い方を紹介するとともに、本番環境構築などに向けた学習ツールとしても使えるように内部の仕組みについても紹介します。 2021年10月7日オンライン開催 Hyperledger Tokyo Meetupで講演
环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介
Etsuji Nakai
?
Personal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
础苍蝉颈产濒别入门
础苍蝉颈产濒别入门
Akira Otsuka
?
社内勉强会向けの资料です。
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
?
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
?
ネットワークプログラマビリティ勉強会 #6
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
susumu tanaka
?
MANABIYA DAY1 ランチセッション 発表資料
capistrano-colorized-stream
capistrano-colorized-stream
Naotoshi Seo
?
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
?
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
dots. IT勉強会で発表させて頂きました、ランサーズ開発環境のDocker移行に関する資料です。 サービスの拡張に伴い、多数の開発環境が必要になったため、それを効率良く管理するためDockerを採用した話です。 ?既存開発環境との互換性維持 ?本番環境との構成共通化 ?非エンジニアでも構築、運用できる仕組み を意識した、目的達成の手段としてのDocker運用方法を紹介いたしました。
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
?
「Infrastructure as Code」という言葉を聞いたことが あるでしょうか?この言葉が表すように、クラウド環境は インフラをソフトウェアから簡単に扱え、多くの作業を 自動化できます。自動化には多くの方法がありますが、 最も簡単な自動化が今回紹介するシェルスクリプトの利用です。 今回の研修では、bashを中心にスクリプト処理の基本と 開発の方法を説明します。タイトルにはシェル芸とありますが 今回は、安全なシェルプログラミングの方法を説明します。 普段の開発やAWSなどの作業にきっと役に立つでしょう。 ※SRA社内勉強会(2019/01/25)の資料です。
翱辫别苍厂迟补肠办クラウド基盘构筑ハンズオンセミナー 第1日:讲义狈辞2
翱辫别苍厂迟补肠办クラウド基盘构筑ハンズオンセミナー 第1日:讲义狈辞2
Etsuji Nakai
?
「自动化...か、かっこいいタル」(憧れ)から始める自动化
「自动化...か、かっこいいタル」(憧れ)から始める自动化
Hirokazu Kutsu
?
DevLove関西 2016.01.18 発表資料です。 #DevKan
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
?
https://sakura-kanto.doorkeeper.jp/events/53172
Fab
Fab
エンジニア勉強会 エスキュービズム
?
Fabric + Amazon EC2で快適サポート生活 #PyFes
Fabric + Amazon EC2で快適サポート生活 #PyFes
Sho Shimauchi
?
Fabric
Fabric
Joe_noh
?
密着!わたしのコンソールアフ?リ开発环境
密着!わたしのコンソールアフ?リ开発环境
Fumihito Yokoyama
?
贵补产谤颈肠と搁补颈濒蝉と私
贵补产谤颈肠と搁补颈濒蝉と私
Chikara Miyake
?
Fabric
Fabric
zhengen lin
?
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 ?productionへの移行をminifabricで加速?
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 ?productionへの移行をminifabricで加速?
LFDT Tokyo Meetup
?
环境构筑自动化ツールのご绍介
环境构筑自动化ツールのご绍介
Etsuji Nakai
?
Personal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
?
础苍蝉颈产濒别入门
础苍蝉颈产濒别入门
Akira Otsuka
?
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
博文 斉藤
?
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
npsg
?
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
インフラエンジニアが办8蝉でアプリを作って见えた今后のインフラ
susumu tanaka
?
capistrano-colorized-stream
capistrano-colorized-stream
Naotoshi Seo
?
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
Gosuke Miyashita
?
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
Yuki Kanazawa
?
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
?
翱辫别苍厂迟补肠办クラウド基盘构筑ハンズオンセミナー 第1日:讲义狈辞2
翱辫别苍厂迟补肠办クラウド基盘构筑ハンズオンセミナー 第1日:讲义狈辞2
Etsuji Nakai
?
「自动化...か、かっこいいタル」(憧れ)から始める自动化
「自动化...か、かっこいいタル」(憧れ)から始める自动化
Hirokazu Kutsu
?
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Masahito Zembutsu
?
Ad
Fabric Essentials
1.
Fabric Essentials Yoshinari Takaoka Kauli.inc
2.
Agenda 目的:Capistrano から Fabric
に移行したので 基本的なプラクティスを共有したい ● Fabric の紹介 ● チュートリアル ● Kauli のプラクティス ● これからの展开 ● まとめ
3.
Fabric の紹介
4.
Fabric? ● ● ssh で繋がったサーバ群にコマンドを一気に実行 するツール それなりの台数が並んだサーバ群のシステム管理 やデプロイに使われる ● http://fabfile.org/ ● 同種のソフト - Ruby
の Capistrano や mina - Perl の Cinnamon など
5.
Fabric に移行した理由 ● Python で楽に書ける -
Kauli は Python の会社 ● Capistrano と出来ることにあまり差異はないようだ - Capistrano でも現在込み入ったことはしていない - Ruby なソフトウェアは バージョンアップ的な意味で 運用にあ まり優しくない Capistrano とやれることに差がないのであれば 移行してメンテできる人を増やした方がよい
6.
チュートリアル
7.
インストールは簡単(Ubuntu 12.04) $ apt-get
install build-essential python-dev python-virtualenv $ virtualenv fabrictest $ cd fabrictest $ source bin/activate $ pip install fabric 以下、この環境を前提に説明します。
8.
まずは Hello World ● ● public
な callableオブジェクト (関数やクラスな ど) を実行単位(タスク) として定義 local 関数は localhost でシェルコマンドを実行 ... 実は古いスタイルだけどね(後述)
9.
まずは Hello World(2) 実際に以下をやってみる ● fabfile.py
に保存 ● task を一覧する $ fab -l ● タスクを実行する $ fab hello ... デフォルト。変更可
10.
リモートでコマンドを実行 ● run と sudo
関数をタスクの中で呼び出せばよい。 これらはリモートでコマンドを実行するときの基本。 local と区別する
11.
リモートでコマンドを実行(2) ● ● ● 前のページのコードを実際に実行してみる ssh で接続できることが前提 実行先のホストをどこかで指定する必要がある - 指定する方法多数。Fabric
を使うにあたっての 肝なのでこの後詳述。
12.
実行先のホストを指定する方法(1) ● ● ホスト単位 - 個々のホストを指定する ロール(Role)単位 - 同じ役割の複数のホストをひとまとめにして 名前を付け、それを指定する -
fabfile.py 内で env.roledefs の定義が必須
13.
実行先のホストを指定する方法(2) ● env 変数でホストやロールを指定する
14.
実行先のホストを指定する方法(3) ● デコレータでホストやロールを指定する
15.
実行先のホストを指定する方法(4) ● コマンドラインからホストやロールを指定可 $ fab -H
host1 hello $ fab -R role1 hello
16.
ホスト指定の裏技 $ fab hello:hosts=”host1,host2” $
fab hello:roles=”role1” ● ● ● 上記はこれまで説明してきたどの指定方法よりも優 先される デコレータの指定などを無視して意図しない動作を させることが可能 事故の元なので使うべきではない。てか使うな。
17.
ホスト指定方法と優先順位 (優先順位高) ● ● ● ● ホスト指定の裏技 デコレータ env.hosts, env.roles 変数 コマンドライン (優先順位低) 優先順位を知った上でホスト指定を組み立てる ことが重要
18.
例題1: Q. どのホストが呼び出されるか? $ fab
hello def hello(): run(“echo 'hello world'”) デコレータや env.hosts, env.roles が指定されて いないと、どこも指定されていないのと同義
19.
例題2: Q. どのホストが呼び出されるか? $ fab
-H host1 hello def hello(): run(“echo 'hello world'”)
20.
例題3: Q. どのホストが呼び出されるか? $ fab
-H host1 hello @host('host2') def hello(): run(“echo 'hello world'”)
21.
例題4: Q. どのホストが呼び出されるか? $ fab
-H host1 hello env.hosts = ['host3','host4'] @host('host2') def hello(): run(“echo 'hello world'”)
22.
例題5: Q. どのホストが呼び出されるか? $ fab
hello env.roledefs = { 'role1': [ 'host1','host2','host3'] } @host('host2') @roles('role1') def hello(): run(“echo 'hello world'”)
23.
例題6: Q. どのホストが呼び出されるか? $ fab
hello:hosts=”host2, host3” @hosts('host1') def hello(): run(“echo 'hello world'”)
24.
ホスト指定まとめ(1) ● ホスト指定の裏技は使うな - デコレータや env
変数の設定を全て上書きでき るので意図しない動作を産む可能性大 ● ホスト指定の裏技を除けば、実質デコレータが一番 優先順位が高い ● ドキュメントちゃんと嫁 ● 素振り大事。実際に動かして挙動を押さえておく。
25.
ホスト指定まとめ(2) - ホストやロールについて http://docs.fabfile.org/en/1.8/usage/execution.html#defining-host-lists - ホスト指定の優先順位 http://docs.fabfile.org/en/1.8/usage/execution.html#order-of-precede nce
26.
Kauli でのプラクティス
27.
Kauli でのプラクティス ● 指定している設定値 ● Capistrano の
“on” や “with” の代替 ● 戻り値の検査 ● 複数のタスクを組み合わせて一度に実行
28.
指定している設定値(1) ● env 変数で指定 ● 直感的でわかりやすい env.colorize_errors =
True - エラーに色を付けて知らせる env.warn_only = True - エラーに警告出してスルー(デフォルトは即終了)
29.
指定している設定値(2) env.parallel = True -
multiprocessing モジュールによる並列実行 - @parallel デコレータによる指定が不要に env.pool_size = 5 - 同時に実行させるプロセス数 - CPU の数と相談しましょう
30.
指定している設定値(3) env.disable_known_hosts = True -
ssh の known_hosts を無視する - man in the middle attack に対して無防備になるので注意 - 多数のホストに対して実行する場合に速度的な問題が出た 場合は試すと良い env.timeout = 3 - ssh の接続タイムアウト(秒) - 子プロセスによる並列実行を前提にしているため 接続待ちのプロセスがたまると LA があがるため短めに。
31.
戻り値の検査 ● デフォルトでは、実行したコマンドの戻り値が 0 で あれば正常と見なし、それ以外ならエラー それに従わないコマンドもそれなりに存在する ● コマンドの戻り値が
undoc だと調べるのがたるい - git とか puppet とか - ソース読む羽目になったり
32.
Capistrano の “on”
や “with” の代替 cap> with role1 uname -a $ fab -R role1 cmd:'uname -a' cap> on host1 uname -a $ fab -H host1 cmd:'uname -a'
33.
Capistrano の “on”
や “with” の代替(2) ● 実装は簡単 ● コマンドラインからタスクには引数を渡せる - fab -H host1 cmd:'uname -a' ● 引数の部分にカンマが含まれている場合は要エスケープ - fab -H host1 cmd:'ls -d /path/{to,hoge}/'
34.
複数のタスクを組み合わせて一度に実行(1) ● ● ● ● ネストした関数で複数のタスクを実行 複数のホストを組み合わせたタスクを同時に実行 させたい場合に重宝 execute 関数を使う ホスト指定と組み合わせると意図しない動作になり がちなので注意
35.
複数のタスクを組み合わせて一度に実行(2) ● 以下のようにホスト指定をするとデプロイが3回行われる $ fab -H
host1,host2,host3 deploy
36.
複数のタスクを組み合わせて一度に実行(3) ● Kauli では、この手のタスクでは -R
と -H によるホ スト指定を禁止している
37.
これからの展开
38.
これからの展开 ● モジュール化 ● 新しいスタイルのタスク定義へ
39.
モジュール化(1) ● ● これまでは fabfile.py 1ファイルにタスクを書く前提で説明をしてきた が、Fabric
では Python 流にモジュールを区切ることが可能 fabfile.py からモジュールを import すればドット 区切りでタスクを呼び出せる
40.
モジュール化(2) ● いろいろなプロダクトのタスクを分割するのに 役立つ $ fab some_product.deploy $
fab infra.pull_some_file … みたいな感じ ● fabfile.py への一極集中を解消 ● 新しいスタイルのタスク定義が必須
41.
新しいスタイルのタスク定義(1) ● 既存の関数ベースのタスク定義に @task デコレー タを付ける ● または、Task
クラスを継承してクラスを作る ● 現在新スタイルのタスクは未使用 ● これまで説明してきた古いスタイルのタスク定義と は共存不可 - ひとつでも新しいスタイルのタスクがあると、古い スタイルのタスクはリストから外れ、使えなくなる
42.
新しいスタイルのタスク定义(2)
43.
まとめ ● ● ● Fabric は Python
で簡単に書ける ホストの指定方法が肝。これさえ把握すれば多分ど うとでもなる Kauli では特に凄いことをしてるわけではない 皆で良くしていくもの。 Patches welcome. ● モジュール化の方向に持って行きたい ● ドキュメントもよく読みましょう - http://docs.fabfile.org/
44.
ご清聴ありがとうございました。
Download