一、Ansible Vault
  加密敏感数据   encrypt(加密)、decrypt(解密)、view(查看),rekey(重置密码)
1.加密文件
●Ansible有时需要访问一些敏感数据,如密码、Key等
●使用ansible-vault可以加密和解密数据
[root@control ansible]# echo 123456 > data.txt               #新建测试文件
[root@control ansible]# ansible-vault encrypt data.txt      #加密文件
New Vault password:        #设置密码
Confirm New Vault password:   #确定密码
[root@control ansible]# cat data.txt      #会是乱码
[root@control ansible]# ansible-vault view data.txt         #查看加密文件
Vault password:              #输入之前设置的密码

2.修改密码
●使用ansible-vault rekey可以修改加密的密码
[root@control ansible]# ansible-vault rekey data.txt             #修改密码
Vault password: <旧密码>
New Vault password: <新密码>
Confirm New Vault password:<确认新密码>

3.解密文件
●使用ansible-vault可以加密和解密数据
[root@control ansible]# ansible-vault decrypt data.txt      #解密文件
Vault password:                      #输入之前自己设置的密码
[root@control ansible]# cat data.txt

4.密码文件
●加密、解密每次都输入密码很麻烦,可以将密码写入文件
[root@control ansible]# echo "I'm secret data" > data.txt       #需要加密的敏感数据
[root@control ansible]# echo 123456 > pass.txt                   #加密的密码
[root@control ansible]# ansible-vault  encrypt --vault-id=pass.txt  data.txt  #用pass.txt 文件来加密data.txt这个需要加密的敏感数据
[root@control ansible]# cat data.txt
[root@control ansible]# ansible-vault view data.txt
Vault password:                   #输入密码123456可以查看加密的文件
I'm secret data
[root@control ansible]# ansible-vault decrypt --vault-id=pass.txt data.txt  #用pass.txt 文件来解密data.txt这个需要加密的敏感数据
[root@control ansible]# cat data.txt

二、sudo提权
1.sudo概述
●sudo
— superuser or another do
—让普通用户可以以超级管理员或其他人的身份执行命令。
●基本流程
—  管理员需要先授权(修改/etc/sudoers文件)
—  普通用户以sudo的形式执行命令
—  可以通过 sudo -l 查看授权情况

2.应用案例
 sudoers语法
● 修改/etc/sudoers的方法如下:
visudo(带语法检查,默认没有颜色提示)
vim /etc/sudoers(不带语法检查,默认有颜色提示)

●  授权格式如下:
—  用户或组 主机列表=(提权身份) [NOPASSWD]:命令列表
—  命令需要写绝对路径,对组授权需要在组名称前面加%。

3.配置sudo提权
●修改方法
—推荐:visudo
—其他: vim  /etc/sudoers
●授权记录格式
 — 用户       主机列表=命令列表
[root@control ~]# cat  /etc/sudoers         
… …
root           ALL=(ALL)       ALL
tom            ALL=(root)      /usr/bin/systemctl
%wheel         ALL=(ALL)       ALL

4.配置sudo提权步骤
步骤一:配置sudo提权
1)远程所有被管理主机批量创建系统账户,账户名称为alice,密码为123456。
[root@control ansible]# ansible all -m user -a "name=alice \
password={{'123456' | password_hash('sha512')}}"

2)配置alice账户可以提权执行所有命令(control批量授权,node1主机验证)。
使用lineinfile模块修改远程被管理端主机的/etc/sudoers文件,line=后面的内容是需要添加到文件最后的具体内容。
等于是在/etc/sudoers文件末尾添加一行:alice ALL=(ALL) NOPASSWD:ALL

[root@control ansible]# ansible all -m lineinfile \
-a "path=/etc/sudoers line='alice  ALL=(ALL) NOPASSWD:ALL'"

● 验证:可以在node1电脑上面使用alice用户执行sudo重启服务的命令看看是否成功。
[root@control ~]# ssh alice@node1
[alice@node1 ansible]$ sudo systemctl restart sshd       #不需要输入密码
[alice@node1 ansible]$ exit

三、修改Ansible配置

步骤一:配置普通用户远程管理其他主机

1)修改主配置文件,配置文件文件的内容可以参考/etc/ansible/ansible.cfg。
[root@control ansible]# vim ~/ansible/ansible.cfg
[defaults]
inventory = ~/ansible/inventory
remote_user = alice                #以什么用户远程被管理主机(被管理端主机的用户名)
[privilege_escalation]
become = true                    #alice没有特权,是否需要切换用户提升权限
become_method = sudo                #如何切换用户(比如用su就可以切换用户,这里是sudo)
become_user = root                #切换成什么用户(把alice提权为root账户)
become_ask_pass = no                #执行sudo命令提权时是否需要输入密码

