RHCE8练习题18: parted创建和使用分区

RHCE8练习题18: parted创建和使用分区

创建一个名为 /home/student/ansible/partion.yml 的playbook 它将在 所有 受管节点上创建分区:

  1. 在 vdb 分区上创建一个 1500M 的主分区,分区号 1 ,格式化为 ext4 , dev组中主机 将分区 永久 挂载到 /data
  2. 如果磁盘空间不足,给出提示信息,Could not create partiontion of that size , 并创建 800M 分区
  3. 如果vdb不存在,给出提示信息, This disk is not exist

提示:
模块 block rescue ,parted ,file ,filesystem , mount , debug


Answer:

vim /home/student/ansible/partion.yml
---
- name: create and use parted
  hosts: all 
  tasks:
    - name: create parted
      block:
        - name: create  1500M  partition
          parted: 
            device: /dev/vdb
            number: 1
            state: present
            part_end: 1500MiB
        - name: format fs
          filesystem:
            fstype: ext4
            dev: /dev/vdb1
        - name:
          block:
            - name: create directory
              file: 
                path: /data
                state: directory
            - name: mount
              mount:
                src: /dev/vdb1
                path: /data
                state: mounted
                fstype: ext4
          when: inventory_hostname in groups.dev
      rescue:
        - name: errors
          debug:
            msg: "Could not create partition of that size"
        - name: create 800M partition
            parted:
              device: /dev/vdb
              number: 1
              state: present
              part_end: 800MiB
      when: ansible_devices.vdb is defined

    - name: "error"
      debug: 
        msg: "this disk is not exist"
      when: ansible_devices.vdb is not defined

验证:

ansible all -a 'lsblk'
ansible dev -a 'cat /etc/fstab'

file
file

RHCE8练习题17: 使用系统角色selinux

RHCE8练习题17: 使用系统角色selinux

使用rhel系统角色selinux
安装rhel系统角色软件包,并创建符合以下条件的playbook
/home/studnet/ansible/selinux.yml

  • 在所有节点上运行,使用selinux
  • 且配置被管节点的 selinux 为 enforcing

提示:
rhel-system-roles


Answer:

yum -y install rhel-system-roles
cp -a /usr/share/ansible/roles/rhel-system-roles.selinux /home/student/ansible/roles/selinux
cp /usr/share/doc/rhel-system-roles/selinux/example-selinux-playbook.yml /home/student/ansible/
mv example-selinux-playbook.yml selinux.yml 
vim selinux.yml

对内容进行删减,留下面即可

---
- hosts: all 
  vars:
    selinux_policy: targeted
    selinux_state: enforcing
  tasks:
    - name: exectue the role and catch errors
      block:
        - include_role:
            name: selinux
      rescue:
        - name: handle errors
          fail:
            msg: "role failed"
          when: not selinux_reboot_required
        - name: restart managed host
          shell: sleep 2 && shutdown -r now "Ansible updates triggered"
          async: 1
          poll: 0
          ignore_errors: true
        - name: wait for mananged host to come back
          wait_for_connection:
            delay: 10 
            timeout: 300
        - name: reapply the role
          include_role:
            name: selinux
ansible-playbook selinux.yml

验证:

ansible all -a 'grep "^SELINUX=" /etc/selinux/config'

file

RHCE8练习题16: cron创建计划任务

RHCE8练习题16: 创建计划任务

在 所有主机 上创建一个名为 /home/student/ansible/cron.yml 的playbook,

  • 配置cron任务,每隔 2 分钟运行, 并 执行以下命令
    • logger "ex200 in progress"
  • 以 natasha 身份运行

提示:

  • 模块 user , cron

Answer:

vim /home/student/ansible/cron.yml
---
- name: cron job
  hosts: all
  tasks:
    - name: create user
      user: 
        name: natasha
        state: persent
    - name: create cron job
      cron:
        name: "job , 2 minute /per"
        minute: '*/2'
        user: natasha
        job: logger "ex200 in progress"

验证:

