0

背景:我經常最終在不同的操作系統上運行不同的筆記本電腦。這意味着我會浪費大量時間重新安裝相同的程序和應用程序。我決定嘗試使用Vagrant和Ansible自動化。Vagrant-> Ansible:找不到主機文件,提供的主機列表爲空,沒有主機匹配

問題:,因爲我想這個版本是在不同的操作系統我想流浪旋轉起來簡單ubuntu/trusty64盒部署,並Ansible安裝和執行在Ubuntu中,但我有麻煩Ansible主機。我已經閱讀了Ansible文檔並閱讀了有關庫存的內容,但是沒有清楚地知道這些工作或應該在我的設置中如何定義這些內容。作爲參考,我對Vagrant和Ansible都很陌生,但對VirtualBox有經驗。任何幫助,將不勝感激

堆棧跟蹤這裏:stacktrace

Vagrantfile:

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

# vagrant plugin install vagrant-ansible-local 

VAGRANTFILE_API_VERSION = "2" 

$ansible_install_script = <<SCRIPT 
if ! which ansible >/dev/null; then 
    apt-get update -y 
    apt-get install -y software-properties-common 
    apt-add-repository -y ppa:ansible/ansible 
    apt-get update -y 
    apt-get install -y ansible 
fi 
SCRIPT 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.define "dev-machine", primary: true do |machine| 
    machine.vm.box = "ubuntu/trusty64" 
    machine.vm.hostname = 'local.dev-machine.box' 
    machine.vm.network :private_network, :ip => '10.20.1.2' 

    machine.vm.provider "virtualbox" do |vb| 
     vb.gui = true 
     vb.memory = "8192" 
    end # vb 

    machine.vm.provision "shell", inline: $ansible_install_script 

    machine.vm.provision "ansibleLocal" do |ansible| 
     ansible.guest_folder = "/vagrant-ansible" 
     ansible.raw_arguments = "--inventory=/vagrant-ansbile/ansible_hosts" 
     ansible.playbook = "playbook.yml" 
     ansible.limit = "local.dev-machine.box" 
    end # ansible 
    end # machine 
end # config 

playbook.yml:

--- 
- hosts: all 
    become: yes 
    become_method: sudo 
    tasks: 
    - name: Check Ubuntu 14.04 running 
     assert: 
     that: 
      - ansible_distribution == 'Ubuntu' 
      - ansible_distribution_release == 'trusty' 

    - name: update apt cache 
     apt: update_cache=yes 

    - name: install git 
     apt: name=git-core state=latest 

    - name: Install Python 3.4 
     apt: name={{items}} state=latest 
     with_items: 
     - python 
     - python-dev 
     - python-virtualenv 
     - python-setuptools 
     - python-pip 

回答

0

首先,你必須在名稱中有語法錯誤供應商 - 它應該是ansible_local而不是ansibleLocal。第二,你似乎只想在一臺機器上運行這個默認情況下的遊戲手冊。以下定義:

machine.vm.provision "ansible_local" do |ansible| 
    ansible.playbook = "playbook.yml" 
end # ansible 

playbook.yml(存儲在主機上的流浪項目目錄)使用在漂浮框Ansible可執行文件運行。您無需爲此指定任何其他選項,Vagrant會自動提供指向本地計算機的庫存文件作爲目標。


補充說明:

不要APT使用Ansible。這是幾代人(v 1.7.2)。

改爲配置pip並使用當前的官方版本PyPI

+0

謝謝,我沒有看到語法錯誤。 – jhole89