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
复制代码

 

posted on   太白金星有点烦  阅读(613)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2021-05-09 8.修改linux服务器网络接口名称以及修改主机名
2021-05-09 1.大数据之LVS和keepalived

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示