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 pluginでengineを使ったgemの作り方[5](view helper編)

概要 みなさんこんにちはcandleです。今回はgemのview helperの作り方です。 helperというのは様はgemにすることで便利になる関数を作るとというイメージです。 よくあるのが、こん …

React NativeでGoogle Chrome上でのデバッグ時に動作が遅くなる場合の対処

English 日本語 概要 みなさんこんにちはcandleです。 今回はReact NativeのデバッグでChromeを使うと シミュレーターの動作が遅くなってしまう問題を対処します。 とは言って …

phpでcompassを使った開発の仕方

概要 みなさんこにちはcandleです。今回はphpでcompassを使いたいと思います。 compassは別名scssともいいます。 compassはphpのライブラリが既にあります。 しかし、その …

MAMPのPHPからSQLite3データベースにアクセスして値を取得する

概要 みなさんこんにちはcandleです。MAMPのSQLiteデータベースとテーブルを作成して、レコードも挿入した事なので、値を取得してみましょう。 前提 phpのバージョンが5.3以上である SQ …

ruby on railsのgemのインストールで不要なファイルをインストールしない設定

概要 みなさんこんにちはcandleです。私の記事はどうしても先人のプログラマーがまとめた内容を追試しているような感じになっていますが、これも重要なことなので、忘れないためにもまとめておきます。 ru …

  • English
  • 日本語

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