ansible - 如何为特定任务覆盖 ansible_become?

标签 ansible

我的主机文件为给定的主机定义:

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如所须?

最佳答案

重写所有内容以反转变成逻辑并不总是可行的。有时您只需要覆盖特定任务的库存成为设置,有一种简单的方法可以做到这一点。而不是设置 become在任务上,改为设置 var ansible_become对于任务:

- name: This will run without become
  command: whoami
  vars:
    ansible_become: false

关于ansible - 如何为特定任务覆盖 ansible_become?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001760/

相关文章:

json - 从 json 输出中提取一个变量,然后使用 ansible 调试和注册输出

ansible - 在 ansible_mounts 中打印文件系统

ubuntu - Vagrant 中的 Redis(Ubuntu): how to forward redis port?

linux - ansible - 通过 ansible-playbook 执行 InstallHalyard.sh 脚本时没有任何反应

ansible - 如何在 ansible playbook 中干净地编辑 sshd_config 以获取基本安全选项?

java - 使用 application.yml 在外部目录启动时未拾取 Spring Boot 外部配置

bash - 在 Ansible 中执行带参数的 bash 脚本

ansible - 无法对/etc/下的文件使用查找文件模块

python - docker-compose构建错误: command 'gcc' failed with exit status 4

ansible - CDK 是否执行编排?除了配置之外