Ansible playbook不在角色中运行任务

Ansible playbook不在角色中运行任务,ansible,ansible-2.x,Ansible,Ansible 2.x,我有一个简单的ansible角色和一个任务,但问题是当我运行它时 这些任务实际上并没有启动 当我尝试在没有角色的情况下执行任务,但不确定在尝试使用角色时为什么会发生这种情况时,它就起作用了 ansible版本:ansible 2.2.3.0 这是我的跑步 - name: add user to general purpose hosts: localhosts roles: - adduser cd adduser/tasks/main.yml - name: Creat

我有一个简单的ansible角色和一个任务,但问题是当我运行它时 这些任务实际上并没有启动

当我尝试在没有角色的情况下执行任务,但不确定在尝试使用角色时为什么会发生这种情况时,它就起作用了

ansible版本:ansible 2.2.3.0

这是我的跑步

 - name: add user to general purpose
   hosts: localhosts
   roles:
    - adduser
cd adduser/tasks/main.yml

- name: Create user
  shell: sudo adduser tom
运行

ansible-playbook run.yml -vvv
这是输出

 Using /etc/ansible/ansible.cfg as config file
[WARNING]: provided hosts list is empty, only localhost is available


PLAYBOOK: run.yml 
**************************************************************
1 plays in run.yml

PLAY RECAP 
*********************************************************************

这是因为您的
主机:
字段中有一个输入错误;名称是
localhost
而不是
localhost
(因为没有本地主机的复数形式)


此外,虽然这不是您要求的,但(a)在模块中手动使用
sudo
(b)无条件调用
adduser
,这是个坏消息,因为它会在您第二次运行该剧本时爆炸。您需要告诉ansible任务需要提升权限,然后利用模块允许ansible确保在该角色结束时有这样的用户:

- name: Create user
  become: yes
  user:
    name: tom

更具声明性的好处是(a)ansible就是这样工作的(b)它允许ansible在运行期间是幂等的

您是否尝试过手动强制创建主机列表文件
ansible playbook run.yml-k-i hostsfile
@ZumodeVidrio谢谢,它可以与其他主机一起工作,当我在命令中传递-i hostsfile参数时,它也可以用于本地主机