红帽认证—RHCE

这篇具有很好参考价值的文章主要介绍了红帽认证—RHCE。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

考试须知

一、安装和配置Ansible

二、创建和运行Ansible临时命令

三、安装软件包

四、使用RHEL系统角色

五、使用Ansible Galaxy安装角色

六、创建和使用角色

七、从Ansible Galaxy使用角色

八(一)、创建和使用逻辑卷

八(二)、创建和使用分区

九、生成主机文件

十、修改文件内容

十一、创建web内容目录

十二、生成硬件报告

十三、创建密码库

十四、创建用户账户

十五、更新Ansible库的秘钥

十六、配置cron作业


考试须知

物理机:foundation

账号 密码
kiosk redhat
root Asimov

ansible相关

系统 IP 说明
workstation.lab.example.com 172.25.250.9 Ansible control node
servera.lab.example.com 172.25.250.10 Ansible managed node
serverb.lab.example.com 172.25.250.11 Ansible managed node
serverc.lab.example.com 172.25.250.12 Ansible managed node
serverd.lab.example.com 172.25.250.13 Ansible managed node
bastion.lab.example.com 172.25.250.254 Ansible managed node

        所有系统上已预装了SSH秘钥,允许免密钥进行root访问,在Ansible控制节点已创建用户账户student。此账户已预装SSH秘钥,允许在Ansible控制节点和各个Ansible受控节点之间进行SSH登录。所有工作应当保存在控制节点的/home/student/ansible中,并应当归student用户所有(请勿对考试环境的SSH进行任何修改)

一、安装和配置Ansible

按照下方所述,在控制节点 workstation.lab.example.com 上安装和配置 Ansible:

  • 安装所需的软件包

  • 创建名为 /home/student/ansible/inventory 的静态清单文件,以满足以下要求:

    • servera是 dev 主机组的成员

    • serverb是 test 主机组的成员

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

    • bastion是 balancers 主机组的成员

    • prod 组是 webservers 主机组的成员

  • 创建名为 /home/student/ansible/ansible.cfg 的配置文件,以满足以下要求:

    • 主机清单文件为 /home/student/ansible/inventory

    • playbook 中使用的角色的位置包括 /home/student/ansible/roles

答案:

安装ansible

sudo yum -y install ansible;ansible --version

创建目录

 mkdir ansible

cd ansible

创建主机清单文件

vim /home/student/ansible/inventory

[dev]
servera

[test]
serverb

[prod]
serverc
serverd

[balancers]
bastion

[webservers:children]
prod

创建ansible配置文件

cp /etc/ansible/ansible.cfg ./

修改如下内容

inventory      = /home/student/ansible/inventory

roles_path    = /home/student/ansible/roles

host_key_checking = False

remote_user = student

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

创建角色目录

mkdir roles

验证

ansible all -m ping

二、创建和运行Ansible临时命令

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

请按照正文所述,创建一个名为 /home/student/ansible/adhoc.sh 的 shell 脚本,该脚本将使用 Ansible 临时命令在各个受管节点上安装 yum 存储库:

存储库1:

  • 存储库的名称为 rh294_BASE

  • 描述为 rh294 base software

  • 基础 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/BaseOS

  • GPG 签名检查为启用状态

  • GPG 密钥 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release

  • 存储库为启用状态

存储库2:

  • 存储库的名称为 rh294_STREAM

  • 描述为 rh294 stream software

  • 基础 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/AppStream

  • GPG 签名检查为启用状态

  • GPG 密钥 URL 为 http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release

  • 存储库为启用状态

答案:

帮助文档:ansible-doc yum_repository

#创建并编辑脚本
vim /home/student/ansible/adhoc.sh

#!/bin/bash
  
ansible all -m yum_repository -a 'name=rh294_BASE description="rh294 base software" baseurl=http://content.example.com/rhel8.0/x86_64/dvd/BaseOS gpgcheck=yes gpgkey=http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release enabled=yes'

ansible all -m yum_repository -a 'name=rh294_AppStream description="rh294 appstream software" baseurl=http://content.example.com/rhel8.0/x86_64/dvd/AppStream gpgcheck=yes gpgkey=http://content.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release enabled=yes'

执行脚本

chmod +x adhoc.sh

./adhoc.sh

验证

ansible all -m shell -a 'yum repolist'

