joppot

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

プログラミング

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

投稿日:

Pocket

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の作り方[6](config編)

概要 みなさんこんにちはcandleです。今回は前回に引き続き、gemの作成をやっていきます。 gemのconfigとは恐らく一般的に以下の様な状況の時に使う事になると思います。 例えば、gemのプロ …

gitpythonでfirst commitする

概要 みなさんこんにちはcandleです。今回はgitpythonで、初めてのコミットをする方法を紹介します。 gitpythonでコミットは難しくないのですが、初めてのコミットは要領が違ったので、ま …

pythonのpipでfabricをインストールする

概要 みなさんこんにちはcandleです。今回はpipでデプロイメントツールのfabricをインストールしたいと思います。 前提 pipがインストールされている

ruby on railsに最強のwysiwygエディタ、Squireを導入する

概要 みなさんこんにちはcandleです。今回はruby on railsにsquire editorを導入したいと思います。 squireはオープンソースの便利なwysiwygエディタです。 カスタ …

railsのfluent-logger gemを使ってユーザーのアクセスをfluentdサーバに収集する

概要 みなさんこんにちはcandleです。前回からfluentd関連の記事を続けていますが、今回辺りから実用的な使い方を書いていきたいと思います。 fluentdと言えば、ビックデータで扱うようなデー …

  • English
  • 日本語

プロフィール


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

スポンサードリンク

アーカイブ