joppot

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

サーバ プログラミング

fabricでvagrantのデフォルトの秘密鍵を使ってサーバにアクセスする

投稿日:2014年10月31日 更新日:


o9gmnw

概要

みなさんこんにちはcandleです。今回はfabricを使ってvagrant上のvmにアクセスする方法を紹介します。様々なサイトを閲覧すると、あまりvagrantのデフォルトの鍵を使用して、fabricから操作をする事例が無かったのでここにまとめます。

vagrantはその上でどんなOSが動いていても共通の鍵を使ってssh接続しています。
例えばvagrantでCentOSを動かしていてもUbuntuを動かしていても同じ秘密鍵を使います。

fabricでアクセスする時もこの鍵を使ってアクセスしてみましょう。

vagrantで動いているOSは恐らくなんでも良いのですが、私はCentOS6.5を使います。

前提

vagrant情に何らかのlinuxコマンドが打てるOSが入っている
fabricがインストールされている
fabfileの最低限の使い方がわかる


vagrantにアクセスするための設定

fabfile.pyを開いて、共通の設定を書き込みます。

# -*- encoding:utf-8 -*-
from fabric.api import *
from fabric.colors import *

これはfabric関連のapiをインクルードしています。

次に、vagrantのIPアドレスとユーザー名を設定します。
vagrantではsshでアクセスする時は「127.0.0.1」を参照します。
ユーザー名は「vagrant」です。

#サーバのIPアドレス。
#ローカルでやる場合はプライベートIPアドレス
env.hosts = ['127.0.0.1']
env.user = "vagrant"

こんな感じですね。

vagrantsetup

ちなみに、sshの127.0.0.1の確認方法はvagrantをupした時に確認できます。

checkvagrantadress

次に、vagrantの秘密鍵のパスとsshのポート番号を記入します。

秘密鍵のパスは恐らく万人共通だと思いますが、一応各人調べてください。
sshのポート番号は上の図を見ても分かるように、2222ですね。

#vagrant環境でやる場合は下をコメントイン
env.key_filename = '~/.vagrant.d/insecure_private_key'
env.port=2222

どうでしょうか。最終的に下のようになります。

vagrantaccesssetting

設定は以上です。

fabricからvagrantにアクセスする

試しにfabricのタスクを作って、サーバを操作してみましょう。

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

これを実行してみます。

fab hello

するとvagrantのサーバにtest.txtが作成されます。

fabhelotovagrant

サーバにsshで移動してホームディレクトリをみると
vagranthellohoge


まとめ

vagrant環境に対してfabricのコマンドが使える様になると、一段と速くサーバの環境設定ができる様になりますね。

スポンサードリンク

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

-サーバ, プログラミング
-, , ,

執筆者:


comment

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

関連記事

ReactでFaker.jsを利用してダミーデータを生成する

概要 みなさんこんにちはcandleです。今回はFaker.jsをReactで使ってみようと思います。 Faker.jsの使用目的は様々あると思います。多くの場合はテストで使うと思うのですが、今回は簡 …

awsのec2上でredmineをnginxで使用する方法

概要 みなさんこんにちはcandleです。今回はredmineをec2上で使用する方法を紹介します。 redmineはrailsで作られたwebアプリケーションです。railsで作られているということ …

React WebでURLをaタグのリンクにして表示する

概要 みなさんこんにちはcandleです。今回はReactでコメントなどに投稿されたURLからリンクを生成する方法を紹介します。しかし、URLからリンクの自動生成は結構危険です。無尽蔵にリンク化を許可 …

railsのrakeのmigrationファイルを削除しNO FILEとstatusに出た時の対処

概要 みなさんこんにちはcandleです。今回は誤ってデータベースに反映したマイグレーションファイルを不要だと思って削除した時に、NO FILEと出てきてしまった時の対処です。 言うなれば、下のような …

CentOS6.5にcakephp2.5.6をインストールする

概要 みなさんこんにちはcandleです。今回はCentOSのapacheサーバー上にcakephpを導入してみましょう。 前提 CentOSにapacheがインストールされている mysqlがインス …

  • English
  • 日本語

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