ansible all -m shell -a 'yum -y install lftp'

三、安装软件包

创建一个名为 /home/student/ansible/packages.yml 的 playbook :

  • phpmariadb 软件包安装到 devtestprod 主机组中的主机上

  • RPM Development Tools 软件包组安装到 dev 主机组中的主机上

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

答案:

帮助文档:ansible-doc yum

#创建并编辑playbook
vim /home/student/ansible/packages.yml

---
- name: install pgk
  hosts: dev,test,prod
  tasks:
    - name: install php mariadb
      yum:
        name: 
          - php
          - mariadb
        state: latest
        
- name: install RPM Development Tools
  hosts: dev
  tasks:
    - name: install the 'RPM Development Tools' package group
      yum:
        name: "@RPM Development Tools"
        state: present
        
    - name: update all
      yum:
        name: '*'
        state: latest

#执行playbook
ansible-playbook packages.yml

四、使用RHEL系统角色

安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook /home/student/ansible/timesync.yml

  • 所有受管节点上运行

  • 使用 timesync 角色

  • 配置该角色,以使用当前有效的 NTP 提供商

  • 配置该角色,以使用时间服务器 classroom.example.com

  • 配置该角色,以启用 iburst 参数

答案:

#安装角色
yum search roles
sudo yum -y install rhel-system-roles.noarch
#查看软件所有的安装目录
rpm -ql rhel-system-roles.noarch
红帽认证—RHCE

复制安装的角色到 ~/ansible/roles/

cp -r /usr/share/ansible/roles/rhel-system-roles.timesync/ /home/student/ansible/roles/timesync

#编写playbook
vim /home/student/ansible/timesync.yml
---
- name: set time sync
  hosts: all
  vars: 
    timesync_ntp_servers:
      - hostname: classroom.example.com
        iburst: yes
  roles:
    - timesync
#执行剧本
ansible-playbook timesync.yml

验证

ansible all -m shell -a 'timedatectl'

红帽认证—RHCE

  • 使用selinux角色
  • 配置该角色,开启所有受控节点的selinux

答案:

复制安装的角色到 ~/ansible/roles/

cp -r /usr/share/ansible/roles/rhel-system-roles.selinux/ /home/student/ansible/roles/selinux

#编辑selinux.yml
vim selinux.yml

---
- name: set selinux
  hosts: all
  vars:
    selinux_state: enforcing
  roles:
    - role: selinux
      become: true

#执行剧本
ansible-playbook selinux.yml

五、使用Ansible Galaxy安装角色

使用 Ansible Galaxy 和要求文件 /home/student/ansible/roles/requirements.yml 。从以下 URL 下载角色并安装到 /home/student/ansible/roles

  • http://content.example.com/haproxy.tar.gz 此角色的名称应当为 balancer

  • http://content.example.com/phpinfo.tar.gz 此角色的名称应当为 phpinfo

答案:

#编辑playb
vim /home/student/ansible/roles/requirements.yml

---
- name: balancer
  src: http://content.example.com/haproxy.tar.gz

- name: phpinfo
  src: http://content.example.com/phpinfo.tar.gz

#执行playbook
ansible-galaxy install -r /home/student/ansible/roles/requirements.yml -p /home/student/ansible/roles/

六、创建和使用角色

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

  • httpd 软件包已安装,设为在系统启动时启用启动

  • 防火墙已启用并正在运行,并使用允许访问 Web 服务器的规则

  • 模板文件 index.html.j2 已存在,用于创建具有以下输出的文件 /var/www/html/index.html 

    Welcome to HOSTNAME on IPADDRESS

    其中,HOSTNAME 是受管节点的完全限定域名IPADDRESS 则是受管节点的 IP 地址。

按照下方所述,创建一个使用角色的playbook  /home/student/ansible/newrole.yml:

  • 该playbook在webservers主机组中的主机上运行

答案:

#创建角色apache
ansible-galaxy init apache
#编辑playbook
vim /home/student/ansible/roles/apache/tasks/main.yml

---
# tasks file for apache
#帮助文档:ansible-doc yum
- name: install httpd
  yum:
    name: 
      - httpd
      - firewalld
    state: present

#帮助文档:ansible-doc template
- name: copy file
  template: 
    src: index.html.j2
    dest: /var/www/html/index.html

