Hyp*_*cus 6 windows vagrant ansible
似乎 Vagrant 不允许我使用 Vmware 在 Windows 上自动配置 Ansible 配置器。
我不确定 Ansible 是否必须安装在主机上(在我的情况下为 Windows)或来宾上。
我尝试使用以下 shell 脚本自动配置来宾机器:
#!/usr/bin/env bash
apt-get update -y
apt-get install openssh-client openssh-server python-pycurl software-properties-common python-software-properties nano -y
sleep 2
echo "deb http://ppa.launchpad.net/rquillo/ansible/ubuntu precise main" >> /etc/apt/sources.list
echo "deb-src http://ppa.launchpad.net/rquillo/ansible/ubuntu precise main" >> /etc/apt/sources.list
sleep 2
apt-get install ansible -y
Run Code Online (Sandbox Code Playgroud)
安装 Ansible 非常好,但我的命令提示符告诉我以下消息:
The executable ansible-playbook Vagrant is trying to run was not found in the %PATH% variable
Run Code Online (Sandbox Code Playgroud)
在检查来宾并尝试执行“ansible-playbook”后,它完全正确地识别了该命令。
然后我想也许 Vagrant 在来宾的路径环境变量中需要“ansible-playbook”。
我运行以下命令将“ansible-playbook”添加到我的 linux 客户机上的 PATH 变量中。
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/ruby/bin/:ansible-playbook
Run Code Online (Sandbox Code Playgroud)
也没有奏效。
这让我得出结论,Ansible 需要安装在主机上,因为 %PATH% 看起来在 Windows 上也是必需的。
由于 Ansible 目前不适用于 Windows,我可能无法在 Windows 主机上使用 Ansible。
我的假设是否正确,还是我遗漏了什么?
我已经成功地使用以下 bash 脚本(使用 Ubuntu 13.04 测试)将 Ansible(并随后运行剧本)安装到新的 Vagrant 来宾上:
#!/usr/bin/env bash
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq
apt-get install -y make git-core
if [[ ! -d /home/vagrant/ansible ]]; then
# Install Ansible dependencies.
apt-get install -y python-mysqldb python-yaml python-jinja2 python-paramiko sshpass
# Checkout the Ansible repository.
git clone https://github.com/ansible/ansible.git /home/vagrant/ansible
mkdir /etc/ansible
echo "localhost" > /etc/ansible/hosts
source /home/vagrant/ansible/hacking/env-setup
echo "source /home/vagrant/ansible/hacking/env-setup" >> /home/vagrant/.bashrc
fi
cd /srv/vagrant
ansible-playbook playbook.yml
Run Code Online (Sandbox Code Playgroud)