rhcsa、rhce8 红帽8双300满分通过考试总结

在这里插入图片描述
在这里插入图片描述

上午RHCSA就不说了比较简单,只注意2点:

1、细心细心
2、主机1的第一题和第二题千万不能错,错了就百分百过不了上午的,主机2的vdo磁盘一定不能出错,出错或没有开机运行vdo机子就重启不来,题目全做完一定要全先重启电脑,起来后再全部检测一遍每道题,时间很充足,不要急。

下午RHCE题总结:

第1-2题比较重要一定不能出错,考试上面的重要信息要仔细看,先不要着记做题,至少看2遍,下午题的精髓就是把ansible里的变量、判断、循环和一些架构搞清楚,必须要理解,只要理解了,不管怎么出都能做的出来。

这是我针对考试用到的变理、判断、循环等总结

判断磁盘大小没有就给默认值
alue: “{ { ansible_facts.devices.vdb.size | default(‘NONE’) }}”

判断vgs在不在用:
when: “‘research’ in ansible_lvm.vgs” //或 not in 不存在
when: ansible_lvm.vgs.research is undefined //这样也可以

判断磁盘在不在用:
when: ansible_facts.devices.vdd is defined //或undefined

选择变量里面的key=value进行判断:
when: item.name == ‘jack’

判断单个主机是否在这个主机组里
when: inventory_hostname in groups[‘prod’] //或 not in
得到当前主机的名称node1(放在剧本中用自动会循环获取gether_facts得到的所有主机)
ansible dev -m debug -a “msg={ { inventory_hostname }}”

ansible dev -m debug -a “msg={ { hostvars.node1.ansible_password }}”
拿到dev主机组中的所有主机的密码

ansible dev -m debug -a “msg={ { hostvars.node1 }}”
拿到dev主机组中的所有主机的详细信息

ansible dev -m debug -a “msg={ { groups }}”
拿到清单中所有主机组和各组中的主机

welcome to { {ansible_hostname }} on { {ansible_default_ipv4.address }}
jinjia2.j2文件中放入这些变量,复制过去受控机自动替换变量

groups[‘all’] //得到清所有的主机列表
inventory_hostname in groups[‘var’] //循环var主机组中的所有主机

找fqdn和ip
Welcome to { { ansible_fqdn }} on { { ansible_default_ipv4.address }}

判断磁盘大小如果不在给默认值:
value: “{ { ansible_facts.devices.vdb.size | default(‘NONE’) }}”

判读文件在不在
ansible dev -m stat -a "path=/etc/ddddd"输出下面查看可以组合成stat.exists
node1 | SUCCESS => {
“ansible_facts”: {
“discovered_interpreter_python”: “/usr/bin/python”
},
“changed”: false,
“stat”: {
“exists”: false
}
}

用stat模块输出再注册一下再调用判断
tasks:
- name: file-not-yes
stat:
path: /etc/dx
register: file_status


when: file_status.stat.exists==False 在就是True

判断系统信息
先查寻一下:ansible dev -m setup |grep ansible_distribution
再写剧本 (可以加and和or)
- name:
debug:
msg: centos
when: ansible_distribution==“CentOS”
“ansible_distribution”: “CentOS”,
“ansible_distribution_file_parsed”: true,
“ansible_distribution_file_path”: “/etc/redhat-release”,
“ansible_distribution_file_variety”: “RedHat”,
“ansible_distribution_major_version”: “7”,
“ansible_distribution_release”: “Core”,
“ansible_distribution_version”: “7.9”,

-------------------开始每一题----------------------------------------
yum install ansible 直接安装,虚拟机考试里面已有ansible yum 源,考试时我看了
---------------------------------------------------------------------------
[kiosk@foundation0 ~]$ ssh greg@control    /现场考试每个人的账号和密码不同一定要看清楚
greg@control's password: flectrag

[greg@control ~]$ sudo yum -y install ansible       
[greg@control ~]$ mkdir -p /home/greg/ansible/roles       
配置ansible需要管理的主机
[greg@control ~]$ cd ansible    
[greg@control ansible]$ vim /home/greg/ansible/inventory      
 cp /etc/ansible/ansible.cfg   /home/greg/ansible   //主配置文件考过来当模板修改,他放在哪,当前执行就要在哪个路径下


[dev]
node1

[test]
node2

[prod]
node3
node4

[balancers]
node5

[webservers:children]
prod

[all:vars]
ansible_password=flectrag  //保险期间加上,考试看情况受控机密码是不是一样的
    
[greg@control ansible]$ vim ansible.cfg   
[defaults]   /必须要放在第一行这个
inventory = /home/greg/ansible/inventory       
roles_path = /home/greg/ansible/roles        
取消ssh验证,也就是第一次ssh机器时不需要按yes更新密钥
host_key_checking = False   
remote_user = greg   

[privilege_escalation]    
become=True    
become_method=sudo     //sudo方式操作
become_user=root      //以root权限使用
become_ask_pass=False   


测试:
[greg@control ansible]$ ansible  all --list-hosts

-----------------------------------------------------------------------------------------------

[greg@control ansible]$ ansible all -m ping -o    #ping下受控主机是否在线

[greg@control ansible]$ vim adhoc.sh    
#!/bin/bash    
ansible all -m yum_repository -a 'name=EX294_BASE description="EX294 base software" baseurl=http://content/rhel8.0/x86_64/dvd/BaseOS gpgcheck=yes gpgkey=http://content/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release '

ansible all -m yum_repository -a 'name=EX294_STREAM description="EX294 stream software" baseurl=http://content/rhel8.0/x86_64/dvd/AppStream gpgcheck=yes gpgkey=http://content/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release enabled=yes'
:wq

[greg@control ansible]$ chmod 755 adhoc.sh     #给与执行权限
[greg@control ansible]$ ./adhoc.sh    

ansible all -m shell -a "yum repolist"     //查看yum仓库,会有waring不用管他

---------------------------------------------------------------------------------------------------
[greg@control ansible]$ vim packages.yml    //这题没啥难度,
---
- name: install php and mariadb
  hosts: dev,test,prod
  vars:
	packs:
	  - php
	  - mariadb
  tasks:
    - name: install php and mariadb
      yum:
        name: "{
   { item }}"
        state: present
	  loop: "{
   { packs }}"

- name: install groups
  hosts: dev
  tasks:
    - name: install dev tools
      yum:
        name: "@RPM Development Tools"
        state: present
    - name: update all
      yum:
        name: '*'
        state: latest                   
:wq
[greg@control ansible]$ ansible-playbook packages.yml     
 验证直接看执行过程,一目了然 
----------------------------------
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

项目工程师余工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值