gpt4 book ai didi

macos - Vagrant 在配置时无法运行 ansible

转载 作者:行者123 更新时间:2023-12-03 03:26:25 24 4
gpt4 key购买 nike

我创建了一个 Vagrantfile 来使用 Ansible 配置一个新盒子。 Vagrantfile 和 Ansible 剧本都是我在升级到 OS X Yosemite 之前使用过的。我可以成功vagrant up,但是当我尝试vagrant provision时,出现以下错误:

➜  NNL  vagrant provision
==> default: Running provisioner: ansible...
The executable 'ansible-playbook' Vagrant is trying to run was not
found in the PATH variable. This is an error. Please verify
this software is installed and on the path.

更新 2:以下是上述命令的详细 (vvvv) 输出:

➜  ta  vagrant provision
==> default: Running provisioner: ansible...
ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false PYTHONUNBUFFERED=1 ANSIBLE_SSH_ARGS='-o
ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --private-
key=/Users/mike/.vagrant.d/insecure_private_key --user=vagrant --connection=ssh --
limit='default' --inventory-file=/Users/mike/Desktop/ta/.vagrant/provisioners/ansible/inventory
-vvvv vagrant.yml
The executable 'ansible-playbook' Vagrant is trying to run was not
found in the PATH variable. This is an error. Please verify
this software is installed and on the path.

作为故障排除的一部分,我已经更新了 ansible 和 vagrant:

➜  NNL  ansible --version
ansible 1.8.1
configured module search path = None
➜ NNL ansible-playbook --version
ansible-playbook 1.8.1
configured module search path = None
➜ NNL vagrant --version
Vagrant 1.6.5

Ansible 确实已安装,并且/usr/local/bin 位于 PATH 环境变量中。

➜  NNL  which ansible
/usr/local/bin/ansible
➜ NNL echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

更新 1:这是我的 Vagrantfile,我已将其削减到最低限度:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

config.vm.box = "precise64"
config.vm.hostname = "NNL"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 3000, host: 3000
config.vm.network :forwarded_port, guest: 9200, host: 9200
config.ssh.forward_agent = true
config.vm.provision "ansible" do |ansible|
ansible.playbook = "vagrant.yml"
end
end

我的另一个想法是我正在使用 zsh 并且 vagrant 可能正在通过 bash 或其他 shell 执行命令,所以我还尝试添加一个 .bashrc 文件以确保/usr/local/bin 位于那个壳也是。看起来是这样,但我仍然遇到同样的错误:

➜  NNL  bash
bash-3.2$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
bash-3.2$ which ansible
/usr/local/bin/ansible

我现在不知道如何继续。作为脚注,当我尝试重新配置它们时,我在 Mavericks 下成功创建的其他 Vagrant 盒现在也失败并出现相同的错误。

最佳答案

到目前为止,我还没有使用过 Yosemite,但如果我了解的话,您的相同设置在以前版本的 OS X 上运行良好。

首先收集更多信息:当 vagrant box 启动时,您能否重新运行 vagrant 日志中显示的 ansible-playbook 命令,但直接从 shell 运行(bash 或 zsh 应该不重要):

ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false PYTHONUNBUFFERED=1 ANSIBLE_SSH_ARGS='-o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s' ansible-playbook --private-key=/Users/mike/.vagrant.d/insecure_private_key --user=vagrant --connection=ssh --limit='default' --inventory-file=/Users/mike/Desktop/ta/.vagrant/provisioners/ansible/inventory -vvvv vagrant.yml

结果是什么?

如果它工作正常(根据你的问题描述,我期望如此),那么我们确信我们必须在 Vagrant 内部追逐一些东西(也许与 Yosemite 环境结合)。

关于macos - Vagrant 在配置时无法运行 ansible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com