RHCE-B13. 创建Ansible密码库,使用文件内密码加密yml
Posted 白-胖-子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHCE-B13. 创建Ansible密码库,使用文件内密码加密yml相关的知识,希望对你有一定的参考价值。
红帽RHCE考试下午-RHCE(RH294)
RH294任务概览
- 考试时间4个小时,6台虚拟机,15道题
- 原来通过脚本或者集群做的题现在都需要使用playbook实现
- 考试时大概有6台虚拟服务器,都已经做好了互相的免密
- 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证
- 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动
- 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行
- 注意:考试时一定注意要求将playbook放在指定用户的家目录中,用指定的用户登录做题!
- 注意:考试的判分方式通过普通用户远程执行指定目录下的playbook或者脚本,如果使用root做题,则没有权限就是零分
13. 创建Ansible密码库
- 按照下方所述,创建一个 Ansible 库来存储用户密码:库名称为 /home/student/ansible/locker.yml
任务要求
- 库中含有两个变量,名称如下:
- pw_developer,值为 Imadev
- pw_manager,值为 Imamgr
- 用于加密和解密该库的密码为kkk123456
- 密码存储在文件 /home/student/ansible/secret.txt 中
注意:
准备个工作
- 考试期间不需要做
完成步骤
-
- 创建locker.yml指定键值对
[student@workstation ansible]$ vim locker.yml
---
pw_developer: lmadev
pw_manager: lmamgr
-
- 配置密钥文件secret.txt,更改权限这个操作是习惯性动作
[student@workstation ansible]$ echo kkk123456 > /home/student/ansible/secret.txt
[student@workstation ansible]$ chmod 600 /home/student/ansible/secret.txt
-
- 将密钥文件应用到locker.yml密码库上,不会用可以ansible-vault --help一下
[student@workstation ansible]$ ansible-vault encrypt --vault-id=secret.txt locker.yml
encrypt是ansible-vault的子命令,长选项–vault-id= 应该放在子命令后面
- 验证
## 使用密钥解密locker.yml密码库
[student@workstation ansible]$ ansible-vault view locker.yml
Vault password: *********
- 这道题必须要做对呀,否则下一道题要用到这道题的东东
考察的知识点
ansible-vault
- Ansible 1.5的新版本中, “Vault” 作为 ansible 的一项新功能可将例如passwords,keys等敏感数据文件进行加密,而非存放在明文的 playbooks 或 roles 中. 这些 vault 文件可以分散存放也可以集中存放.
- vault 可以加密任何 Ansible 使用的结构化数据文件.
- 创建加密文件
ansible-vault create file
- 编辑加密文件
ansible-vault edit file
- 重置密码
ansible-vault rekey file
- 加密已有文件
ansible-vault encrypt file
- 解密文件
ansible-vault decrypt file
- 查看文件
ansible-vault view file
- 使用帮助
ansible-vault --help
1 $ ansible-vault -h
2 Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml]
3
4 Options:
5 --ask-vault-pass ask for vault password
6 -h, --help show this help message and exit
7 --new-vault-id=NEW_VAULT_ID
8 the new vault identity to use for rekey
9 --new-vault-password-file=NEW_VAULT_PASSWORD_FILE
10 new vault password file for rekey
11 --vault-id=VAULT_IDS the vault identity to use
12 --vault-password-file=VAULT_PASSWORD_FILES
13 vault password file
14 -v, --verbose verbose mode (-vvv for more, -vvvv to enable
15 connection debugging)
16 --version show program's version number, config file location,
17 configured module search path, module location,
18 executable location and exit
19
20 See 'ansible-vault <command> --help' for more information on a specific
21 command.
- 创建密码文件并对已存在文件进行加密
echo "111111" > vault_pwd
ansible-vault encrypt test_vault02.yml --vault-password-file=vault_pwd
Vault ID和多密码
- ansible2.4版本以后,新增了Vault ID和多密码的特性。
- Vault ID可以理解为为一个密码设置一个标签,用于管理员识别使用的是哪个密码,例如dev,prod,cloud等等;多密码指执行一次playbook时可以指定多个密码文件。
- ansible2.4版本以后,又增加了「–vault-id」的参数,可以用来指定密码文件:
ansible-vault encrypt --vault-id=<密码文件> <需要被加密的文件>
以上是关于RHCE-B13. 创建Ansible密码库,使用文件内密码加密yml的主要内容,如果未能解决你的问题,请参考以下文章
RHCE-B7. 从 Ansible Galaxy 使用角色创建web负载均衡