Ansible普通用户sudo执行指令

一、应用场景

1.linux机器都禁止使用root远程登陆,需要ansible来实现切换用户文件分发。

二、实验步骤

1、配置资源清单hosts文件

[root@master playbook]# cat /etc/ansible/hosts
[test_su]
192.168.1.232 ansible_ssh_user=saas ansible_ssh_pass='xE#bH2bmot3sz' ansible_become_pass='9Cg6Rxjlvtfx^'
192.168.1.233 ansible_ssh_user=saas ansible_ssh_pass='xE#bH2bmot3sz' ansible_become_pass='9Cg6Rxjlvtfx^'
  • 注意:
    • 密码部分要加单引号
    • 在2.5版本,变量也做了变化,ansible_become_pass替换了之前的ansible_sudo_pass or ansible_su_pass
    • Ansible普通用户sudo执行指令需要sshpass,使用过程中发现sshpass和synchronize模块冲突,可以使用copy模块代替。

2、Ansile客户端禁止root直接远程登陆,并创建普通用户saas

[root@master playbook]# grep -i “^PermitRootLogin” /etc/ssh/sshd_config
PermitRootLogin no
[root@master playbook]# systemctl restart sshd

3、Ansible服务端分发文件

[root@master playbook]# ansible test_su -S -R root -m copy -a “src=/etc/hosts dest=/etc/hosts”

4.Ansible普通用户sudo执行指令
[root@master playbook]# ansible test_su -S -R root -m shell “whoami”

5.参数解读
-S, –su run operations with su (deprecated, use become)
-R SU_USER, –su-user=SU_USER
run operations with su as this user (default=root)
(deprecated, use become)

-R后面紧跟用户名,-S可以在前也可以在后。

到此,在客户端的messages日志里可以看到相关信息

6.这里需要注意,普通用户的家目录是要存在,并切该普通用户要有写的权限的,否则会出现认证失败报错,如果这个普通用户没有家目录或者家目录没有写权限在不修改远端主机也有办法可以搞定,修改ansible主机的ansible.cfg配置文件.

[root@master playbook]# vim /etc/ansible/ansible.cfg 
[defaults]

# some basic default values...

#inventory      = /etc/ansible/hosts
#library        = /usr/share/my_modules/
#module_utils   = /usr/share/my_module_utils/
#remote_tmp     = ~/.ansible/tmp     #默认在家目录下
remote_tmp     = /tmp/.ansible/tmp  #改成tmp目录
#local_tmp      = ~/.ansible/tmp
#plugin_filters_cfg = /etc/ansible/plugin_filters.yml
#forks          = 5
#poll_interval  = 15
#sudo_user      = root
#ask_sudo_pass = True
#ask_pass      = True
#transport      = smart
#remote_port    = 22
#module_lang    = C
#module_set_locale = False

#tmp目录一般都有写的权限,改成临时目录为/tmp下即可

参考链接:http://blog.51cto.com/ityunwei2017/2131111

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值