2016-07-08 23 views
4

ディレクトリにansbile.cfgファイルとホストファイルがあります。同じディレクトリに、私はtest_playbook.ymlファイルを持っています。 3つはすべて下にコピーされます。 ping(アドホック)コマンドを実行すると、正常な応答が得られます。私はansible-脚本コマンドを実行しようとすると、しかし、応答は次のように述べている:実行可能なプレイブックのホスト情報がありません

 [WARNING]: Host file not found: testserver 

    [WARNING]: provided hosts list is empty, only localhost is available 

skipping: no hosts matched 

ansible.cfg

[defaults] 
hostfile = hosts 
remote_user = testuser 
##private_key_file = .vagrant/machines/default/virtualbox/private_key 
##host_key_checking = False 

ホスト

[webservers] 
testserver ansible_ssh_host=ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com ansible_ssh_port=1234 

test_playbook。 yml

--- 
    - hosts: all 
     remote_user: testuser 
     become: yes 
     become_user: testuser 
     tasks: 
     - group: 
      name: devops 
      state: present 
     - name: create devops user with admin privileges 

     user: 
      name: devops 
      comment: "Devops User" 
      uid: 2001 
      groups: devops 

私が実行しているコマンドは以下の通りです:

ansible-playbook test_playbook.yml -i testserver -vvv 

応答:

私が間違って設定しているかもしれないもの上の任意のアイデア?

答えて

9

-iは、ホストではなく、インベントリファイルを指定します。したがって、それは-i hostsでなければなりません。

ansible-playbook test_playbook.yml -i hosts 

また、直接ホストを渡すことができますが、その後、あなたは、インベントリファイルで定義された行動のホストがvarsはありません。

ansible-playbook test_playbook.yml -i testserver, 

,はansibleがリストとして扱いますそれ以外の場合はファイル名として扱います。

あなたはできるだけ早くSOに私を許す限り受け付けます--limitオプション

ansible-playbook test_playbook.yml -i hosts --limit testserver 
+0

で作業することができtestserverホストにそれを制限したい場合は - 感謝。ホストファイルに指定されているサーバー名ではなく、インベントリファイル名を指定する必要がありました –

関連する問題