运行ansible playbook时缺少主机信息

时间:2016-07-08 16:00:55

标签: ansible ansible-playbook ansible-2.x

我有一个ansbile.cfg文件以及目录中的主机文件。在同一目录中,我有一个test_playbook.yml文件。这三个都复制在下面。当我运行ping(ad-hoc)命令时,我得到一个成功的响应。但是,当我尝试运行ansible-playbook命令时,响应会声明以下内容:

     [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

响应:

关于我可能错误配置的任何想法?

1 个答案:

答案 0 :(得分:9)

-i指定您的库存文件,而不是主机。所以它应该是-i hosts

ansible-playbook test_playbook.yml -i hosts

您也可以直接传递主机,但之后您将不会拥有清单文件中定义的行为主机变量:

ansible-playbook test_playbook.yml -i testserver,

,使ansible将其视为主机列表,否则会将其视为文件名。

如果您想将其限制为主机testserver,您可以使用--limit选项

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