RHCE8.0实训:管理机密
实训目的
使用加密文件中定义的变量来执行playbook
实训步骤
编辑加密文件
编辑提供的加密文件secret.ym1的内容。该文件可以使用redhat作为密码进行解密。取消注释username和pwhash变量条目
ansible-vault create secret.yml
username: ansibleuser1 pwhash: $6$jfnHouVKUTFMM1pm$39OVTp0ZL8FX.QbD1GoUCP12pNrTC2XzX9Ec0UhzwAM76A.B.Yrk8S.8xiSSnAc.j1lqg4gIRpSPEw0YuuxhP1
引用加密文件
创建一个名为create_users.yml 的 playbook,它将使用secret.yml加密文件中定义的变量。
配置playbook,以使用slave主机组。以root用户身份对远程受管主机运行此 playbook。配置该playbook以创建username变量定义的ansibleuserl用户。使用存储在pwhash变量中的密码散列设置用户的密码。
--- - name: create user accounts for all our servers hosts: slave vars_files: - secret.yml tasks: - name: Creating user from secret.yml user: name: "{{ username }}" password: "{{ pwhash }}"
语法检查
[root@localhost data-secret]# ansible-playbook --syntax-check --ask-vault-pass create_users.yml
Vault password: playbook: create_users.yml
注:您可以使用较新的--vault-id ©prompt选项而不是使用--ask-vault-pass 来执行此操作。
执行脚本
ansible-playbook --ask-vault-pass create_users.yml
可选:创建密码文件并执行play
创建名为vault-pass的密码文件,以用于playbook执行而不必要求输入密码。该文件必须包含纯文本redhat作为vault密码。将文件的权限更改为06O0
echo 'redhat' > vault-pass
chmod 0600 vault-pass
使用 vault-pass 执行 Ansible Playbook,以利用 secret .yml Ansible Vault 加密文件中 存储为变量的密码在远程系统上创谨ansibleuserl用户
[root@localhost data-secret]# ansible-playbook --vault-password-file=vault-pass create_users.yml
PLAY [create user accounts for all our servers] ******************************************************************** TASK [Gathering Facts] ********************************************************************************************* ok: [localhost] ok: [10.0.0.30] TASK [Creating user from secret.yml] ******************************************************************************* changed: [localhost] ok: [10.0.0.30] PLAY RECAP ********************************************************************************************************* 10.0.0.30 : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 localhost : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
验证play执行情况
使用ssh 验证该playbook是否正确运行。用户ansibleuserl是否存在,
或直接登录受控机查看ansibleuserl用户是否存在也可以。
[root@localhost data-secret]# ssh -o PreferredAuthentications=password ansibleuser1@10.0.0.30
ansibleuser1@10.0.0.30's password: Last failed login: Sun Feb 14 18:40:49 CST 2021 from servera.lab.example.com on ssh:notty There were 2 failed login attempts since the last successful login. [ansibleuser1@servera ~]$