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都放在普通用户目录中且都以普通用户执行
  1. 注意:考试时一定注意要求将playbook放在指定用户的家目录中,用指定的用户登录做题!
  2. 注意:考试的判分方式通过普通用户远程执行指定目录下的playbook或者脚本,如果使用root做题,则没有权限就是零分

13. 创建Ansible密码库

  • 按照下方所述,创建一个 Ansible 库来存储用户密码:库名称为 /home/student/ansible/locker.yml

任务要求

  • 库中含有两个变量,名称如下:
  1. pw_developer,值为 Imadev
  2. pw_manager,值为 Imamgr
  • 用于加密和解密该库的密码为kkk123456
  • 密码存储在文件 /home/student/ansible/secret.txt 中
    注意:

准备个工作

  • 考试期间不需要做

完成步骤

    1. 创建locker.yml指定键值对
[student@workstation ansible]$ vim locker.yml
---
pw_developer: lmadev 
pw_manager: lmamgr
    1. 配置密钥文件secret.txt,更改权限这个操作是习惯性动作
[student@workstation ansible]$ echo kkk123456 > /home/student/ansible/secret.txt
[student@workstation ansible]$ chmod 600 /home/student/ansible/secret.txt
    1. 将密钥文件应用到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 使用的结构化数据文件.
  1. 创建加密文件

ansible-vault create file

  1. 编辑加密文件

ansible-vault edit file

  1. 重置密码

ansible-vault rekey file

  1. 加密已有文件

ansible-vault encrypt file

  1. 解密文件

ansible-vault decrypt file

  1. 查看文件

ansible-vault view file

  1. 使用帮助
    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-B14. 基于Ansible密码库创建用户帐户

RHCE-B14. 基于Ansible密码库创建用户帐户

RHCE-B2. 创建和运行 Ansible 临时命令

RHCE-B7. 从 Ansible Galaxy 使用角色创建web负载均衡

RHCE-B5. 使用Ansible Galaxy 安装角色

RHCE-B15.更新 Ansible 库的密钥