红帽 RHCE8 认证考试:创建用户账户

题目描述

  1. http://materials/user_list.yml 下载要创建的用户的列表,并将它保存到 /home/greg/ansible.
  2. 在本次考试中使用在其他位置创建的密码库 /home/greg/ansible/locker.yml. 创建名为 /home/greg/ansible/users.yml 的 playbook ,从而按以下所述创建用户帐户:

2.1. 职位描述为 developer 的用户应当:

  • devtest 主机组中的受管节点上创建;
  • pw_developer 变量分配密码;
  • 是补充组 devops 的成员。

2.2. 职位描述为 manager 的用户应当:

  • prod 主机组中的受管节点上创建;
  • pw_manager 变量分配密码;
  • 是补充组 opsmgr 的成员。
  1. 密码采用 SHA512 哈希格式。
  2. 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/greg/ansible/secret.txt 正常运行。

详细解析

首先,进入到 /home/greg/ansible 目录,然后下载用户列表文件 user_list.yml:

wget http://materials/user_list.yml

使用 cat 命令查看一下 user_list.yml 文件可以看到如下内容:

users:
  - name: bob
    job: developer
  - name: sally
    job: manager
  - name: fred
    job: developer

本题和前面一题(红帽 RHCE8 认证考试:创建密码库)是相关联的,我们在做本题的时候需要用到前面做的这一题的文件,因此需要使用 Ansible 的 vars_files 关键字以列表的形式,引用前面一题创建的包含变量的文件。

由于我们还需要为用户设置组,因此,在设置之前,我们需要使用 Ansible 的 group 模块确保在目标主机上存在我们需要使用的组(可以使用 ansible-doc group 命令查看该模块的帮助信息)。

当然,既然涉及对用户的操作,那么一定会用到 Ansible 的 user 模块(可以使用 ansible-doc user 命令查看该模块的帮助信息)。

接着,根据题目要求创建并编辑如下 playbook:

vim /home/greg/ansible/users.yml

之后,在该 playbook 中写入如下内容:

---
- name:
  hosts: dev,test
  vars_files:
    - locker.yml
    - user_list.yml
  tasks:
    - name:
      group:
        name: devops
        state: present
    - name:
      user:
        name: "{{ item.name }}"
        password: "{{ pw_developer | password_hash('sha512') }}"
        groups: devops
      loop:
        "{{ users }}"
      when: item.job == 'developer'

- name:
  hosts: prod
  vars_files:
    - locker.yml
    - user_list.yml
  tasks:
    - name:
      group:
        name: opsmgr
        state: present
    - name:
      user:
        name: "{{ item.name }}"
        password: "{{ pw_manager | password_hash('sha512') }}"
        groups: opsmgr
      loop: 
        "{{ users }}"
      when: item.job == 'manager'

由于上面的 playbook 调用了被加密的外部文件,因此在使用 ansible-play 命令执行该 playbook 时需要指定解密用的密码文件:

ansible-playbook --vault-password-file=/home/greg/ansible/secret.txt /home/greg/ansible/users.yml

根据前面一题(红帽 RHCE8 认证考试:创建密码库)中在 locker.yml 文件中写入的信息可知,执行完上面的 playbook 后,在正确的情况下,属于 developer 组的用户(bobfred)的密码是 Imadev, 而属于 manager 组的用户(sally)的密码是 Imamgr.

确定了上面这些信息之后,为了验证本题中 playbook 的运行结果是否符合预期,我们就可以使用 SSH 登录到这些用户所在的主机上(我们可以从第一题创建的主机静态清单文件 inventory 中获知主机组和用户之间的对应关系。),之后,可以使用 groups 命令查看当前用户的所属组是否正确。


荒原之梦网全部内容均为原创,提供了涵盖考研数学基础知识、考研数学真题、考研数学练习题和计算机科学等方面,大量精心研发的学习资源。

豫 ICP 备 17023611 号-1 | 公网安备 - 荒原之梦 豫公网安备 41142502000132 号 | SiteMap
Copyright © 2017-2024 ZhaoKaifeng.com 版权所有 All Rights Reserved.

Copyright © 2024   zhaokaifeng.com   All Rights Reserved.
豫ICP备17023611号-1
 豫公网安备41142502000132号

荒原之梦 自豪地采用WordPress