我有一个简单的角色,只能完成一项任务,但是问题是我运行它时 任务并未真正开始
当我尝试不使用角色的任务并且不确定为什么尝试使用角色时会发生这种情况时,它就起作用了。
ansible版本:ansible 2.2.3.0
这是我的run.yml
- 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
*********************************************************************
答案 0 :(得分:0)
这是因为您在hosts:
字段中有一个错字;名称是localhost
而不是localhosts
(因为本地主机没有复数形式)
虽然这不是您要的,但(a)在模块中手动使用sudo
(b)无条件调用adduser
则是个坏消息,因为它会第二次轰炸您运行该剧本。您想要做的就是告诉ansible任务需要提升的特权,然后利用user:
模块来允许ansible在该角色结束时确保: / p>
- name: Create user
become: yes
user:
name: tom
更具声明性的好处是(a)ansible的工作方式(b)它允许ansible在各次运行之间都是幂等的