当前位置: 首页 > news >正文

RHCE考试 ——笔记

RHCE模拟测试
考前说明

• 请勿更改 IP 地址。DNS 解析完整主机名,同时也解析短名称。


• 所有系统的 root 密码都是 redhat


• Ansible 控制节点上已创建用户账户 devops。可以使用 ssh 访问


• 所需的所有镜像保存在镜像仓库 utility.lab.example.com

  podman 可使用下述账号登录使用 

  用户:admin

  密码:redhat

  

• 所有工作文件应保存在控制节点上的 /home/devops/ansible 目录中,且归devops 所有


• devops 的默认 ansible-navigator 配置: ~devops/.ansible-navigator.yml 参考讲师提供的文件


• 练习中的防火墙默认关闭,SELinux 处于强制模式 file 目录提供一些额外文件,考试会正常提供


• 产品文档位置 http://materials.example.com/docs/


• 模拟环境中提供的工具文件已经提供,、

  连接地址:

  http://materials.example.com/tools

  通过 wget 下载即可

1.安装并配置 Ansible

在控制节点 workstation.lab.example.com 上安装和配置 Ansible:

– 安装所需的软件包

– 创建静态清单文件 /home/devops/ansible/ 要求如下:

– servera 是 dev 主机组的成员

– serverb 是 test 和 balancers 

– serverc 和 serverd 是 prod 主机组的成员

– prod 组是 webservers 主机组的成员


创建名为 /home/devops/ansible/ansible.cfg 的配置文件,要求如下:

– 主机清单文件为 /home/devops/ansible/inventory 

– 默认内容集合目录为 /home/devops/ansible/mycollections 

– 默认角色目录为 /home/devops/ansible/roles

答:

第一步:登录主控机ssh -l devops workstation\ —— workstation 为他给的主机名,根据考试的情况来进行#建立anisble工作目录mkdir -p /home/devops/ansible/mkdir -p /home/devops/ansible/mycollectionsmkdir -p /home/devops/ansible/roles#设置vim工作模式
vim ~/.vimrc
autocmd FileType yaml setlocal ai ts=2 sw=2 et###############################
setlocal ##设定当前文件
ai ##自动退格对齐 auto indent
ts ##tab建长度为2空格 tabstop=2
sw ##缩进长度为2 shiftwidth=2
et ##把tab键变成空格 expandtab
################################设置ansible-navigator运行环境
vim .ansivle-navigator.yml考试的时候内容自带,不过博主当前环境下需要自己打---
ansible-navigator:ansible:config:path: ./ansible.cfgcolor:osc4: falseexecution-environment:image: utility.lab.example.com/ee-supported-rhel8:latest:wq#安装ansible所需软件
sudo dnf install ansible-navigator.noarch  ansible rhel-system-roles.noarch -y ——安装三个包#登录容器镜像仓库
podman login utility.lav.example.com —— 登录考试时所给的软件仓库admin —— 考试给的用户名redhat —— 考试给的密码#查看ansible是否可以运行正常
ansible-navigator images#配置ansible,编写ansible配置文件
cd /home/devops/ansible#查看ansible配置模板
[devops@workstation ansible]$ ansible-config init --disabled | less#根据模板内容生成配置文件
vim ansible.cfg[defaults]        #ansible基本信息
remote_user=devops
inventory=/home/devops/ansible/inventory
collections_path=/home/devops/ansible/mycollections
#roles_path=roles:/home/devops/ansible/roles[privilege_escalation]      #ansible提权信息
become=yes
become_ask_pass=False
become_method=sudo
become_user=root#生成工作清单
vim inventory[dev]
servera[test]
serverb[balancers]
serverb[prod]
serverc
serverd[webservers:children]
prod#查看清单信息
ansible-navigator inventory -m stdout --graph。。。 省略 。。。
@all:|--@balancers:| |--serverb|--@dev:| |--servera|--@test:| |--serverb|--@ungrouped:|--@webservers:| |--@prod:| | |--serverc| | |--serverd

2.创建 yum 仓库

作为系统管理员,需在受管节点上安装软件。

• 创建 playbook /home/devops/ansible/yum_repo.yml,该 playbook 将在各个受管节点上

• 创建以下 yum 仓库:

– 仓库 1:

• 仓库的名称为 RH294_BASE

• 描述为 RH294 base software

