Recommended
PDF
2日間Fabricを触った俺が
色々解説してみる
PDF
PDF
PPTX
PDF
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PDF
PDF
PDF
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
PDF
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
PDF
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
PPTX
ネットワークエンジニアのための Puppet / Chef
PPTX
PDF
PDF
PDF
PPTX
OSC Tokyo fall LT~Dockerで分散処理をやってみた
PDF
PDF
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
PDF
PDF
Lisp Tutorial for Pythonista Day 6
PDF
PDF
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
PDF
Lisp Tutorial for Pythonista : Day 4
PDF
PDF
More Related Content
PDF
2日間Fabricを触った俺が
色々解説してみる
PDF
PDF
PPTX
PDF
PPTX
Chef の気まぐれ環境構築 〜季節の Capistrano を添えて〜 #jawsug
PDF
PDF
What's hot
PDF
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
PDF
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
PDF
PPTX
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
PDF
PPTX
ネットワークエンジニアのための Puppet / Chef
PPTX
PDF
PDF
PDF
PPTX
OSC Tokyo fall LT~Dockerで分散処理をやってみた
PDF
PDF
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
PDF
PDF
Lisp Tutorial for Pythonista Day 6
PDF
PDF
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
PDF
Lisp Tutorial for Pythonista : Day 4
Similar to Fabricでサーバー管理をDRYにしよう
PDF
Fabric + Amazon EC2で快適サポート生活 #PyFes
PPT
PDF
PDF
Fabricによるcloud stackインストール自動化
PPTX
PPTX
PDF
PDF
CloudFoundry 2 on Apache CloudStack 4.2.1
PDF
PDF
PPTX
PDF
Personal Cloud Automation
PDF
PDF
PPTX
ラズパイ2で動く Docker PaaSを作ってみたよ
PDF
Hyperledger Fabric 簡単構築ツール minifabricのご紹介 〜productionへの移行をminifabricで加速〜
PPTX
KEY
PDF
PDF
Rancher/Kubernetes入門ハンズオン資料~第2回さくらとコンテナの夕べ #さくらの夕べ 番外編
Recently uploaded
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #2
PDF
20251210_MultiDevinForEnterprise on Devin 1st Anniv Meetup
PDF
流行りに乗っかるClaris FileMaker 〜AI関連機能の紹介〜 by 合同会社イボルブ
PDF
エンジニアが選ぶべきAIエディタ & Antigravity 活用例@ウェビナー「触ってみてどうだった?Google Antigravity 既存IDEと...
PDF
Machine Tests Benchmark Suite. Explain github.com/alexziskind1/machine_tests #1
PPTX
楽々ナレッジベース「楽ナレ」3種比較 - Dify / AWS S3 Vector / Google File Search Tool
Fabricでサーバー管理をDRYにしよう 1. Fabricでサーバー管理を
DRYにしよう
2012.09.01 kyoto.py in 高槻
Kojima Takanori (max747)
2. 3. 4. 5. SSH公開 の配備
$ scp foo.pub serverA:.
$ ssh serverA
$ sudo mv foo.pub /etc/ssh/keys/
$ chown root:root /etc/ssh/keys/foo.pub
$ exit
6. • Web/APサーバー
• DBサーバー
• リポジトリサーバー
• TracとかRedmineとか動かすサーバー
• CIサーバー
• 実験用サーバー
• 仮想化ホストサーバー
• etc...
7. $ ssh <web/ap server>
$ sudo yum update
...
$ exit
$ ssh <db server>
$ sudo yum update
• ssh serverA
...
$ exit
• sudo yum update
$ ssh <scm server>
$ sudo yum update
...
$ exit
• お茶を飲んで待つ
$ ssh <pm server>
$ sudo yum update
...
• exit
$ exit
$ ssh <ci server>
• 以下5回繰り返し
$ sudo yum update
...
$ exit
...
8. $ scp foo.pub <web/ap server>:.
$ ssh <web/ap server>
$ sudo mv foo.pub /etc/ssh/keys/
$ chown root:root /etc/ssh/keys/foo.pub
$ exit
• ssh serverA
$ scp foo.pub <db server>:.
$ ssh <db server>
$ sudo mv foo.pub /etc/ssh/keys/
• sudo yum update
$ chown root:root /etc/ssh/keys/foo.pub
$ exit
$ scp foo.pub <scm server>:.
• お茶を飲んで待つ
$
$
$
$
ssh <scm server>
sudo mv foo.pub /etc/ssh/keys/
chown root:root /etc/ssh/keys/foo.pub
exit
• exit
$
$
scp foo.pub <pm server>:.
ssh <pm server>
• 以下5回繰り返し
$ sudo mv foo.pub /etc/ssh/keys/
$ chown root:root /etc/ssh/keys/foo.pub
$ exit
...
9. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 実行
$ fab -H localhost,linuxbox host_type
[localhost] run: uname -s
[localhost] out: Darwin
[linuxbox] run: uname -s
[linuxbox] out: Linux
Done.
Disconnecting from localhost... done.
Disconnecting from linuxbox... done.
23. 24. 定義済みタスクの表示
# coding: utf8 $ fab -l
u"""
max747.org の管理用
max747.org の管理用
"""
Available commands:
from fabric.api import sudo, task
@task package_update パッケージをアップデートします.
def package_update():
u"""パッケージをアップデートします.""" reboot マシンをリブートします.
distro = _get_distro() shutdown マシンをシャットダウンします.
if distro == "Debian":
sudo("apt-get -y upgrade")
elif distro == "Redhat":
sudo("yum -y update")
def _get_distro():
...
return "Debian"
@task
def shutdown():
u"""マシンをシャットダウンします."""
sudo("shutdown -h now")
@task
def reboot():
u"""マシンをリブートします."""
sudo("reboot")
25. 26. 27. ファイルの存在チェック
from fabric.api import sudo, put
from fabric.contrib.files import exists
def upload_keys():
if exists(“/etc/ssh/keys”):
put(“keys”, “/tmp”)
sudo(“mv /tmp/keys/* /etc/ssh/keys”)
28. カレントディレクトリの保持
from fabric.api import cd, sudo
def package_update():
with cd(“/usr/local/src”):
sudo(“tar xvf foo-1.0.tar.gz”)
with cd(“/usr/local/src/foo-1.0”):
sudo(“./configure”)
sudo(“make”)
sudo(“make install”)
29. 30. 31.