在AWS EC2实例(CentOS 6.5)上使用Chef的pip安装轮包

时间:2014-12-22 07:08:13

标签: python amazon-ec2 pip chef

环境:CentOS 6.5,Python 2.7(Anaconda),厨师(10.26)

  • 我需要引导一台只有root用户的机器。 在厨师运行列表中,首先要创建ec2-user,然后运行包括安装Anaconda
  • 的所有食谱。
  • 我的要求是安装Python" wheel"使用pip打包为ec2-user。我在我的食谱中尝试了下面的片段:

    python_pip "wheel" do
      user "ec2-user"
      group "ec2-user"
      action :install
    end
    

上述说法失败了

  

用于构建的临时文件夹(/ tmp / pip-build-root)不属于您的用户!

请注意,我以root用户身份运行chef-client,因为我的用例要求。不确定是否可以这样做。

  • 我还尝试了以下代码片段作为解决方法,但没有成功:

    execute "installing wheel" do
      command <<-EOH
      su - ec2-user
      pip install wheel
      EOH
    end
    

通过它,它以root用户身份安装在默认的python中。

任何人都可以帮我解决这个问题吗?我需要使用Chef安装轮子作为ec2-user。

1 个答案:

答案 0 :(得分:0)

您需要以具有Python安装的写访问权限的用户身份安装Python包。对于系统范围的安装(这是因为你没有指定venv),这几乎肯定是root。为什么您认为要以非root用户身份安装?

除此之外,仅需要wheel包来构建轮式存档而不安装它们。如果可以从PyPI或通过指定的车轮文件夹获得轮子,则将自动使用轮子。

基本上你不需要做任何一部分。