红帽RHCE考试下午-RHCE(RH294)
RH294任务概览
- 考试时间4个小时,6台虚拟机,15道题
- 原来通过脚本或者集群做的题现在都需要使用playbook实现
- 考试时大概有6台虚拟服务器,都已经做好了互相的免密
- 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证
- 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动
- 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行
- 注意:考试时一定注意要求将playbook放在指定用户的家目录中,用指定的用户登录做题!
- 注意:考试的判分方式通过普通用户远程执行指定目录下的playbook或者脚本,如果使用root做题,则没有权限就是零分
4. 使用 RHEL 系统角色软件包创建配置时间角色
- 安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook
任务要求
- 编写 /home/student/ansible/timesync.yml
- 在所有受管节点上运行
- 使用 timesync 角色
- 配置该角色,以使用当前有效的 NTP 提供商
- 配置该角色,以使用时间服务器 classroom.example.com
- 配置该角色,以启用 iburst 参数
注意:
准备个工作
- 考试期间不需要做
完成步骤
- 先切到root安装rhel角色包rhel-system-roles
- 也可以sudo装呀
[root@workstation ~]# dnf -y install rhel-system-roles
[root@workstation ~]# su - student
- 装完了记得切换回student用户
- 创建目录并拷贝角色模板到考试目录
[student@workstation ansible]$ mkdir roles
[student@workstation ansible]$ cp -r /usr/share/ansible/roles/rhel-system-roles.timesync/ /home/sutdent/ansible/roles/timesync
注意:拷贝的时候使用-r参数拷贝目录下所有文件及文件夹,但不能使用-a参数,否则权限就乱了
- 找到角色timesync角色说明文件
/home/student/ansible/roles/timesync/README.md
注意:这个文件即是说明文件,也包含了模板 - 在说明文件中找到一段示例yaml
- hosts: targets
vars:
不啦不啦不啦
- 按照要求创建角色的yml文件
- 把上面找到的内容拷贝过来改吧改吧
[student@workstation ansible]$ vim timesync.yml
---
- name: set time sync
hosts: all
vars:
timesync_ntp_servers:
- hostname: classroom.example.com
iburst: yes
roles:
- timesync
[student@workstation ansible]$ ansible-playbook timesync.yml
注意:角色名是改过的呦
- 还有一种情况是使用selinux系统角色,配置该角色,开启所有受控节点的selinux,套路是一样的
- 进入系统角色目录,找到题中要求的系统角色
- 拷贝到题中要求的指定目录,并改名
- 查看拷贝过来角色目录中的说明文档redame.md,找到实例字段
- 拿过来根据题目要求改吧改吧就行了,记得一定得改成题中要求一样的
[student@workstation ansible]$ vim selinux.yml
---
- name: set selinux
hosts: all
vars:
selinux_policy: targeted
selinux_state: enforcing
roles:
- role: selinux
become: ture
[student@workstation ansible]$ ansible-playbook timesync.yml
考察的知识点
Ansible roles 角色
- 角色是ansible自1.2版本引入的新特性,用于层次性、结构化地组织playbook。
- roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。
- 要使用roles只需要在playbook中使用include指令即可。
- 简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷地include它们的一种机制。
- 角色一般用于基于主机构建服务的场景中,但也可以是用于构建守护进程等场景中。
默认roles存放路径
/root/.ansible/roles
/usr/share/ansible/roles
/etc/ansible/roles
playbook 调用角色
- 调用角色方法1:
---
- hosts: websrvs
remote_user: root
roles:
- mysql
- memcached
- nginx
- 调用角色方法2:键role用于指定角色名称,后续的k/v用于传递变量给角色
---
- hosts: all
remote_user: root
roles:
- role: mysql
username: mysql
- { role: nginx, username: nginx }
- 调用角色方法3:还可基于条件测试实现角色调用
---
- hosts: all
remote_user: root
roles:
- { role: nginx, username: nginx, when: ansible_distribution_major_version =='7' }
RHEL 系统角色简介
-
RHEL 系统角色是 Ansible 角色和模块的集合。RHEL 系统角色提供了一个配置界面,用于远程管理多个 RHEL 系统。这个界面允许在多个 RHEL 版本间管理系统配置,以及处理新的主发行版本。
-
在 Red Hat Enterprise Linux 8 中,该接口目前由以下角色组成:
kdump ## 内核崩溃转储机制
network ## 网络相关
selinux ## selinux阿耐庵安全规则
storage ## 存储
certificate ## 证书相关
kernel_settings ## 呵呵设定内核
logging ## 日志配置
metrics ## 集群核心监控数据的聚合器
nbde_client 和 nbde_server ## 网络绑定磁盘加密
timesync ## 时间同步
tlog ## 轻量级的分布式日志标记追踪神器
- 所有这些角色都由 AppStream 存储库中可用的 rhel-system-roles 软件包提供。