Назад | Перейти на главную страницу

Можно ли запустить провайдер Vagrant Ansible на хост-машине Windows?

Похоже, что Vagrant не позволяет мне автоматически инициализировать Ansible Provider в Windows с помощью Vmware.

Я не совсем уверен, должен ли Ansible быть установлен на хост-машине (в моем случае Windows) или на гостевой.

Я попытался автоматически подготовить гостевую машину с помощью следующего сценария оболочки:

#!/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

Что устанавливает Ansible отлично, но моя командная строка сообщает мне следующее сообщение:

The executable ansible-playbook Vagrant is trying to run was not found in the %PATH% variable

Осмотрев гостя и попытавшись выполнить «ansible-playbook», он отлично распознал команду.

Тогда я подумал, может быть, Vagrant требует 'ansible-playbook' в переменной окружения path гостя.

Я выполнил следующую команду, чтобы добавить ansible-playbook к моей переменной PATH на моей гостевой машине linux.

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/ruby/bin/:ansible-playbook

Тоже не сработало.

Это подводит меня к выводу, что Ansible должен быть установлен на хосте, потому что% PATH% также выглядит так, как будто он требуется в Windows.

А поскольку Ansible в настоящее время недоступен для Windows, я, вероятно, не могу использовать Ansible на хосте Windows.

Верно ли я в своих предположениях или что-то упускаю?

Мне удалось установить Ansible (и впоследствии запустить playbook) на новом госте Vagrant со следующим сценарием bash (протестирован с Ubuntu 13.04):

#!/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