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

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

関連記事

fabricでmysqlコマンドを実行する関数を自作する

概要 皆さんこんにちはcandleです。今回はfabricからリモート先のサーバのmysqlを実行するための環境変数と関数を作成したいと思います。 mysqlは一般にmysqlコマンドをログインしてか …

wysiwygエディタのSquire editorのサンプルを作成する

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

phpmyadminでmysqlデータベースの照合順序を変更する

概要 みなさんこんにちはcandleです。 ちょっとした事なのですが、意外に分からなかったのでまとめました。 phpmyadminを使ってデータベースを作ると、うっかり、utf8_general_ci …

wordpressのbogoプラグインのショートコードをカスタマイズする

English 日本語 概要 みなさんこんにちはcandleです。 今回はwordpress bogoのショートコードをカスタマイズしてみたいと思います。 紹介する項目は以下の2つです。 国旗の表示、 …

railsのrakeで作成したカラムの型とdefault値を変更する方法

概要 みなさんこんにちはcandleです。今回はrakeコマンドのややこしいところを扱います。 rakeコマンドはわりと便利で、データベースのカラムの追加や型の変更をマイグレーションファイルから読み込 …

  • English
  • 日本語

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