2)远程被管理端主机的alice用户,需要提前配置SSH密钥。
[root@control ansible]# for i in node1  node2  node3  node4  node5
do
  ssh-copy-id    alice@$i
done

●  验证效果:
[root@control ansible]# ssh alice@node1            #依次远程所有主机看看是否需要密码
#注意:是远程登录node1,应该输入的是node1电脑上面alice账户的密码,control没有alice用户
[root@node1 ~]# exit                                #退出远程连接
[root@control ansible]# ansible all -m command -a  "who"              #测试效果
[root@control ansible]# ansible all -m command -a  "touch /test"     #测试效果

Ansible Vault相关推荐

  1. ansible-vault_使用Ansible Vault改善您的DevOps安全游戏

    ansible-vault 您可能已经确定了DevOps的工作流程,但是您应该不断努力提高此类实现的操作成熟度. 我使用的一种工具是Red Hat的Ansible ,它非常适合编排和配置管理. Ans ...

  2. Ansible Vault加密

    Ansible Vault概述 Ansible Vault做为Ansible的一项新功能,可将例如:password,keys等敏感数据文件进行加密处理,而非存放在明文的playbook中或roles ...

  3. Ansible playbook Vault 加密

    Ansible playbook Vault 加密详解与使用案例 主机规划 主机名称 操作系统版本 内网IP 外网IP(模拟) 安装软件 ansi-manager CentOS7.5 172.16.1 ...

  4. 百战RHCE(第五十四战:运维工程师必会技-Ansible学习9-Ansible Vault 管理机密)

    哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...

  5. Ansible 五(inventory文件 主机清单)

    Ansible 五(inventory文件  主机清单) Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansib ...

  6. IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)

    1.简述Ansible及其优势? Ansible是一款极其简单的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet, cfengine, chef, func, fabric ...

  7. 自动化运维工具(ansible入门教程)

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt.这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配 ...

  8. ansible的变量和机密

    1. ansible的变量 ​ 在ansible中使用变量,能让我们的工作变得更加灵活,在ansible中,变量的使用方式有很多种我们下面一一介绍. 1.1 变量的命名 ​ 变量名应该由字母.数字.下 ...

  9. 自动化运维-Ansible(redhat 8)

    在控制节点安装Ansible redhat 8自带python 3:如果没有安装,需要自行安装 查看是否安装python3 [root@localhost ~]# yum list installed ...

最新文章

  1. 推荐系统超级公开课报名!
  2. 图表示学习(Graph Representation Learning)笔记
  3. 小熊派折叠开发板Docker编译烧录安装HAP
  4. 怎样设置mysql软件用户_mysql数据库用户的权限如何设置?
  5. 多媒体个人计算机软件系统,HP推出新的多媒体个人计算机
  6. 第二阶段第八天站立会议
  7. Mongoose 参考手册
  8. 单目相机与激光标定相关文章与代码(草稿)
  9. 有关python毕设题目_python毕设题目
  10. Javascript 专项练习
  11. 小孩子要学习时间管理吗
  12. 小米无线路由器服务器用户名和密码忘了,小米路由器管理密码忘记了怎么办?...
  13. ERD Online 4.0.0新版本震撼来袭,超强国产免费在线数据建模系统
  14. linux swap shayisi,临时邮箱,10分钟邮箱域名收集(持续更新)
  15. mbp touchbar设置_新款 MBP 配备 Touch Bar 如何关机?
  16. 自建数据库MySQL和云数据库Rds MySQL的优缺点
  17. 写的不错的家庭关系的文章,转自天涯。《2》
  18. MD5 标准算法详解
  19. js实现图片上一张下一张点击
  20. 360网站卫士能防服务器吗,360网站卫士测评

热门文章

  1. bem什么意思_bem
  2. 使用VIRTUALLAB FUSION和ANSYS OPTISLANG进行跨平台光学建模和设计
  3. 选择一条捷径,通往属于你的罗马帝国
  4. 智能语音外呼OKCC呼叫中心的各项指标KPI
  5. WEBGATE-APM安装总结
  6. 单机版五子棋【JAVA】
  7. Java后端_Properties集合的遍历
  8. Java版QQ聊天工具
  9. iapd计算机软件,如何让iPad更强大 多款实用iPad软件推荐
  10. HDU 4507 吉哥系列故事——恨7不成妻 详解(变态数位DP)