Ansible playbook不在角色中运行任务
我有一个简单的ansible角色和一个任务,但问题是当我运行它时 这些任务实际上并没有启动 当我尝试在没有角色的情况下执行任务,但不确定在尝试使用角色时为什么会发生这种情况时,它就起作用了 ansible版本:ansible 2.2.3.0 这是我的跑步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
- 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参数时,它也可以用于本地主机