É possível executar o provisionador Vagrant Ansible em uma máquina host Windows?

6

Parece que o Vagrant não me permite provisionar automaticamente o Provedor Ansible no Windows usando o Vmware.

Não tenho certeza se o Ansible deve ser instalado na máquina host (no meu caso Windows) ou no convidado.

Eu tentei provisionar automaticamente a máquina convidada com o seguinte script de 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

Que instala Ansible perfeitamente bem, mas meu prompt de comando me diz a seguinte mensagem:

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

Ao inspecionar o convidado e tentar executar o 'ansible-playbook', ele reconheceu o comando perfeitamente bem.

Então pensei que talvez o Vagrant exija "ansible-playbook" na variável de ambiente path do guest.

Eu executei o seguinte comando para adicionar 'ansible-playbook' à minha variável PATH em minha máquina guest linux.

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

Também não funcionou.

O que me leva à conclusão de que o Ansible precisa ser instalado no host, porque% PATH% também parece ser necessário no Windows.

E como o Ansible não está disponível para o Windows, provavelmente não posso usar o Ansible em um host do Windows.

Estou correto em minhas suposições, ou estou faltando alguma coisa?

    
por Hyperfocus 23.09.2013 / 20:26

1 resposta

6

Eu tive sucesso instalando o Ansible (e subseqüentemente executando um playbook) em um novo convidado Vagrant com o seguinte script bash (testado com o 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
    
por 23.09.2013 / 22:09