• BaseURL 为:

    http://content.example.com/rhel9.0/x86_64/dvd/BaseOS

• GPG 签名检查为启用状态

• GPG 密钥 URL 为:

    http://content.example.com/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhat-release

• 仓库为启用状态


– 仓库 2:

• 仓库的名称为 RH294_STREAM

• 描述为 RH294 stream software

• BaseURL 为:

    http://content.example.com/rhel9.0/x86_64/dvd/AppStream

• GPG 签名检查为启用状态

• GPG 密钥 URL 为:

    http://content.example.com/rhel9.0/x86_64/dvd/RPM-GPGKEY-redhat-release

• 仓库为启用状态

答:

1.编写指定Playbook
[devops@workstation ansible]$ vim /home/devops/ansible/yum_repo.yml2.编写内容
#此题目用到的模块可以使用
# ansible-doc -l | grep 模块关键词 来过滤出模块名称
# ansible-doc 模块名称来查看帮助
# 在帮助中EXAMPLE下面就是应用示例---
- name: install repohosts: alltasks:- name: add repo RH294_BASE (1/2)ansible.builtin.yum_repository:name: RH294_BASEfile: rheldescription: RH294 base softwarebaseurl: http://content.example.com/rhel9.0/x86_64/dvd/BaseOSgpgcheck: yesgpgkey: http://content.example.com/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhatrelease- name: add repo RH294_STREAM (2/2)ansible.builtin.yum_repository:name: RH294_STREAMfile: rheldescription: RH294 base softwarebaseurl: http://content.example.com/rhel9.0/x86_64/dvd/AppStreamgpgcheck: yesgpgkey: http://content.example.com/rhel9.0/x86_64/dvd/RPM-GPG-KEY-redhatrelease3.测试
[devops@workstationansible]$ ansible all -m shell -a 'cat 
/etc/yum.repos.d/rhel.repo'
[devops@workstation ansible]$ ansible all -m shell -a 'dnf clean all'
[devops@workstation ansible]$ ansible all -m shell -a 'dnf makecache'
[devops@workstation ansible]$ ansible all -m shell -a 'yum repolist'
[devops@workstation ansible]$ ansible all -m shell -a 'dnf install httpd -y'

3.安装 Collections

以 devops 身份,将以下 collections 从资源连接目录中安装到workstation.lab.example.com  

• redhat-rhel_system_roles-1.16.2.tar.gz 

• ansible-posix-1.4.0.tar.gz 

• community-general-4.3.0.tar.gz 

• 资源连接:

    http://materials.example.com/tools

集合应安装到默认集合目录 /home/devops/ansible/mycollection

答:

#1.下载资源
[devops@workstation ansible]$ wget http://materials.example.com/tools/redhatrhel_system_roles-1.16.2.tar.gz
[devops@workstation ansible]$ wget http://materials.example.com/tools/ansibleposix-1.4.0.tar.gz
[devops@workstation ansible]$ wget http://materials.example.com/tools/redhatrhel_system_roles-1.16.2.tar.gz#2.安装Collections
[devops@workstationansible]$ ansible-galaxy collection install ansible-posix1.4.0.tar.gz --force
[devops@workstation ansible]$ ansible-galaxy collection install communitygeneral-4.3.0.tar.gz --force
[devops@workstation ansible]$ ansible-galaxy collection install redhatrhel_system_roles-1.16.2.tar.gz --force#3.查看collections
[devops@workstation ansible]$ ansible-galaxy collection list
以下是查看的内容
# /home/devops/ansible/mycollections/ansible_collections
Collection               Version
------------------------ -------
ansible.posix            1.4.0
community.general        4.3.0
redhat.rhel_system_roles 1.16.2

4.安装软件包

• 创建名为 packages.yml 的 playbook:

– 将 php 和 mariadb 软件包安装到 dev、test 和 prod 组中的主机上

– 将 RPM Development Tools 包组安装到 dev 组中的主机上

– 将 dev 组中主机上的所有软件包更新为最新版本

答:

