2017-01-02 44 views

回答

2

看起来你不能指定下载源位置。 APT,RPM或pip安装命令都是在Vagrant中硬编码的。例如:

  • ansible_install.rb(用于Debian):

    def self.ansible_apt_install(machine) 
    
        // skipped 
    
         machine.communicate.sudo install_backports_if_wheezy_release 
         machine.communicate.sudo "apt-get update -y -qq" 
         machine.communicate.sudo "apt-get install -y -qq ansible" 
        end 
    
        def self.pip_setup(machine) 
         machine.communicate.sudo "apt-get update -y -qq" 
         machine.communicate.sudo "apt-get install -y -qq build-essential curl git libssl-dev libffi-dev python-dev" 
         Pip::get_pip machine 
        end 
    
  • pip.rb(使用:pip时):

    machine.communicate.sudo "pip install #{upgrade_arg}#{package}#{version_arg}" 
    

这就是说,如果你想避免做下载每个vagrant up,您可以:

  • 使用APT或yum的代理。例如Apt-Cacher(您需要修改配置以使用shell配置指向代理);
  • 使用像vagrant-cachier这样的流浪汉插件(不适用于pip,通常不可靠并且不能维护);
  • 使用shell供应商使用所需的命令下载并安装Ansible;
  • 可能是最好的:使用Vagrant Packer创建您的已定制包装盒(即Ansible)的定制盒子图像。
+0

谢谢,不知道Vagrant Packer,会检查出来。 – ilanco