首页 > 其他分享 >ansible学习笔记03(最佳实践)

ansible学习笔记03(最佳实践)

时间:2022-10-08 22:32:28浏览次数:58  
标签:03 name 笔记 提权 ansible hosts user become

1、 控制提权

Ansible playbook 能实现多种不同方式的提权操作,提权的级别取决于你打算控制的级别,ansible使用命令或连接参数,在play、role、block和tasks中,都可以设置提权,设置提权的命令有:become、become_user、become_method和become_flags

1.1 配置提权方式

如果你需要通过become参数进行提权,可以在ansible.cfg文件中设置become=true设置提权

配置文件 命令行 说明
become --become或-b 设置提权
become_method --become-method=提权方式 提权方式
become_user --become-user=用户 提权用户
become_password --ask-become-pass或-K 提权用户密码

1.2 在play中设置提权

可在playbook中每个play通过设置提权参数become:true的方式进行,play提权应该最小提权方式(需要提权再提权)

---
- name: 提权管理
  beceom: true
  tasks:
    - name: 显示用户ID
      debug:
        var: ansible_user_id
        
- name: 不提权管理
    hosts: webservers
    become: false
      debug:
      var: ansible_user_id
# 通过配置文件设置提权
[privilege_escalation]
become=true
become_method=sudo
become_user=root
become_password="XX"
---
- name: 通过配置文件管理
  hosts: webservers
  tasks:
      debug:
      var: ansible_user_id

1.3 在task中提权

可在task中设置提权参数

---
- name: task配置提权
  hosts: all
  become: false
  tasks:
    - name: task提权
      yum:
        name: httpd
        state: present
      become: yes
      
    - name: 查看服务
      shell: "systemctl status httpd"
      become: false

1.4 在Block块中配置提权

可以针对一组逻辑块进行整体的提权操作,相比task,范围更大,可以整体控制become状态

---
- name: Block块中配置提权
  hosts: all
  become: false
  tasks:
    - block:
      - name: task提权
        yum:
          name: httpd
          state: present
        become: yes
      
      - name: 查看服务
        shell: "systemctl status httpd"
    become: yes

1.5 在Role中配置提权

如果role中become没有开启,可以在roles下配置提权选项进行提权

---
- name: 在role中配置提权
  hosts: all
  roles:
    - role: apache
      become: true

1.6 配置提权变量

可以通过在配置文件中设置参数或使用提权变量在设置提权

配置文件 或 playbook选项 连接变量
become ansible_become
become_method ansible_become_method
become_user ansible_become_user
become_password ansible_become_pass

1.6.1 针对主机组

可以通过设置变量的方式对主机组进行批量提权

webservers:
  hosts:
    servera.lab.example.com:
    serverb.lab.example.com:
  vars:
    ansible_become: true

1.6.2 针对单个主机

可以通过设置变量的方式真的单个主机提权

webservers:
  hosts:
    servera.lab.example.com:
    	ansible_become: true
    serverb.lab.example.com:

1.6.3 playbook设置提权变量

可以通过在playbook下通过设置变量进行提权

---
- name: 通过变量进行提权
  hosts: all
  vars:
    ansible_become: true
  tasks:
    - name: 安装WEB服务器
        yum:
          name: httpd
          state: present

1.7 控制提权的一些建议

标签:03,name,笔记,提权,ansible,hosts,user,become
From: https://blog.51cto.com/mmx123/5738770

相关文章

  • vue个人学习笔记
    工程简介vue学习笔记1.what:基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。2.why为什么要选择vue呢?vue作为......
  • Flask学习笔记(八)-Flask-Sqlalchemy基本使用详解
    一、环境的安装pipinstallflask-sqlalchemypipinstallpymysql二、基本使用1、最小型应用:对于Flask的应用来说,需要做的就是为Flask实例选择加载配置,然后把S......
  • LeetCode算法笔记 217. 存在重复元素
    给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例1:输入:nums=[1,2,3,1]输出:true示例2:输入:nums=......
  • cs61b笔记_Lists
    2.Lists2.1MysteryoftheWalrus海象之谜,主要解释了java是怎么传值的代码部分publicclassIntList{publicintfirst;publicIntListrest;//......
  • 03 栈与递归 | 数据结构与算法
    1.栈栈的定义:限定在表尾进行插入和删除操作的线性表空栈:不换任何元素的栈栈顶top:允许插入删除的一端栈的操作(连续设计)置空栈make_null_stack()#definemaxn......
  • 无sudo权限解决Anaconda libstdc++.so.6: version `GLIBCXX_3.4.20' not found
    查找包含`GLIBCXX_3.4.20'的libstdc++find/-name"libstdc++.so*"///为根目录下搜索,可以替换为用户指定路径根据上述指令显示的文件,选择一个最新版本的查看是否......
  • 工业物联网网关BL110网口如何采集PLC三菱Q03UDE
    钡铼技术工业物联网网关BL110网口如何采集PLC三菱Q03UDE钡铼技术工业物联网网关BL110网口支持采集三菱Q系列(Q03UDE,Q04UDEH,Q06UDEH,Q10UDEH,Q13UDEH,Q20UDEH,Q26UDE......
  • 钡铼技术工业物联网网关BL110网口如何采集PLC三菱Q03UDE
    钡铼技术工业物联网网关BL110网口如何采集PLC三菱Q03UDE钡铼技术工业物联网网关BL110网口支持采集三菱Q系列(Q03UDE,Q04UDEH,Q06UDEH,Q10UDEH,Q13UDEH,Q20UDEH,Q26U......
  • drf学习笔记
    今日内容概要路由登录接口编写认证今日内容详细路由对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系,还可以使用Routers来帮助......
  • 【GEE笔记5】数据筛选Filter
    过滤筛选就是从数据中筛选出符合条件的数据,比如在海量的Landsat数据中选出符合你的研究区间和研究时间内的数据。在GEE中实现过滤的方法叫做Filter,主要的过滤规则可分为:空间......