RHCE8.0实训:管理机密

来自CloudWiki
跳转至: 导航搜索

实训目的

使用加密文件中定义的变量来执行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 ~]$