从本地计算机上安装Ansible on Vagrant guest虚拟机

时间:2017-01-02 22:57:31

标签: vagrant ansible

我正在使用Vagrant和ansible_local配置器。有没有办法指定Ansible将从哪里下载? install_mode仅选择如何安装Ansible,而不是从哪里安装。

*编辑 使用“where”我的意思是指定下载位置。

1 个答案:

答案 0 :(得分: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这样的Vagrant插件(不适用于pip,通常不可靠且不能维护);
  • 使用shell配置程序使用您想要的命令下载并安装Ansible;
  • 可能是最好的:使用Vagrant Packer创建已安装所需软件包(即Ansible)的自定义框图像。