SlideShare a Scribd company logo
1 of 22
Fabric
1. What is Fabric
もくじ
1.初めに
2.環境設定
3. Real World Case
4 . まとめ
5.Cool 機能
(時間があれば)
1. 初めに
Fab とは
1. A tool that lets you execute arbitrary Python functions via the
command line;
2. A library of subroutines (built on top of a lower-level library) to make
executing shell commands over SSH easy and Pythonic.
   Naturally, most users combine these two things, using Fabric to write
and execute Python functions, or tasks, to automate interactions with
remote servers. Let’s take a look.
Source: http://docs.fabfile.org/en/1.9/tutorial.html
Fab とは
1. A tool that lets you execute arbitrary Python functions via the
command line;
2. A library of subroutines (built on top of a lower-level library) to make
executing shell commands over SSH easy and Pythonic.
   Naturally, most users combine these two things, using Fabric to write
and execute Python functions, or tasks, to automate interactions with
remote servers. Let’s take a look.
Source: http://docs.fabfile.org/en/1.9/tutorial.html
Console で Python が利用している関数を実行できるツール
Fab とは
1. A tool that lets you execute arbitrary Python functions via the
command line;
2. A library of subroutines (built on top of a lower-level library) to make
executing shell commands over SSH easy and Pythonic.
   Naturally, most users combine these two things, using Fabric to write
and execute Python functions, or tasks, to automate interactions with
remote servers. Let’s take a look.
Source: http://docs.fabfile.org/en/1.9/tutorial.html
Console で Python が利用している関数を実行できるツール
Lower level library に基づきの subroutines をよんで
Python 的な論理で code を構築し、 SSH で
もっと簡単に command を実行できる
思ったより違う。。。
• bash command より速いわけではない
• どこでも使えるわけでもない
実行仕方
fabfile.py を作成する
save
実行仕方
同じ FOLDER で作った関数だけ呼べば、実行できる
Source: http://docs.fabfile.org/en/1.9/tutorial.html
2 . 環境設定
Required:
Python 2.5 以上 (Latest:3.4.1)
Fabric
Download (centOS:) yum install python
Download: pip install fabric
1.Get pip: curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
2.Update Path: export PATH="/usr/local/bin:$PATH"
3.Real World Case
Real World Example:
Source: http://docs.fabfile.org/en/1.9/tutorial.html
自分のやり方で構築
Source: http://docs.fabfile.org/en/1.9/tutorial.html
エラーハンドリング
Source: http://docs.fabfile.org/en/1.9/tutorial.html
画面出力
$ fab deploy
No hosts found. Please specify (single) host string for connection: my_server
[my_server] run: test -d /srv/django/myproject
Warning: run() encountered an error (return code 1) while executing 'test -d /srv/django/myproject'
[my_server] run: git clone user@vcshost:/path/to/repo/.git /srv/django/myproject
[my_server] out: Cloning into /srv/django/myproject...
[my_server] out: Password: <enter password>
[my_server] out: remote: Counting objects: 6698, done.
[my_server] out: remote: Compressing objects: 100% (2237/2237), done.
[my_server] out: remote: Total 6698 (delta 4633), reused 6414 (delta 4412)
[my_server] out: Receiving objects: 100% (6698/6698), 1.28 MiB, done.
[my_server] out: Resolving deltas: 100% (4633/4633), done.
[my_server] out:
[my_server] run: git pull
[my_server] out: Already up-to-date.
[my_server] out:
[my_server] run: touch app.wsgi
Done.
Source: http://docs.fabfile.org/en/1.9/tutorial.html
基本的な fabric.api commands
• local: local で command を実行
• run: remote で command を実行
• sudo: remote で sudo として実行
• put: local から remote まで file をコピー
• get: remote から file を落としてくる
• prompt: user にプロンプトを表示
• reboot:  再起動
でもそれだけではありません
すべての Python の関数を普通に利用できま
す
別の例え。。
• GIT からサイトを落としてきて DB を
drop して新規 record と table を作成する
こと
• ウェブアプリを本番サーバーに UP する前
に自動的にdfして disk space があれば
、 rsync でデータをコピー
4. まとめ
• FOLDER ごとに fabfile.py があれば、関数
を呼べる。
• PYTHON が必要が REMOTE 環境で無く
ても COMMAND 実行できる
• PYTHON 的な論理で script を作れる
注意
  threading に関して、 global interpreter
