1

Vagrant + Ansible でいくつかの開発環境をプロビジョニングしようとしています。OSX をホストとして、CentOS 5.6 をゲストとして使用しています。

これは私のVagrantfileです

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "centos56"

  config.vm.box_url = "http://dl.dropbox.com/u/9227672/centos-5.6-x86_64-netinstall-4.1.6.box"

  config.vm.provision "ansible" do |ansible|
    ansible.playbook  = "playbook.yml"
    ansible.verbose = true
  end

end

これは私のプレイブックです:

---
- hosts: all
  tasks:
    - name: PING
      command: ping 127.0.0.1 

これはエラーです:

~/dev/vms/wlsCluster/master2> vagrant provision
[default] Running provisioner: ansible...

PLAY [all] ******************************************************************** 

GATHERING FACTS *************************************************************** 
fatal: [default] => {'msg': "FAILED: (25, 'Inappropriate ioctl for device')", 'failed': True}

TASK: [PING] ****************************************************************** 
FATAL: no hosts matched or all hosts have already failed -- aborting


PLAY RECAP ******************************************************************** 
       to retry, use: --limit @/Users/brunajardim/playbook.retry

default                    : ok=0    changed=0    unreachable=1    failed=0   

Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

秘密鍵に関連する可能性があることを読みました。そして、*--private-key=$HOME/.vagrant.d/insecure_private_key* のようなパラメーターを使用して問題を解決できること。では、どのようにvagrant provisionコマンドを ansible で使用し、このパラメーターをそれに渡しますか?

4

4 に答える 4

1

Jenkins ビルドなどの非インタラクティブな環境で、Ansible が (何らかの理由で) 入力を求めようとすると、「デバイスに不適切な ioctl」エラー メッセージが表示されます。ここで欠落している「デバイス」は TTY です。

おそらく、Ansible がホスト キーまたはパスワードの確認を求めていたのでしょう。

于 2014-09-29T20:49:31.980 に答える
1

奇跡的に、Vagrant と Ansible のバージョンを更新したところ、うまくいき始めました。何が起こったのか本当にわかりません。現在、Vagrant 1.3.5 と Ansible 1.4 (devel 6008ea40ee) で実行しています。

答えてくれてありがとう。

于 2013-11-13T18:55:11.387 に答える