#1.编写packages.yml
[devops@workstation ansible]$ vim packages.yml#2.packages.yml内容
---
- name: install php and mariadbhosts: dev,test,prodtasks:- name: install php and mariadbansible.builtin.dnf:name:- php- mariadbstate: latest- name: install development and update softwarehosts: devtasks:- name: install developmentansible.builtin.dnf:name: "@RPM Development Tools"state: latest- name: update softwareansible.builtin.dnf:name: '*'state: latest#3.运行playbook
[devops@workstation ansible]$ ansible-navigator run -m stdout packages.yml#测试:
[devops@workstation ansible]$ ansible all -m shell -a 'rpm -qa | grep -E 
"php|httpd|mariadb"'
[devops@workstation ansible]$ ansible all -m shell -a 'dnf history'

5.使用角色

根据以下要求创建名为 selinux.yml 的 playbook:

– 在所有受管节点上运行

– 使用 selinux 角色

– 将 SELinux 策略为 targeted 

– 将 SELinux 状态为 enforcing

6.使用 Ansible Galaxy 安装角色

• 创建 /home/devops/ansible/roles/requirements.yaml 文件用以下载并安装角

色到 /home/devops/ansible/roles/ 目录中

– 角色名:balancer,来自于 http://materials.example.com/tools/haproxy.tar 

– 角色名:phpinfo,来自于 http://materials.example.com/tools/phpinfo.tar

7.创建和使用角色

根据下列要求,在 /home/devops/ansible/roles 中创建名为 apache 的角色:

– 安装 httpd 软件包,开机启动并立即运行

• 开启防火墙并允许 web 服务通信

• 模板文件 index.html.j2 用于创建/var/www/html/index.html,含有以下内容:

    Welcome to HOSTNAME on IPADDRESS,其中 HOSTNAME 和 IPADDRESS 来自于事实变量

• 创建名为 newrole.yml 的 playbook,并使用此角色

• 这个 playbook 运行于 webservers 主机组

8.从 Ansible Galaxy 使用角色

创建名为 roles.yml 的 playbook,满足以下要求:

– Playbook 运行在 balancers 主机组上,并使用 balancer 角色。

– 这个角色为 webservers 主机组配置负载均衡 web 服务器配置完成后,

当访问 http://serverb.lab.example.com 将显示以下输出信息:

• Welcome to serverc.lab.example.com on 172.25.250.12 

• Welcome to serverd.lab.example.com on 172.25.250.13

• 这个 playbook 中另一个 play 使用 phpinfo 角色在 webservers 主机组上执行完

毕后,访问主机组内每台主机的/hello.php 显示以下信息:

– Hello World from FQDN 

• FQDN 来自于事实变量

• 页面同时显示每台受控主机的 PHP 配置  

9.创建和使用分区

根据下列要求,创建名为 partition.yml 的 playbook:

– playbook 中包含一个 play,该 play 在 balancers 主机组中的主机上运行

• 在设备 vdb 上创建单个主分区,编号为 1,大小为 1500 MiB 

• 使用 ext4 文件系统格式化分区

• 将文件系统永久挂载到 /newpart 

• 如果无法创建请求的分区大小,应显示错误消息

– Could not create partition of that size 

- 并且应改为使用大小 800 MiB 

• 如果设备 vdd 不存在,应显示错误消息

– Disk does not exist

10.生成主机文件

将 http://materials.example.com/tools/hosts.j2 模板文件拷贝到/home/devops/ansible 目录中完善此模板文件,用以生成受控节点的 /etc/myhosts 文件创建名为 hosts.yml 的playbook 对 dev 主机组使用此模板文件/etc/myhosts 文件内容最终如下:

127.0.0.1 localhost localhost.localdomain localhost4 

localhost4.localdomain4 

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 

172.25.250.10 servera.lab.example.com servera 

172.25.250.11 serverb.lab.example.com serverb 

172.25.250.12 serverc.lab.example.com serverc 

172.25.250.13 servera.lab.example.com serverd

11.修改文件内容

创建名为 issue.yml 的 playbook,要求如下: 

– 此 playbook 运行到所有受控节点

• 此 playbook 覆盖/etc/issue 文件中的内容:

• 在 dev 主机组的主机中,内容是:Development 在 test 主机组的主机中,内容是:Test 

• 在 prod 主机组的主机中,内容是:Production

12.创建 Web 内容目录

按照下方所述,创建名为 webcontent.yml 的 playbook:

– 该 playbook 在 dev 主机组中的受管节点上运行

– 创建目录 /webdev 所有者为 webdev 组

– 具有常规权限:owner=read+write+execute,

    group=read+write+execute,other=read+execute 

– 具有特殊权限:set group ID 