lock(GIL) がありますので同時に同じ
resource を利用することはできません。
そんなに関係ないけど Cool !
• fab --list で実行するとそれぞれの fabfile.py の関数は一覧で見られる
• Ipython ( interactive mode, 関数仕様情報 )
☆php のバイナリより便利!!
参考になる
Fabric   HP :
http://www.fabfile.org/
Python   HP :
https://docs.python.org
Fab

More Related Content

What's hot

OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
Satoshi Ohkubo
 
Python twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめPython twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめ
Yukitaka Uchikoshi
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
Sugawara Genki
 
Celery Task Queue
Celery Task QueueCelery Task Queue
Celery Task Queue
Ian Lewis
 
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPCRedunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPC
Masaaki HIROSE
 

What's hot (20)

aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話aptのマニュアルをpo4a化した話
aptのマニュアルをpo4a化した話
 
PO ファイルで翻訳管理
PO ファイルで翻訳管理PO ファイルで翻訳管理
PO ファイルで翻訳管理
 
BOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud FoundryBOSH-lite で 1VM Cloud Foundry
BOSH-lite で 1VM Cloud Foundry
 
Drone.io のご紹介
Drone.io のご紹介Drone.io のご紹介
Drone.io のご紹介
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 
あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。あの日実行したコンテナの名前を僕達はまだ知らない。
あの日実行したコンテナの名前を僕達はまだ知らない。
 
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
OrePAN と cpanm を使ったCPAN モジュールの部分ミラーの運用管理 :Yokohama.pm #8
 
真Drone入門
真Drone入門真Drone入門
真Drone入門
 
Fn project爆誕
Fn project爆誕Fn project爆誕
Fn project爆誕
 
Python twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめPython twitterとtkinterのことはじめ
Python twitterとtkinterのことはじめ
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
ChefとPuppetの比較
ChefとPuppetの比較ChefとPuppetの比較
ChefとPuppetの比較
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
 
kunibiki.rb #5 発表資料
kunibiki.rb #5 発表資料kunibiki.rb #5 発表資料
kunibiki.rb #5 発表資料
 
Celery Task Queue
Celery Task QueueCelery Task Queue
Celery Task Queue
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
ElixirをIoTボードで動かしてみた ~ラズパイ・big.LITTLE・Zynq編~
 
NanoStrand
NanoStrandNanoStrand
NanoStrand
 
Redunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPCRedunduncy of NAT instance on AWS/VPC
Redunduncy of NAT instance on AWS/VPC
 
LAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみたLAMP環境にDocker環境を追加してみた
LAMP環境にDocker環境を追加してみた
 

Viewers also liked

Viewers also liked (20)

エンジニア勉強会_Node.js
エンジニア勉強会_Node.jsエンジニア勉強会_Node.js
エンジニア勉強会_Node.js
 
Gentoo linux_エンジニア勉強会20130806
Gentoo linux_エンジニア勉強会20130806Gentoo linux_エンジニア勉強会20130806
Gentoo linux_エンジニア勉強会20130806
 
Datavisualize
DatavisualizeDatavisualize
Datavisualize
 
Yii c orange エンジニア勉強会20140129
Yii c orange エンジニア勉強会20140129Yii c orange エンジニア勉強会20140129
Yii c orange エンジニア勉強会20140129
 
de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620de:code エスキュービズム勉強会0620
de:code エスキュービズム勉強会0620
 
Virtual reality
Virtual realityVirtual reality
Virtual reality
 
iOSとwin8_エンジニア勉強会20131106
iOSとwin8_エンジニア勉強会20131106iOSとwin8_エンジニア勉強会20131106
iOSとwin8_エンジニア勉強会20131106
 
Growth hackについて後編_エンジニア勉強会20140404
Growth hackについて後編_エンジニア勉強会20140404Growth hackについて後編_エンジニア勉強会20140404
Growth hackについて後編_エンジニア勉強会20140404
 
iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006iOS開発豆知識_エスキュービズム勉強会20141006
iOS開発豆知識_エスキュービズム勉強会20141006
 
Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718Casper js エスキュービズム勉強会0718
Casper js エスキュービズム勉強会0718
 
様々なEntry system,register system エンジニア勉強会20140108
様々なEntry system,register system エンジニア勉強会20140108様々なEntry system,register system エンジニア勉強会20140108
様々なEntry system,register system エンジニア勉強会20140108
 
