Ansible 特权升级(become)使用场景
本文总结了Ansible中需要root/管理员权限的核心操作场景,包括系统配置修改、软件包管理、用户权限操作、底层系统操作和网络端口管理等。判断标准是当前普通用户无权限执行且必须通过sudo/su提权时,需设置become:yes。文章提供了基础用法示例,并指出常见误区,如操作普通文件不需要提权、专用模块配合become即可等注意事项。
一、核心场景:操作需要 root/管理员权限
1. 系统级配置修改
• 写入系统目录:/etc/、/usr/、/boot、/var/log 等
• 修改系统配置:hosts、resolv.conf、sudoers、sysctl 等
• 管理系统服务:启动/停止/开机自启系统服务
2. 软件包管理
• 安装/卸载/更新系统级软件包:yum、apt、dnf、pip 系统级安装
3. 用户与权限操作
• 创建/删除系统用户、用户组
• 修改文件/目录属主、权限(chown、chmod)
• 管理 sudo 权限配置
4. 底层系统操作
• 磁盘分区、挂载、格式化
• 启动/关闭防火墙、修改内核参数
• 查看/操作系统日志、进程
5. 网络与端口操作
• 绑定特权端口(<1024)
• 修改网络配置、路由表
二、判断标准
当前操作用户(普通远程用户)无权限执行,必须通过 sudo/su 提权时,就需要 become: yes。
三、基础用法
- name: 安装Nginx(需root)
ansible.builtin.yum:
name: nginx
state: present
# 开启特权升级,默认提权到root
become: yes
# 可选:指定提权到其他用户
# become_user: oracle
四、常见误区
• 操作自身家目录、普通文件时不需要提权
• 专用模块(copy、yum 等)配合 become 即可,无需再在命令里加 sudo
• 非特权端口(>1024)、普通用户进程不需要提权
更多推荐
所有评论(0)