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

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

関連記事

memcachedサーバとruby on railsのdalliを使用してセッションを管理する

概要 みなさんこんにちはcandleです。今回はmemcachedサーバを利用してrailsのセッションを管理してみたいと思います。 一般にrailsでセッション管理をしていると、ブラウザのcooki …

apacheのmod_rewriteでphpのGETパラメータのurlを書き換える

概要 みなさんこんにちはcandleです。今回はphpでgetでパラメータを受け取る際のurlの書き換えです。 例えば、phpよくあるのがこのようなurlではないでしょうか。 http://local …

grepコマンドを使って正規表現を色々試してみるその2

概要 みなさんこんにちはcandleです。今回は前回に引き続き、正規表現を勉強していきましょう。 前提 unixを使用するので、多少、unixコマンドになれていること サンプル文章 今回は下の文章を用 …

ruby on railsのckeditorをdeviseを用いて複数人で投稿できるようにする

概要 みなさんこんにちはcandleです。今回はckeditorの複数人投稿機能をdeviseを用いてやってみたいと思います。ckeditorを使うと分かると思うのですが、誰でも画像のアップロードや削 …

CakePHPでhelloworld

概要 CakePHPでプログラミングのお約束helloworldを行いましょう。 helloworldとは動作確認も含めた、一番最初に書くプログラムコードです。 だいたいはhello worldと単純 …

  • English
  • 日本語

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