– 用软链接将 /var/www/html/webdev 链接到 /webdev 

– 创建文件 /webdev/index.html,内容为:Red Hat Ansible 

– 在 dev 主机组中主机上浏览此目录(例如

    http://servera.lab.example.com/webdev/index.html )将生成以下输出:

    Red Hat Ansible

13.生成硬件报告

创建名为 hwreport.yml 的 playbook,在所有受控主机上生成

/root/hwreport.txt 文件,内容包含: 

– 清单主机名称以 MB 表示的总内存大小 BIOS 版本

• 磁盘设备 vda 的大小

• 磁盘设备 vdb 的大小

• 输出文件中的每一行含有一个 key=value 对 playbook 应当来自

files/13/hwreport.empty 模板文件,并将它保存为 /root/hwreport.txt 

• 使用正确的值修改 /root/hwreport.txt 

• 如果硬件项不存在,相关的值应设为 NONE

14.创建 password vault

创建一个名为 locker.yml 的 ansible vault 文件存储用户密码:

• Vault 文件中含有两个变量,名称如下:

– pw_developer: Imadev 

• pw_manager: Imamgr 加解密密码为 redhat 

• 密码存储在 /home/devops/ansible/secret.txt 中。

15.创建用户帐户

需要创建的用户账户清单来自于 http://materials.example.com/tools/user_list.yml,请拷贝到/home/devops/ansible/中

• 配合上一题的 locker.yml,创建名为 users.yml 的 playbook,要求如下:

– 用户的 job description 为 developer 的用户,创建到 dev 和 test 主机组

• 中,用户密码来自于 pw_developer 变量,用户的附属组是 devops 

• 用户的 job description 为 manager 的用户,创建到 prod 主机组中,用户密

• 码来自于 pw_manager 变量,用户的附属组是 opsmgr 

• 用户密码使用 SHA512 hash

16.更新 Ansible 库的密钥

• 请为 expense.yml 文件修改 vault 密码,要求如下:

– 请将 http://materials.example.com/tools/expense.yml 文件保存到

  /home/devops/ansible/expense.yml 

• 当前密码为 ibmibm 

• 新密码为 redhatredhat

17.配置 cron 作业

在所有受管节点上创建名为 /home/devops/ansible/cron.yml 的 Playbook,为natasha 用户创建 cron 作业:

• 用户 natasha 每隔 2 分钟执行 logger “RH294 in progress”

http://www.dtcms.com/a/271866.html

相关文章:

  • 【Linux手册】从接口到管理:Linux文件系统的核心操作指南
  • Redis数据安全性分析
  • PyTorch Tensor 操作入门:转换、运算、维度变换
  • 【NLP入门系列六】Word2Vec模型简介,与以《人民的名义》小说原文实践
  • IPv4和IPv6双栈配置
  • 【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 实现会话保持的负载均衡
  • HCIA第一次实验报告:静态路由综合实验
  • day11-微服务面试篇
  • C++11 std::is_sorted 和 std::is_sorted_until 原理解析
  • CentOs 7 MySql8.0.23之前的版本主从复制
  • 无缝矩阵与普通矩阵的对比分析
  • 中老年人的陪伴,猫咪与机器人玩具有什么区别?
  • Java 与 MySQL 性能优化:MySQL连接池参数优化与性能提升
  • MySQL(127)如何解决主从同步失败问题?
  • adb 简介与常用命令
  • 分布式ID 与自增区别
  • 虚拟储能与分布式光伏协同优化:新型电力系统的灵活性解决方案
  • 异步I/O库:libuv、libev、libevent与libeio
  • 从0到1:Python与DeepSeek的深度融合指南
  • jupyter 和 kernel 之间的关系
  • .net服务器Kestrel 与反向代理
  • 【TCP/IP】11. IP 组播
  • 【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(六)
  • 【博主亲测可用】PS2025最新版:Adobe Photoshop 2025 v26.8.1 激活版(附安装教程)
  • Apache Dubbo实战:JavaSDK使用
  • 前端面试十一之TS
  • 服务器重装后如何“复活”旧硬盘上的 Anaconda 环境?—— 一次完整的排错与恢复记录
  • 计算机学科专业基础综合(408)四门核心课程的知识点总结
  • 微信小程序101~110
  • 以太网基础⑤UDP 协议原理与 FPGA 实现