Ansible Vault
一、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相关推荐
- ansible-vault_使用Ansible Vault改善您的DevOps安全游戏
ansible-vault 您可能已经确定了DevOps的工作流程,但是您应该不断努力提高此类实现的操作成熟度. 我使用的一种工具是Red Hat的Ansible ,它非常适合编排和配置管理. Ans ...
- Ansible Vault加密
Ansible Vault概述 Ansible Vault做为Ansible的一项新功能,可将例如:password,keys等敏感数据文件进行加密处理,而非存放在明文的playbook中或roles ...
- Ansible playbook Vault 加密
Ansible playbook Vault 加密详解与使用案例 主机规划 主机名称 操作系统版本 内网IP 外网IP(模拟) 安装软件 ansi-manager CentOS7.5 172.16.1 ...
- 百战RHCE(第五十四战:运维工程师必会技-Ansible学习9-Ansible Vault 管理机密)
哈喽哈喽哈喽,大家好啊,很高兴大家能看到这篇文章! 首先,本人目前是计算机专业的大一学生,基于对Linux操作系统的爱好,参与了RHCE的培训班,而我这次编写的 <百战RHCE>文章,是基 ...
- Ansible 五(inventory文件 主机清单)
Ansible 五(inventory文件 主机清单) Ansible 可同时操作属于一个组的多台主机,组和主机之间的关系通过 inventory 文件配置. 默认的文件路径为 /etc/ansib ...
- IT运维面试问题总结-运维工具、开源应用(Ansible、Ceph、Docker、Apache、Nginx等)
1.简述Ansible及其优势? Ansible是一款极其简单的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet, cfengine, chef, func, fabric ...
- 自动化运维工具(ansible入门教程)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt.这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配 ...
- ansible的变量和机密
1. ansible的变量 在ansible中使用变量,能让我们的工作变得更加灵活,在ansible中,变量的使用方式有很多种我们下面一一介绍. 1.1 变量的命名 变量名应该由字母.数字.下 ...
- 自动化运维-Ansible(redhat 8)
在控制节点安装Ansible redhat 8自带python 3:如果没有安装,需要自行安装 查看是否安装python3 [root@localhost ~]# yum list installed ...
最新文章
- 推荐系统超级公开课报名!
- 图表示学习(Graph Representation Learning)笔记
- 小熊派折叠开发板Docker编译烧录安装HAP
- 怎样设置mysql软件用户_mysql数据库用户的权限如何设置?
- 多媒体个人计算机软件系统,HP推出新的多媒体个人计算机
- 第二阶段第八天站立会议
- Mongoose 参考手册
- 单目相机与激光标定相关文章与代码(草稿)
- 有关python毕设题目_python毕设题目
- Javascript 专项练习
- 小孩子要学习时间管理吗
- 小米无线路由器服务器用户名和密码忘了,小米路由器管理密码忘记了怎么办?...
- ERD Online 4.0.0新版本震撼来袭,超强国产免费在线数据建模系统
- linux swap shayisi,临时邮箱,10分钟邮箱域名收集(持续更新)
- mbp touchbar设置_新款 MBP 配备 Touch Bar 如何关机?
- 自建数据库MySQL和云数据库Rds MySQL的优缺点
- 写的不错的家庭关系的文章,转自天涯。《2》
- MD5 标准算法详解
- js实现图片上一张下一张点击
- 360网站卫士能防服务器吗,360网站卫士测评