tomomik’s blog

とりあえずのメモ 違ってたらゴメンなさい

ansible_specでsudoパスワードを指定する

ansible_spec いいなぁ! いいところは他のサイトの紹介を参考していただくとして sudoパスワードを指定するときに困ったのでその解決方法をメモ。

普通に下記のようにしても動いてくれない

bundle exec rake serverspec:Ansible-Sample-TDD ASK_SUDO_PASSWORD=1

spec_helper.rb の ENV['ASK_BECOME_PASSWORD'] ってなっているところが原因かな?

when 'ssh'
#
# OS type: UN*X
#
  set :backend, :ssh

  if ENV['ASK_BECOME_PASSWORD']
    begin
      require 'highline/import'
    rescue LoadError
      fail "highline is not available. Try installing it."
    end
    set :become_password, ask("Enter become password: ") { |q| q.echo = false }
  else
    set :become_password, ENV['BECOME_PASSWORD']
  end

ENV['ASK_BECOME_PASSWORD']を ENV['ASK_SUDO_PASSWORD']に変更してみたら sudoパスワードを指定できました。

もっと良い方法あるかと思いますが…