Windows ideの遷移
Windows ideの遷移Windows ideの遷移
Windows ideの遷移
 
Rubyのクラスとメソッド_エスキュービズム勉強会0530
Rubyのクラスとメソッド_エスキュービズム勉強会0530Rubyのクラスとメソッド_エスキュービズム勉強会0530
Rubyのクラスとメソッド_エスキュービズム勉強会0530
 
Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917
Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917
Cloud Design Pattern #3 Compensating Transaction_エンジニア勉強会20140917
 
エンジニア勉強会20140424
エンジニア勉強会20140424エンジニア勉強会20140424
エンジニア勉強会20140424
 
de:code 2015
de:code 2015de:code 2015
de:code 2015
 
CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820CakePHPとYii_エンジニア勉強会20130820
CakePHPとYii_エンジニア勉強会20130820
 
理想のWEB開発
理想のWEB開発理想のWEB開発
理想のWEB開発
 
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
事故らないためのUnix(linux)オペレーション エスキュービズム勉強会0711
 
Not only sql _ 新卒エンジニア勉強会20130417
Not only sql _ 新卒エンジニア勉強会20130417Not only sql _ 新卒エンジニア勉強会20130417
Not only sql _ 新卒エンジニア勉強会20130417
 

Similar to Fab

2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
airtoxin Ishii
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
Hiromu Shioya
 
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
Hidenori Goto
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
Satoshi Kume
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
Etsuji Nakai
 

Similar to Fab (20)

LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)LibreOfficeをビルドしてみよう(Windows)
LibreOfficeをビルドしてみよう(Windows)
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
LinAction Theme Docker
LinAction Theme DockerLinAction Theme Docker
LinAction Theme Docker
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる2日間Fabricを触った俺が
 色々解説してみる
2日間Fabricを触った俺が
 色々解説してみる
 
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
 
Fabric
Fabric Fabric
Fabric
 
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
もう XAMPP / MAMP はいらない!
Vagrant で作る PHP 開発環境
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
 
Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)Symfony2 workshop-0 (nagoya 2011/2/10)
Symfony2 workshop-0 (nagoya 2011/2/10)
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0MacPort_&_FTP_ver1.0
MacPort_&_FTP_ver1.0
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No2
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 

More from エンジニア勉強会 エスキュービズム

More from エンジニア勉強会 エスキュービズム (20)

エスキュービズム新技術発表資料
エスキュービズム新技術発表資料エスキュービズム新技術発表資料
エスキュービズム新技術発表資料
 
小売りにおけるAIの可能性
小売りにおけるAIの可能性小売りにおけるAIの可能性
小売りにおけるAIの可能性
 
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリングReact Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
 
Azure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみたAzure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみた
 
はじめての品質
はじめての品質はじめての品質
はじめての品質
 
Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発Go言語によるWebアプリケーション開発
Go言語によるWebアプリケーション開発
 
機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow機械学習ライブラリ : TensorFlow
機械学習ライブラリ : TensorFlow
 
Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。Developer Summit 2016 参加してきました。
Developer Summit 2016 参加してきました。
 
ほんのりTDD
ほんのりTDDほんのりTDD
ほんのりTDD
 
IoTで何をやったか
IoTで何をやったかIoTで何をやったか
IoTで何をやったか
 
2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)2016 新人研修 基本技術講座 (1)
2016 新人研修 基本技術講座 (1)
 
Dockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについてDockerを用いたマイクロサービスについて
Dockerを用いたマイクロサービスについて
 
VRのコンテンツ
VRのコンテンツVRのコンテンツ
VRのコンテンツ
 
Azureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについてAzureで動いている機械学習のいろいろについて
Azureで動いている機械学習のいろいろについて
 
レイアウトについて
レイアウトについてレイアウトについて
レイアウトについて
 
アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)アルゴリズムとデータ構造(初歩)
アルゴリズムとデータ構造(初歩)
 
何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか何故エンジニアはテストをしないのか
何故エンジニアはテストをしないのか
 
IoTのIを考えてみる話
IoTのIを考えてみる話IoTのIを考えてみる話
IoTのIを考えてみる話
 
AzureのIaaSとかの話
AzureのIaaSとかの話AzureのIaaSとかの話
AzureのIaaSとかの話
 
【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ【エンジニア勉強会】品質ってなんなのさ
【エンジニア勉強会】品質ってなんなのさ
 

