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

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

関連記事

Mysqlテーブルの照合順序を変更する

概要 みなさんこんにちはcandleです。今回はテーブルの照合順序を変更する方法を行います。 この方法はやっても、mysqlクエリー1行ですみます。早速やりましょう。 テーブルの照合順序を変更する 次 …

ubuntuでnginxの起動と最低限のコマンド

概要 今回は、nginxの起動と最低限のコマンドをまとめました。 前提 nginxがインストールされている SPONSORED LINK nginxの起動と停止と再起動 nginxはインストールした当 …

ruby on railsのckeditorの画像のアップロード先をcarrierwaveとfogを使ってS3にする

概要 railsのckeditorはデフォルトでrailsのuploadsフォルダにアップロードしますが、 それだとサーバの容量を取ってしまうので、画像のアップロード先をS3に上げてみたいと思います。 …

td-agentでRails 4のproduction.logを取得する

English 日本語 概要 みなさんこんにちはcandleです。今回はrails 4のproduction ログをtd-agentで取得してみたいと思います。 数年前にも同じ記事を書いたのですが、説 …

MAMPでSSLを使ったhttps通信を行う

概要 みなさんこんにちはcandleです。最近SSL通信で根幹に関わるセキュリティホールが見つかったのは記憶に新しいですね。 今回扱う、https通信というのは公開鍵暗号方式を使ったセキュアな通信のこ …

  • English
  • 日本語

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