一、简介:
Ansible设置的用户列表为普通用户,使用现有的权限提升系统以 root 权限或其他用户的权限执行任务。因为此功能允许您“成为”另一个用户,不同于登录机器的用户(远程用户),我们称之为become
. 该become
关键字使用现有的权限提升工具,如sudo、su等,通俗的讲就是hosts列表设定的普通用户,要以root权限运行。
二、参数简介
become:设置为yes激活权限提升。
become_user :设置为具有所需权限的用户 - 您成为的用户,而不是您登录的用户。并不意味着,允许将其设置为主机级别。必须跟become: yes 一起使用。
become_method :在播放或任务级别)覆盖ansible.cfg中设置的默认方法,设置为sudo / su / pbrun / pfexec / doas / dzdo / ksu / runas / machinectl
使用前提:在hosts中配置的登录账号在受控端机器上需要有sudo的权限
在/etc/sudoers
ubuntu ALL=(ALL) NOPASSWD:ALL
三、使用方法
方法一:ansible.cfg配置文件直接设定(注释掉前两行)
[privilege_escalation]
become=True
become_method=sudo
#become_user=root
#become_ask_pass=False
方法二:task方式:
- name: Run a command
command: crontab -l
become: yes
become_method: sudo
方法三:终端方式:(--become-method=sudo可以省略默认)
ansible dev -a 'crontab -l' -become=yes --become-method=sudo