ansible all -a 'crontab -u natasha -l'

file

RHCE8练习题14. 创建用户账户

RHCE8 练习题:创建用户账户

  • http://materials.example.com/cd/exam_rhce8/user_list.yml 下载要创建的用户的列表,并将它保存到 /home/student/ansible 目录
  • 在本次考试中使用在其他位置创建的密码库 /home/student/ansible/locker.yml 创建名为 /home/student/ansible/users.yml 的playbook ,从而按以下所述创建用户账户:
  • 职位描述为 developer 的用户应当:
    • 在 dev 和 test 主机组中的受管节点上创建
    • 从 pw_developer 变量分配密码
    • 是补充组 student 的成员
  • 职位描述为 manager 的用户应当:
    • 在 prod 主机组中的受管节点上创建
    • 从pw_manager 变量分配密码
    • 是补充组 opsmgr 的成员
  • 密码采用 SHA512 hash格式
  • 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/student/ansible/secret.txt 正常运行

继续阅读“RHCE8练习题14. 创建用户账户”

RHCE8练习题13. 创建密码库

RHCE8 练习题:创建密码库

按照下方所述,创建一个Ansible库来存储用户密码:

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

继续阅读“RHCE8练习题13. 创建密码库”

RHCE8练习题12. 生成硬件报告

RHCE8 练习题:生成硬件报告

创建一个名为 /home/student/ansible/hwreport.yml 的playbook,它将在所有受管节点上生成含有以下信息的输出文件 /root/hwreport.txt:

  • 清单主机名称
  • 以 MB 表示的总内存大小
  • BIOS 版本
  • 磁盘设备 vda 的大小
  • 磁盘设备 vdb 的大小
  • 输出文件中的每一行格式为 key=value

您的playbook应当:

继续阅读“RHCE8练习题12. 生成硬件报告”

RHCE8练习题11. 创建web内容目录

RHCE8 练习题:创建web内容目录

按照下方所述,创建一个名为 /home/student/ansible/webcontent.yml 的 playbook:

  • 该 playbook 在 dev 主机组中的受管节点上运行
  • 创建符合下列要求的目录 /webdev
    • 所有者为 webdev 组
    • 具有常规权限:
      • owner = read + write + execute
      • group = read + write + execute
      • other = read + execute
    • 具有特殊权限: 设置组ID
  • 用符号链接将 /var/www/html/webdev 链接到 /webdev
  • 创建文件 /webdev/index.html 其中包含如下所示的单行文件:
    • Development
  • 在 dev 主机组中主机上浏览此目录(例如:http://servera.lab.example.com/webdev/ )将生成以下输出:
    • Development

继续阅读“RHCE8练习题11. 创建web内容目录”

RHCE8练习题10. 修改文件内容

RHCE8 练习题:修改文件内容

按照下方所述,创建名为/home/student/ansible/issue.yml的playbook:

  • 该playbook将在所有清单主机上运行
  • 该playbook会将 /etc/issue 的内容替换为下方所示的一行文本:
    • 在 dev 主机组中的主机上,这行文本显示为: Development
    • 在 test 主机组中的主机上,这行文本显示为: Test
    • 在 prod 主机组中的主机上,这行文本显示为: Production

继续阅读“RHCE8练习题10. 修改文件内容”

RHCE8练习题9. 生成主机文件

RHCE8 练习题:生成主机文件

  • 将一个初始模板文件从 http://materials.example.com/cd/exam_rhce8/hosts.j2 下载到 /home/student/ansible 以便使用该模板文件生成以下文件:
    • 针对每个清单主机包含一行内容,其格式与 /etc/hosts 相同
  • 创建名为 /home/student/ansible/hosts.yml 的playbook ,它将使用此模板在dev主机组中的主机上生成文件 /etc/myhosts
    • 该playbook运行后,dev主机组中的主机上的文件/etc/myhosts 应针对每个受管主机 包含一行内容
    • address fqdn hostname

继续阅读“RHCE8练习题9. 生成主机文件”