【问题标题】:Running a command as a specific user in Test Kitchen在 Test Kitchen 中以特定用户身份运行命令
【发布时间】:2018-03-29 04:03:41
【问题描述】:

我知道您可以在 Chef recipes 中运行“执行”模块,并且它包含一个 cwd 和用户参数,允许您在当前工作目录中以该用户身份运行命令。这是我在代码中所做的:

execute 'rpmdev-setuptree' do
   user 'rpmbuild'
   cwd '/home/rpmbuild'
   live_stream true
   action :run
end

我一直在以 root 身份执行此命令或显式更改目录(即执行 'cd /home/rpmbuild && rpmdev-setuptree)进行不同的变体,但这不起作用。无论我做什么,厨师似乎都决心在 /root 目录中运行此命令。为什么会这样?请注意,我一直在做:

execute 'cd /home/rpmbuild  && rpmdev-setuptree' do
   user 'rpmbuild'
   cwd '/home/rpmbuild'
   live_stream true
   action :run
end

或者

execute 'sudo su - rpmbuild  && rpmdev-setuptree' do
   user 'root'
   cwd '/home/rpmbuild'
   live_stream true
   action :run
end 

谁能告诉我为什么会这样?我正在尝试在 /home/rpmbuild 目录中运行 rpmdev-setuptree,以便它构建路径,但它总是在 /root 目录中运行此命令。

输出在我运行的 sn-p 之间变化,有些完成但没有输出。但是当我尝试单独使用 rpmdev-setuptree 时,我没有注意到它会:

   [execute] touch: cannot touch ‘/root/.rpmmacros’: Permission denied
      grep: /root/.rpmmacros: No such file or directory
      /bin/rpmdev-setuptree: line 43: [: -lt: unary operator expected
      grep: /root/.rpmmacros: No such file or directory
      /bin/rpmdev-setuptree: line 57: [: -lt: unary operator expected
      grep: /root/.rpmmacros: No such file or directory
      /bin/rpmdev-setuptree: line 75: [: -lt: unary operator expected
      mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
      mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
      mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
      mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied
      mkdir: cannot create directory ‘/root/rpmbuild’: Permission denied

【问题讨论】:

    标签: chef-infra test-kitchen


    【解决方案1】:

    您确定问题是工作目录,而不是 rpmdev-setuptree 试图使用 $HOME 做某事吗?由于各种不太好的原因,我们不会在以不同用户身份运行时自动设置$HOME,因此您可能还需要添加environment 'HOME' => '/home/rpmbuild'

    【讨论】:

    • 我会试一试
    • 显示命令的错误输出可能有助于诊断问题。
    • 这是我们要修复的列表,其中一个小时 :)
    • 哈别担心..这只是星期三:-)
    猜你喜欢
    • 1970-01-01
    • 2010-11-08
    • 2010-12-26
    • 2011-10-18
    • 2013-07-31
    • 2017-07-12
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多