我的主机文件为给定的主机定义:
ansible_ssh_user=root
ansible_become_user=my_user
ansible_become=true
在几项任务中,我不想成为my_user。设置become: false
无效,而ansible_become: false
导致"错误:ansible_become不是Ansible任务或处理程序中的合法参数"
我想做的是什么?我假设典型的模式与我在这里做的相反,并以my_user身份连接,然后根据需要使用become_user: root
?
答案 0 :(得分:1)
ansible_become_user=my_user
和ansible_become=true
。become: yes
和become_user: <some-user>
添加到您想要成为的任务中。答案 1 :(得分:1)
重写所有内容以反转变为逻辑并不总是可行的。有时您只需要重写清单就可以完成特定任务,这是一种简单的方法。不用在任务上设置become
,而是要为任务设置变量ansible_become
:
- name: This will run without become
command: whoami
vars:
ansible_become: false
答案 2 :(得分:0)
---
- name: example play
hosts: myhost
tasks:
- name: run as user in inventory
debug: msg=$USER
- name: run as root user
become: true
become_user: root
debug: msg=$USER