joppot

コピペで絶対動く。説明を妥協しない

プログラミング

fabricのsshのネットワーク設定でパスワードか公開鍵を使って認証する

投稿日:


irbiuew

概要

皆さん今日はcandleです。今回はsshを使ったfabricの設定をしましょう。
一般にsshにはパスワード認証と公開鍵認証があるので、そのどちらも試してみましょう。

もちろんセキュリティ面で考えれば公開鍵を使う事をおすすめしますが、そこは臨機応変といきましょう。

前提

fabricが動くPCが1台
VMかLAN内のサーバなど、いずれかfabricでアクセスできるサーバが1台
公開鍵認証をする場合はその公開鍵の準備


ネットワークの共通設定

それではfabfile.pyにネットワークの設定をしてみましょう。

まずはコメント欄に日本語を使うので、エンコーディングをutf-8にしておきましょう。
fabricのapiを面倒なので全てインポートします。

# -*- coding: utf-8 -*-                                                                                       
from fabric.api import *

接続先のIPアドレスとユーザー名を設定します。
IPアドレスはレンタルサーバーやVPNならそのIPアドレスをVMやLANの中ならプライベートIPアドレスを設定しましょう。

#サーバのIPアドレス                                                                                   
#ローカルでやる場合はプライベートIPアドレス                                                       
env.hosts = ['ホスト名かIPアドレス']
env.user = 'ユーザー名'

basicsetting

私はVirtual BoxのubuntuにアクセスしたいのでそのプライベートIPアドレスとユーザー名を記述します。
myfabricnetworksetting

これで共通設定は完了です。

パスワード認証の設定

一般にサーバのパスワードの設定は下の様に設定します。

#パスワード認証の場合はそのサーバのパスワードを                                                     
env.password = 'サーバのパスワード'

sshfabpass

これでいいですね。

公開鍵認証を使う

公開鍵を使う場合はサーバーにアクセスする為の秘密鍵を指定しましょう
この秘密鍵はいつもサーバにsshでアクセスしている時のものを使います。

#公開鍵認証の場合は秘密鍵のパス                                                                               
env.key_filename = '秘密鍵のパス'

私の場合は下の様になります。

fabsshprivatekeypass

もちろん、公開鍵認証する場合はパスワードの項目をコメントアウトして、
パスワード認証する場合はキーのパスの項目をコメントアウトしましょう。


試しにコマンドを実行してみる

下の関数をfabfile.pyに書き込みます。

def hello():
    run("touch hello.txt")

fabhello

実行してみましょう。
うまくいけば、ホームディレクトリにhello.txtが作成されます。

fab hello

dofabhello

サーバのホームディレクトリを見ると作成されています。
うまくいきましたね。

checkhellotext

まとめ

sshの設定は以上ですね。

スポンサードリンク

「為になったなぁ」と思ったら、シェアお願いします。

-プログラミング
-, , ,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

railsでsvgをviewに表示する

概要 みなさんこんにちはcandleです。 今回はrailsでsvgを出力します。 レスポンシブウェブデザインから始まり、最近ではwebでもsvgの使用が増えてきたような気がします。 手こずらずにsv …

MAMPにCakePHPを導入して動かす

概要 みなさんこんにちはcandleです。今回はMAMPでCakePHPを動かす環境設定を行いましょう。 条件 MAMPがインストールされている CakePHPをダウンロードする 下のCakePHPの …

railsのgonで別ページでリロード後turbolinksで移動したら変数がundefindする場合の対処

概要 (追記 2016/05/18 この方法を行うと、turbolinksで問題が起きました。 turbolinksで移動した回数だけ、javascriptが実行されてしまいました。 例えば、 < % ...

fabricを使ってgit のdiffで指定のバージョンからのファイルをアップロード

概要 皆さんこんにちはcandleです。今回はfabricを使ってgit のpush pullを使わないデプロイを実装します。 一般にgit管理されているプロジェクトのデプロイは下の様な図式でデプロイ …

scikit-learnの4つの関数で機械学習などのデータを前処理する

概要 皆んさんこんにちはcandleです。今回はpythonの機械学習ライブラリ『scikit-learn』を使い、データの前処理をしてみます。 scikit-learnでは変換器と呼ばれるものを使い …

  • English
  • 日本語

ベンチャー企業のCTOをやってます。大学時代にプログラミングを始め、javaから入門し、C++へて、PHPへと進み、会社ではRailsを使用。自動化が大好きなプログラマー