2017-02-12 3 views
1

マイVagrantfileがどのように見えるの任意のホストに一致しない `を発生させます:は--limit`が

--- 
- name: Setup system 
    hosts: localhost 
    become: true 
    become_user: root 
    roles: 
    - { role: role1 } 
    - { role: role2 } 

私のhostsファイルは、次のようになりますように

Vagrant.configure("2") do |config| 
    config.vm.box = "vag-box" 
    config.vm.box_url = "boxes/base.box" 

    config.vm.network :private_network, ip: "192.168.100.100" 

    config.vm.provision :setup, type: :ansible_local do |ansible| 
    ansible.playbook = "playbook.yml" 
    ansible.provisioning_path = "/vagrant" 
    ansible.inventory_path = "/vagrant/hosts" 
    end 
end 

マイ脚本ファイルが見えます

[localhost] 
localhost # 192.168.100.100 

私は次のエラーが発生します:

ERROR! Specified --limit does not match any hosts

+1

私はあなたと同じエラーを得ることはできませんが、基本的にあなたが定義した形式でホストファイルは必要ありません。 'localhost'グループを定義せずに' hosts:localhost'に対してプレイブックを実行することができます。 'ansible.inventory_path'とコメントをコメントアウトしてください。 – techraf

答えて

1

最初に: "localhost"は、慣例により127.0.0.1アドレスに割り当てられた名前です。これは、ローカルマシンのループバックアドレスを指します。あなたのホストファイルのコメントに基づいて、これを使用しようとしているとは思えません。

第2:VagrantのAnsibleプロビジョニング担当者は、通常、Vagrantボックスをプロビジョニングするために必要なコンテンツを含むカスタムインベントリファイルを作成します。たとえば:

# Generated by Vagrant 

myvagrantbox ansible_ssh_host=127.0.0.1 ansible_ssh_port=2222 ansible_ssh_user='vagrant' ansible_ssh_private_key_file='/home/sage/ansible/vagrant/myvagrantbox/.vagrant/machines/myvagrantbox/virtualbox/private_key' 

インベントリファイルを上書きしているとして、あなたはあなたの浮浪者ボックスのホスト名のような行を指定する必要があります。

設定からansible.inventory_path = "/vagrant/hosts"行を省略すると、JustWork(tm)になります。構成にconfig.vm.hostname = "myvagrantboxname"を指定して、使用するホスト名を知ることもできます。

詳細についてはUsing Vagrant and AnsibleVagrant -- Ansible Provisionerのドキュメントをご覧ください。

+0

私は最初にドキュメントを読むべきだと思います。質問https://www.vagrantup.com/docs/provisioning/ansible_local.htmlに関連するもの – techraf