LoginSignup
16
16

More than 5 years have passed since last update.

パスワード認証でログインするサーバに対してserverspecでテストを実行する

Last updated at Posted at 2013-06-13

2014/2/7
本投稿の内容はserverspec本家のTipsへ掲載されることとなりました。
http://serverspec.org/advanced_tips.html
(k1LoWさん、ありがとうございます!)

パスワード認証でログインするサーバに対してserverspecでテストを実行する際、ログインパスワードを指定する方法がないような気がするので、できるようにします。
(もし他の方法をご存知の方いらっしゃいましたら教えて下さいm(_ _)m)

編集

spec_helper.rbを編集します。

spec_helper.rb
@@ -1,13 +1,13 @@
 require 'serverspec'
 require 'pathname'
 require 'net/ssh'
+require 'highline/import'

 include Serverspec::Helper::Ssh
 include Serverspec::Helper::DetectOS

 RSpec.configure do |c|
   if ENV['ASK_SUDO_PASSWORD']
-    require 'highline/import'
     c.sudo_password = ask("Enter sudo password: ") { |q| q.echo = false }
   else
     c.sudo_password = ENV['SUDO_PASSWORD']
@@ -25,7 +25,11 @@
       c.host  = host
       options = Net::SSH::Config.for(c.host)
       user    = options[:user] || Etc.getlogin
-
+      if ENV['ASK_LOGIN_PASSWORD']
+        options[:password] = ask("\nEnter login password: ") { |q| q.echo = false }
+      else
+        options[:password] = ENV['LOGIN_PASSWORD']
+      end
       c.ssh   = Net::SSH.start(c.host, user, options)
     end
   end

実行

上記、編集がされている状態で以下のように実行します。
(serverspecのSudoパスワード指定の実行方法とほとんど同じです。)

パスワードをプロンプトで入力する場合

ASK_LOGIN_PASSWORD=1 rake spec

パスワードを明示する場合

LOGIN_PASSWORD=hogehoge rake spec
16
16
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
16