#帮助文档:ansible-doc service
- name: restart httpd
  service:
    name: httpd
    state: restarted
    enabled: yes

- name: restart firewalld
  service: 
    name: firewalld
    state: restarted
    enabled: yes

#帮助文档:ansible-doc firewalld
- name: set firewalld 
  firewalld:
    service: http
    permanent: yes
    state: enabled
    immediate: yes

#编辑j2模板
vim /home/student/ansible/roles/apache/templates/index.html.j2

Welcome to {{ ansible_fqdn }} on {{ ansible_default_ipv4.address }}

#编辑newrole.yml
vim /home/student/ansible/newrole.yml

---
- name: use roles apache
  hosts: webservers
  roles:
    - apache

执行playbook

ansible-playbook newrole.yml

验证

curl serverc
Welcome to serverc.lab.example.com on 172.25.250.12
curl serverd
Welcome to serverd.lab.example.com on 172.25.250.13

七、从Ansible Galaxy使用角色

根据下列要求,创建一个名为 /home/student/ansible/roles.yml 的 playbook :

  • playbook 中包含一个 play, 该 play 在 balancers 主机组中的主机上运行并将使用 balancer 角色。

    • 此角色配置一项服务,以在 webservers 主机组中的主机之间平衡 Web 服务器请求的负载。

    • 浏览到 balancers 主机组中的主机(例如 http://bastion.lab.example.com )将生成以下输出:

      Welcom to serverc.lab.example.com on 172.25.250.12
    • 重新加载浏览器将从另一 Web 服务器生成输出:

      Welcom to serverd.lab.example.com on 172.25.250.13`
  • 例如浏览到http://serverc.lab.example.com/hello.php 会生成以下输出:

       Hello PHP World from serverc.lab.example.com

         另外还有 PHP 配置的各种详细信息,如安装的 PHP 版本等。

  • 同样,浏览到 http://serverd.lab.example.com/hello.php 会生成以下输出:

    Hello PHP World from serverd.lab.example.com

     另外还有 PHP 配置的各种详细信息,如安装的 PHP 版本等。

答案:

#编辑playbook
vim /home/student/ansible/roles.yml

---
- name: get facts for webservers
  hosts: webservers

- name: use roles balancer on balancers group
  hosts: balancers
  roles: 
    - balancer

- name: use roles phpinfo on webservers
  hosts: webservers
  roles:
    - phpinfo

执行playbook

ansible-playbook roles.yml

八(一)、创建和使用逻辑卷

创建一个名为 /home/student/ansible/lv.yml 的 playbook ,它将在所有受管节点上运行以执行下列任务:

  • 创建符合以下要求的逻辑卷:

    • 逻辑卷创建在 research 卷组中

    • 逻辑卷名称为 data

    • 逻辑卷大小为 1500 MiB

  • 使用 ext4 文件系统格式化逻辑卷

  • 如果无法创建请求的逻辑卷大小,应显示错误信息

    Could not create logical volume of that size

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

  • 如果卷组 research 不存在,应显示错误信息

    Volume group done not exist

  • 不要以任何方式挂载逻辑卷

答案:

#编辑playbook
vim /home/student/ansible/lv.yml

        
---
- name: create lvm
  hosts: all
  tasks:
    - name: create data lvm
      block:
        - name: create 1500M
        #帮助文档:ansible-doc lvol
          lvol:
            vg: research
            lv: data
            size: 1500
       
      rescue:          
        - name: show error msg 
        #帮助文档:ansible-doc debug  
          debug:
            msg: Could not create logical volume of that size
        
        - name: create 800M
          lvol:
            vg: research
            lv: data
            size: 800

      always:
        - name: format lv
        #帮助文档:ansible-doc filesystem
          filesystem:
            fstype: ext4
            dev: /dev/research/data

      when: "'research' in ansible_lvm.vgs"

    - name: show error msg about vg
      debug:
        msg: Volume group done not exist。

      when: "'research' not in ansible_lvm.vgs"

执行playbook

ansible-playbook lv.yml

八(二)、创建和使用分区

创建名为partion.yml的Playbook,对所有节点进行操作:

  • 在vdb上创建一个主分区1500Mib
  • 使用ext4文件系统进行格式化
  • 将文件系统挂载到/newpart
  • 如果分区大小不满足,产生报错信息 could not create partition os that size,则创建分区大小变成800Mib
  • 如果磁盘不存在,产生报错信息:disk dose not exist

答案:

帮助文档:ansible-doc parted

#编辑playbook
vim partion.yml

---
- name: create primary partition
  hosts: all
  tasks:
    - name: create 1500MiB primary partition
      block: 
        - name: create 1500M primary partition
          parted:
            device: /dev/vdb
            number: 1
            state: present
            part_start: 10MiB
            part_end: 1510MiB
            part_type: primary

      rescue: 
        - name: show error msg 
          debug: 
            msg: could not create partition os that size

        - name: create 800M parimary partition
          parted: 
            device: /dev/vdb
            number: 1
            state: present
            part_start: 10MiB
            part_end: 810MiB
            part_type: primary

      always:
        - name: format partition
          filesystem: 
            fstype: ext4
            dev: /dev/vdb1

        - name: mkdir directory
          file: 
            path: /newpart
            state: directory

        - name: mount 
          mount: 
            path: /newpart
            src: /dev/vdb1
            fstype: ext4
            state: mounted

      when: "ansible_devices.vdb is defined"

    - name: if vdb not exist
      debug:
        msg: disk dose not exist
      when: "ansible_devices.vdb is not defined" 

执行playbook

ansible-playbook partion.yml

九、生成主机文件

  • 将一个初始模板文件从 http://content.example.com/hosts.j2 下载到 /home/student/ansible

  • 完成该模板,以便用它生成以下文件:针对每个清单主机包含一行内容,其格式与 /etc/hosts 相同

  • 创建名为 /home/student/ansible/hosts.yml 的 playbook ,它将使用此模板在 dev 主机组中的主机上生成文件 /etc/myhosts

该 playbook 运行后, dev 主机组中主机上的文件 /etc/myhosts 应针对每个受管主机包含一行内容:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

172.25.250.9 workstation.lab.example.com workstation

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 serverd.lab.example.com serverd

注:清单主机名称的显示顺序不重要。

答案:

#下载模板文件
wget http://content.example.com/hosts.j2 -P /home/student/ansible
#编辑hosts.j2
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

{% for i in groups.all %}
{{ hostvars[i].ansible_default_ipv4.address }} {{ hostvars[i].ansible_fqdn }} {{ hostvars[i].ansible_hostname }}
{% endfor %}

#编写playbook
vim /home/student/ansible/hosts.yml

---
- name: get facts
  hosts: all

- name: cp files 
  hosts: dev
  tasks:
    - name: cp hosts
      template:
        src: /home/student/ansible/hosts.j2
        dest: /etc/hosts

执行playbook

ansible-playbook hosts.yml

魔法变量的使用

groups:列出清单中所有的组和主机

#编写playbook,查看groups内容
vim groups.yml

---
- name: get groups info
  hosts: dev
  tasks: 
    - name: use debug
      debug: 
       msg: "{{ groups }}"

#调用playbook结果显示
ok: [servera] => {
    "msg": {
        "all": [
            "servera",
            "serverb",
            "bastion",
            "serverc",
            "serverd"
        ],
        "balancers": [
            "bastion"
        ],
        "dev": [
            "servera"
        ],
        "prod": [
            "serverc",
            "serverd"
        ],
        "test": [
            "serverb"
        ],
        "ungrouped": [],
        "webservers": [
            "serverc",
            "serverd"
        ]
    }
}

hostvars:包含受控主机的变量,可以用于获取另一台受控主机的变量的值。如果还没有为受控主机收集事实,则它不会包含该主机信息

十、修改文件内容

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

  • 该 playbook 将在所有清单主机上运行

  • 该 playbook 会将 /etc/issue 的内容替换为下方所示的一行文本:

    • dev 主机组中的主机上,这行文本显示 为:Development

    • test 主机组中的主机上,这行文本显示 为:Test

    • prod 主机组中的主机上,这行文本显示 为:Production

答案:

#编写playbook
vim /home/student/ansible/issue.yml

---
- name: update issue
  hosts: all
  tasks:
    - name: 
      copy: 
        content: "Development"
        dest: /etc/issue
      when: "'dev' in group_names"

    - name: 
      copy:
        content: "Test"
        dest: /etc/issue
      when: "'test' in group_names"

    - name: 
      copy:
        content: "Production"
        dest: /etc/issue
      when: "'prod' in group_names"

执行playbook

ansible-playbook issue.yml

魔法变量

group_names:列出当前受控主机所属的所有组

十一、创建web内容目录

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

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

  • 创建符合下列要求的目录 /webdev

    • 所有者为 devops

    • 具有常规权限: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

答案:

#编辑playbook
vim /home/student/ansible/webcontent.yml

---
- name: install pkg
  hosts: dev
  tasks: 
    - name: install httpd firewalld
      yum: 
        name: 
          - httpd
          - firewalld
        state: present

#帮助文档:ansible-doc group
    - name: create group
      group: 
        name: devops 
        state: present

- name: set web
  hosts: dev
  tasks: 
    #帮助文档:ansible-doc group
    - name: create directory
      file: 
        path: /webdev
        group: devops
        mode: '2775'
        state: directory
        
    #帮助文档:ansible-doc copy
    - name: create /web/index.html
      copy: 
        content: 'Development'
        dest: /webdev/index.html 

    #帮助文档:ansible-doc sefcontext
    - name: set selinux
      sefcontext: 
        target: '/webdev(/.*)?'
        setype: httpd_sys_content_t

    - name: set selinux
      shell:
        cmd: restorecon -R -v /webdev

    #帮助文档:ansible-doc file
    - name: create link
      file: 
        src: /webdev
        dest: /var/www/html/webdev
        state: link

- name: started service
  hosts: dev
  tasks: 
    - name: started httpd
      service: 
        name: httpd
        state: restarted

    - name: started firewalld
      service:
        name: firewalld
        state: restarted

    - name: set firewall
      firewalld: 
        service: http
        permanent: yes
        state: enabled
        immediate: yes

执行playbook

ansible-playbook webcontent.yml

十二、生成硬件报告

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

  • 清单主机名称

  • MB 表示的总内存大小

  • BIOS 版本

  • 磁盘设备 vda 的大小

  • 磁盘设备 vdb 的大小

  • 输出文件中的每一行含有一个 key=value 对。

您的 playbook 应当:

  • http://content.example.com/hwreport.empty 下载文件,并将它保存为 /root/hwreport.txt

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

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

答案:

hwreport.empty文件内容如下:

hostname: inventoryhostname
mem: memory_in_MB
bios: BIOS_version
vda: disk_vda_size
vdb: disk_vdb_size

#编辑playbook
vim /home/student/ansible/hwreport.yml

---
- name: 
  hosts: all
  tasks: 
    - name: download hwreport
      get_url: 
        url: http://content.example.com/hwreport.empty
        dest: /root/hwreport.txt
      
    #帮助文档:ansible-doc replace
    - name: get inventory_hostname
      replace: 
        path: /root/hwreport.txt
        regexp: 'inventoryhostname'
        replace: "{{ inventory_hostname }}"

    - name: get memory_in_MB
      replace: 
        path: /root/hwreport.txt
        regexp: 'memory_in_MB'
        replace: "{{ ansible_memtotal_mb }}"


    - name: get BIOS_version
      replace: 
        path: /root/hwreport.txt
        regexp: 'BIOS_version'
        replace: "{{ ansible_bios_version }}"

    - name: get disk_vda_size
      replace: 
        path: /root/hwreport.txt
        regexp: 'disk_vda_size'
        replace: "{{ ansible_devices.vda.size | default('NONE',true) }}"


    - name: get disk_vdb_size
      replace: 
        path: /root/hwreport.txt
        regexp: 'disk_vdb_size'
        replace: "{{ ansible_devices.vdb.size | default('NONE',true) }}"

执行playbook

ansible-playbook hwreport.yml

魔法变量

inventory_hostname:获取被操作的当前主机的主机名称,此主机名称不是linux系统的主机名,而是该主机在主机清单中配置的名称。

十三、创建密码库

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

  • 库名称为 /home/student/ansible/locker.yml

  • 库中含有两个变量,名称如下:

    • pw_developer,值为 Imadev

    • pw_manager,值为 Imamgr

  • 用于加密和解密该库的密码为 whenyouwishuponastar

  • 密码存储在文件 /home/student/ansible/secret.txt

答案:

#编辑playbook
vim /home/student/ansible/locker.yml

---
pw_developer: Imadev
pw_manager: Imamgr

创建密码文件

echo 'whenyouwishuponastar' > /home/student/ansible/secret.txt

设定密码文件权限

chmod 600 secret.txt

使用密码文件加密yml文件

ansible-vault encrypt locker.yml --vault-id=/home/student/ansible/secret.txt

十四、创建用户账户

  • http://content.example.com/user_list.yml 下载要创建的用户的列表,并将它保存到 /home/student/ansible

  • 在本次考试中使用在其他位置创建的密码库 /home/student/ansible/locker.yml 。创建名为 /home/student/ansible/users.yml 的 playbook ,从而按以下所述创建用户帐户:

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

      • devtest 主机组中的受管节点上创建

      • pw_developer 变量分配密码,密码有效期30天

      • 是补充组 student的成员

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

      • prod 主机组中的受管节点上创建

      • pw_manager 变量分配密码,密码有效期30天

      • 是补充组 opsmgr 的成员

  • 密码采用 SHA512 哈希格式。

  • 您的 playbook 应能够在本次考试中使用在其他位置创建的库密码文件 /home/student/ansible/secret.txt 正常运行。

答案:

#编辑playbook
vim /home/student/ansible/users.yml

---
- name: 
  hosts: dev,test 
  vars_files: 
    - /home/student/ansible/locker.yml
    - /home/student/ansible/user_list.yml
  tasks: 
    - name: create group
      group: 
        name: student
        state: present

    - name: create user in developer
      user: 
        name: "{{ item.name }}"
        groups: student 
        password: "{{ pw_developer | password_hash('sha512') }}"
        state: present
      loop: "{{ users }}" 
      when: item.job == "developer" 

    - name: chage passwd time
      shell: 
        cmd: chage -M 30 {{ item.name }} 
      loop: "{{ users }}"
      when: item.job == "developer" 

- name: 
  hosts: prod 
  vars_files: 
    - /home/student/ansible/locker.yml 
    - /home/student/ansible/user_list.yml 
  tasks: 
    - name: create group 
      group: 
        name: opsmgr 
        state: present 

    - name: create user in prod 
      user: 
        name: "{{ item.name }}" 
        groups: opsmgr 
        password: "{{ pw_manager  | password_hash('sha512') }}" 
        state: present 
      loop: "{{ users }}" 
      when: item.job == "manager" 

    - name: chage passwd time 
      shell: 
        cmd: chage -M 30 {{ item.name }} 
      loop: "{{ users }}" 
      when: item.job == "manager"

执行playbook

ansible-playbook users.yml --vault-id=secret.txt

十五、更新Ansible库的秘钥

按照下方所述,更新现有 Ansible 库的密钥:

  • http://content.example.com/salaries.yml 下载 Ansible 库到 /home/student/ansible

  • 当前的库密码为 insecure8sure

  • 新的库密码为 bbs2you9527

  • 库使用新密码保持加密状态

答案:

下载yml文件

wget http://content.example.com/salaries.yml -P /home/student/ansible/ 

修改该文件密码

ansible-vault rekey salaries.yml

输入旧密码

输入新密码

确认新密码

十六、配置cron作业

创建一个名为/home/student/ansible/cron.yml的playbook,此playbook在dev主机组运行。配置cron作业,该作业每隔两分钟运行并执行以下命令:

logger"EX294 in progress",以用户natasha身份运行

答案:

#编辑playbook
vim /home/student/ansible/cron.yml

---
- name: set cron job1
  hosts: dev
  tasks: 
    - name: add user
      user: 
        name: natasha
        state: present

    - name: set cron job2 
      cron: 
        name: "cron on dev" 
        minute: "*/2"
        user: natasha
        job: 'logger"EX294 in progress"'

执行playbook

ansible-playbook cron.yml文章来源地址https://www.toymoban.com/news/detail-480786.html

到了这里,关于红帽认证—RHCE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 红帽认证有啥用?初级红帽认证证书值得考吗?

    大家好,这里是G-LAB IT实验室。 今天我们来了解一下Linux红帽认证。 红帽认证已成为企业和个人竞相追逐的热门资质。 红帽认证认可度究竟如何?红帽RHCSA认证含金量又有多高? 下面G-LAB将为你一一解答。 事实上,红帽认证认可度在全球范围内都得到了广泛的认可和重视。许多

    2024年01月25日
    浏览(38)
  • RHCSA/RHCE考试模拟环境搭建

      RHCSA环境内存至少16G,RHCE环境内存至少12G,处理器配置8核     网络适配器选择 NAT 方式     取消显示器的“加速3D图形”:     另外添加一块硬盘:     选择解压的磁盘文件:

    2024年02月16日
    浏览(37)
  • 红帽认证—RHCSA

    目录 考试须知 在mars.domain250.example.com上执行以下任务 一、配置mars网络 二、配置系统使用默认存储库 三、调试SELINUX 四、创建用户账户 五、配置cron任务 六、创建共享目录 七、配置NTP 八、配置autofs 九、配置 /var/tmp/fstab 权限 十、配置用户账户 十一、查找文件 十二、查找字

    2024年02月04日
    浏览(33)
  • RHCE认证(RedHat8)

    考前说明:所有项目运行过程中出现红色字体的报错信息是正常的,运行完成后看 “failed=0” 就代表执行成功,如果在执行任务期间暂停并且报错那么代表项目内部书写格式或者命令输入错误,请认真检查 此文档为考前模拟不代表真实考试环境及内容。 环境说明: system I

    2024年02月04日
    浏览(39)
  • 云计算专业期末RHEL8.6红帽网络操作系统考试(实操)

    本文介绍关于云计算专业期末RHEL8.6红帽操作系统考试内容题目详解 一般情况下虚拟机中的系统是已经安装好的,但以防万一还是加上在虚拟机中系统安装的步骤 (后缀为.iso的为镜像文件,下图这些文件都为iso镜像文件) (这里所填的用户名和密码在接下来登录中需要使用

    2024年01月22日
    浏览(47)
  • 安装和配置 Ansible

        按照下方所述,在控制节点 control.area12.example.com 上安装和配置 Ansible:         安装所需的软件包         创建名为 /home/curtis/ansible/inventory 的静态清单文件,以满足以下要求:             node1 是 dev 主机组的成员             node2 是 test 主机组的成员            

    2024年02月12日
    浏览(31)
  • Ansible的安装和配置

    安装和配置 Ansible 安装所需的软件包 创建名为 /home/greg/ansible/inventory 的静态清单文件,以满足以下要求: 172.25.250.9 是 dev 主机组的成员 172.25.250.10 是 test 主机组的成员 172.25.250.11 和 172.25.250.12 是 prod 主机组的成员 172.25.250.13 是 balancers 主机组的成员 prod 组是 webservers 主机组的

    2024年02月13日
    浏览(37)
  • 01_什么是ansible、基本架构、ansible工作机制、Ansible安装、配置主机清单、设置SSH无密码登录等

    1.什么是ansible 1.1.基本介绍 1.2.基本架构 1.3.基本特征 1.4.优点 1.5.ansible工作机制 2.Ansible安装 2.1.机器准备 2.2.安装ansible 2.2.1.安装epel源 2.2.2.安装ansible 2.2.3.查看ansible版本 2.2.4.树状结构展示文件夹 2.2.4.1.其中ansible.cfg的内容如下 2.2.4.2.host的默认内容是 2.3.配置主机清单 2.4.设置

    2024年02月14日
    浏览(45)
  • 计算机程序安装及使用须知_kaic

       本文件夹中的“PowerDesigner建模”目录下包含三个可运行文件TMS1.cdm,TMS.cdm,TMS.pdm分别为TMS系统的实体关系简图、实体关系图和数据库模型,使用PowerDesigner集成开发环境打开任意一个文件即可运行。  本安装说明以Microsoft SQL Server 2000中文开发版为例来阐述的,对于Micros

    2023年04月25日
    浏览(46)
  • 红帽系统8(RHEL8 )配置静态IP

    目的:安装在VM17中的 RHEL8,配置IP 地址为静态IP 看到RHEL 版本为8.7 说明:我的RHEL 系统在dhcp 时能正常上网, 因此我把静态时网关,掩码,dns配的和 dhcp时一样,确保静态ip 时也能正常上网。 输入nmcli 查看网络 可以看到: 连接为ens160,ip地址为 192.168.48.129 子网掩码 24, 即255.

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包