ansible 用户提权

在Linux 服务器中,出于安全考虑,往往给用户不是root 账号,而是一个普通用户 。这样对于使用ansible 执行时候就会造成一些权限问题,因此我们希望通过一个普通用户先登陆,再su切到root执行。由于每台主机的普通用户和root用户的密码又不同。希望在通过ansible执行的时候不需要交互输入密码,而是直接执行后输出结果。如何操作呢?

下面方法前提是ansible 主机这个普通用户在远程机器需要有 sudo 权限,如果没有请添加,执行命令:

echo " "你的usernam"   ALL=(ALL)  NOPASSWD: ALL" >> /etc/sudoers

方法一:

修改  ansible.cfg  配置文件 ,将下列参数注释掉 ,再执行

#remote_user = root   远程用户 

[privilege_escalation]

#become=True   允许用户切换

#become_method=sudo   用户切换方式

#become_user=root   切换后用户身份

#become_ask_pass=False  是否需要输入密码

方法二:

在执行ansible 命令时添加执行参数:

–become (-b)  允许切换用户

–become-method  切换方式 默认sudo

–become-user 切换后用户

–ask-become-pass (-K)大写K  忽略提示密码

ansible 10.203.90.114  -m shell -a 'date' -b --become-method su --become-user root --ask-become-pass(-K)大写K

如果对host文件有对应的配置文件话,可以在执行ansible-playbook或ansible  时候 提前对host文件进行修改,如下:

[ucentos]   主机组名

xxx.xxx.xxx.xxx  主机IP

[all:vars]   如果允许多个主机组使用 ,否则可以将all 设置成主机组名

ansible_ssh_user=root  连接用户

ansible_ssh_pass=password  连接密码

ansible_become_pass=password   提权密码

方法三 yaml 文件参数修改

对于复杂的操作,我们通常会用到playbook 执行,因此我们也可以在playbook 把需要提权的操作加上权限,这样最小化控制,从而更加符合日常安全运维需求,例如,

---

- hosts: 主机IP

    remote_user:  xxx

  become: yes    允许切换

  become_user: root   切换身份

   become_method: sudo  切换方式

  tasks:    具体执行任务模块

      - name: date

         shell: date


以上就是常用的三种方法提权,欢迎补充

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、安装 Ansible 是默认来通过 ssh 协议来管理机器的。安装好 ansible 之后不需要启动或者允许一...
    zpei0411阅读 4,057评论 0 0
  • 天天说运维,究竟是干什么的?先看看工作流程呗。一般来说,运维工程师在一家企业里属于个位数的岗位,甚至只有一个。面对...
    曼巴coding阅读 3,446评论 0 0
  • 一.关于什么是Ansible? 1.Ansible即:自动化部署工具. 2.Ansible 介绍和架构; 公司计划...
    你好树洞先生阅读 4,164评论 0 0
  • 综合架构知识概述说明企业防范入侵方法了解批量管理服务部署批量管理服务批量管理服务配置 /etc/ansible/...
    亮仔_c1b5阅读 2,299评论 0 2
  • 简介 架构 原理 组成 ANSIBLE PLAYBOOKS:任务剧本(任务集),编排定义Ansible任务集的配置...
    毛利卷卷发阅读 4,729评论 0 2