5. ansible之sudo提权
在linux中为了安全,一般root(超级管理员权限)是不可能随便给人用的,但是在linux中有些命令只有root才能执行,因此我们用普通用户执行这些命令时需要给他们添加sudo权限
配置文件/etc/sudoers 注意:这个配置只要root用户才有权限进行修改
这里使用ansible批量创建一个普通用户,然后给这个用户用sudo提权
# 创建用户alice ansible test -m user -a "name=alice password={{'123'|password_hash('sha512')}}" # sudo权限,让alice可以执行任何命令 ansible test -m lineinfile -a "path=/etc/sudoers line='alice ALL=(ALL) NOPASSWD:ALL'
修改主配置文件ansible.cfg
[defaults] inventory = ~/ansible/hosts remote_user = alice #以什么用户远程被管理主机 [privilege_escalation] become = true # 是否需要切换用户 become_method = sudo # 如何切换用户 become_user = root # 切换成什么用户 become_ask_pass = False # sudo是否需要输入密码
当在控制机上用ansible批量管理其他节点(如果用alice用户管理),需要加上上面的配置文件,且需要控制机到各个节点的实现免密
for i in db01 db01 do ssh-copy-id alice@$i done
这样就可以用普通用户管理其他节点了
补充:我们用ansible配置host文件时,账户和密码以及端口都是统计管理,但是如果需要做特别设置(自定义),这里我们可以改一下hosts文件
修改主机清单文件,添加变量(多个变量可以用空格分隔) [test] db01 ansible_ssh_port=220 #自定义远程ssh端口 db02 ansible_ssh_user=alice #自定义远程连接账户 [servers] db03 ansible_ssh_pass=密码 #自定义远程连接密码 db04 ansible_ssh_private_key_file=密钥文件 #自定义远程连接密钥 db05
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2021-05-09 8.修改linux服务器网络接口名称以及修改主机名
2021-05-09 1.大数据之LVS和keepalived