Recently uploaded

Recently uploaded (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Fab

  • 2. もくじ 1.初めに 2.環境設定 3. Real World Case 4 . まとめ 5.Cool 機能 (時間があれば)
  • 4. Fab とは 1. A tool that lets you execute arbitrary Python functions via the command line; 2. A library of subroutines (built on top of a lower-level library) to make executing shell commands over SSH easy and Pythonic.    Naturally, most users combine these two things, using Fabric to write and execute Python functions, or tasks, to automate interactions with remote servers. Let’s take a look. Source: http://docs.fabfile.org/en/1.9/tutorial.html
  • 5. Fab とは 1. A tool that lets you execute arbitrary Python functions via the command line; 2. A library of subroutines (built on top of a lower-level library) to make executing shell commands over SSH easy and Pythonic.    Naturally, most users combine these two things, using Fabric to write and execute Python functions, or tasks, to automate interactions with remote servers. Let’s take a look. Source: http://docs.fabfile.org/en/1.9/tutorial.html Console で Python が利用している関数を実行できるツール
  • 6. Fab とは 1. A tool that lets you execute arbitrary Python functions via the command line; 2. A library of subroutines (built on top of a lower-level library) to make executing shell commands over SSH easy and Pythonic.    Naturally, most users combine these two things, using Fabric to write and execute Python functions, or tasks, to automate interactions with remote servers. Let’s take a look. Source: http://docs.fabfile.org/en/1.9/tutorial.html Console で Python が利用している関数を実行できるツール Lower level library に基づきの subroutines をよんで Python 的な論理で code を構築し、 SSH で もっと簡単に command を実行できる
  • 7. 思ったより違う。。。 • bash command より速いわけではない • どこでも使えるわけでもない
  • 10. 2 . 環境設定 Required: Python 2.5 以上 (Latest:3.4.1) Fabric Download (centOS:) yum install python Download: pip install fabric 1.Get pip: curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python - 2.Update Path: export PATH="/usr/local/bin:$PATH"
  • 11. 3.Real World Case Real World Example: Source: http://docs.fabfile.org/en/1.9/tutorial.html
  • 14. 画面出力 $ fab deploy No hosts found. Please specify (single) host string for connection: my_server [my_server] run: test -d /srv/django/myproject Warning: run() encountered an error (return code 1) while executing 'test -d /srv/django/myproject' [my_server] run: git clone user@vcshost:/path/to/repo/.git /srv/django/myproject [my_server] out: Cloning into /srv/django/myproject... [my_server] out: Password: <enter password> [my_server] out: remote: Counting objects: 6698, done. [my_server] out: remote: Compressing objects: 100% (2237/2237), done. [my_server] out: remote: Total 6698 (delta 4633), reused 6414 (delta 4412) [my_server] out: Receiving objects: 100% (6698/6698), 1.28 MiB, done. [my_server] out: Resolving deltas: 100% (4633/4633), done. [my_server] out: [my_server] run: git pull [my_server] out: Already up-to-date. [my_server] out: [my_server] run: touch app.wsgi Done. Source: http://docs.fabfile.org/en/1.9/tutorial.html
  • 15. 基本的な fabric.api commands • local: local で command を実行 • run: remote で command を実行 • sudo: remote で sudo として実行 • put: local から remote まで file をコピー • get: remote から file を落としてくる • prompt: user にプロンプトを表示 • reboot:  再起動
  • 17. 別の例え。。 • GIT からサイトを落としてきて DB を drop して新規 record と table を作成する こと • ウェブアプリを本番サーバーに UP する前 に自動的にdfして disk space があれば 、 rsync でデータをコピー
  • 18. 4. まとめ • FOLDER ごとに fabfile.py があれば、関数 を呼べる。 • PYTHON が必要が REMOTE 環境で無く ても COMMAND 実行できる • PYTHON 的な論理で script を作れる
  • 19. 注意   threading に関して、 global interpreter lock(GIL) がありますので同時に同じ resource を利用することはできません。
  • 20. そんなに関係ないけど Cool ! • fab --list で実行するとそれぞれの fabfile.py の関数は一覧で見られる • Ipython ( interactive mode, 関数仕様情報 ) ☆php のバイナリより便利!!
  • 21. 参考になる Fabric   HP : http://www.fabfile.org/ Python   HP : https://docs.python.org