RHCE-B4. 使用 RHEL 系统角色软件包创建配置时间角色

红帽RHCE考试下午-RHCE(RH294)

RH294任务概览

  • 考试时间4个小时,6台虚拟机,15道题
  • 原来通过脚本或者集群做的题现在都需要使用playbook实现
  • 考试时大概有6台虚拟服务器,都已经做好了互相的免密
  • 做题在ansible控制节点workstation做,但是需要去其他虚拟服务器进行验证
  • 考试时需要将6台虚拟服务器在考试环境全部开启,物理机界面点击左侧按钮启动
  • 考试时Ansible所有playbook都放在普通用户目录中且都以普通用户执行
  1. 注意:考试时一定注意要求将playbook放在指定用户的家目录中,用指定的用户登录做题!
  2. 注意:考试的判分方式通过普通用户远程执行指定目录下的playbook或者脚本,如果使用root做题,则没有权限就是零分

4. 使用 RHEL 系统角色软件包创建配置时间角色

  • 安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook

任务要求

  • 编写 /home/student/ansible/timesync.yml
  • 在所有受管节点上运行
  1. 使用 timesync 角色
  2. 配置该角色,以使用当前有效的 NTP 提供商
  3. 配置该角色,以使用时间服务器 classroom.example.com
  4. 配置该角色,以启用 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,套路是一样的
  1. 进入系统角色目录,找到题中要求的系统角色
  2. 拷贝到题中要求的指定目录,并改名
  3. 查看拷贝过来角色目录中的说明文档redame.md,找到实例字段
  4. 拿过来根据题目要求改吧改吧就行了,记得一定得改成题中要求一样的
[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 软件包提供。
上一篇:ansible自动化安装nginx及其配置


下一篇:ansible角色role实现编译安装nginx