2017-06-05 9 views
0

シェフガードブロックが必要です。そのブロックを特定のユーザーとして実行したいとします。シェフガードブロックを別のユーザーとして実行する

私はそれをドキュメントに記載されていているので、ユーザーとしてガードでシェルコマンドを実行する方法を知っている:

not_if 'grep adam /etc/passwd', :user => 'adam' 

私はいくつかのより複雑な操作を行うことができますので、代わりにガードブロックを使用する場合、私はpostgresユーザーとしてコードを実行したいと思います。例:

only_if do 
    c = PGconn.connect(user: 'postgres', dbname: 'postgres') 
    # do some other stuff with the postgres connection 
end 

userまたはその他の属性をここに割り当てるにはどうすればよいですか。

答えて

0

コードブロックは、ユーザーとして実行されるものではなく、Rubyが実行しているすべてのユーザーとしてRubyによって実行されます。この場合、おそらくpsqlにシェルして、サブプロセスの通常のようにユーザーを変更したいと思うでしょう。

関連する問題