15.RedHat认证-Ansible自动化运维(上)

news2024/11/25 22:26:25

15.RedHat认证-Ansible自动化运维(上)

RHCE8-RH294

Ansible自动化(Ansible版本是2.8.2)

Ansible介绍

1.Ansible是什么?
Ansible是一个简单的强大的无代理的自动化运维工具(Ansible是自动化运维工具)

Ansible特点

简单的Ansible-Simple
Ansible Playbooks是容易理解,容易看懂的。playbooks是非常容易理解和修改的自动化工具。不需要特
别复杂的编程能力就能写playbook。playbook顺序执行task。playbook简单涉及让每个团队都能很容易上手使用


强大的Ansible-Powerful
你可以使用ansible来部署应用,进行配置管理,工作流自动化运维,网路自动化运维。Ansible可用于协调
整个应用程序生命周期


无代理的Ansible-Agentless
Ansible被建立为无代理的架构。通常,Ansible通过使用OpenSSH或WinRM来连接到被管理的主机并且
经常(但不全是)通过向被管理主机推送叫Ansible模块的小程序来运行tasks。这些程序用于将系统置于
特定的期望状态。任何被推送的模块当ansible任务执行完之后将会被移除。你可以很快的上手ansible,因
为ansible在被管理主机上不需要任何特殊的代理。因为客户端没有代理,所以Ansible是更高效的并且相
比其他的自动化运维工具更安全。

Ansible优势

跨平台支持
Ansible的无代理特性支持Linux,Windows,Unix和网络设备,无论物理机,虚拟机,云主机和容器环境都能支持

易懂易上手
被写成YAML的text文件的Ansible Playbooks是易懂的并且能帮助任何人快速理解并上手

完美应用描述
Ansible Playbooks可以进行任何更改,并且可以描述和记录应用程序环境的各个方面

简单的版本管理
Ansible Playbooks和project是明文的text。它们可以像源代码一样对待并放置在现有的版本控制系统中

支持动态的Inventories
Ansible管理的计算机列表可以从外部源动态更新,以便始终捕获所有托管服务器的正确,最新列表,无论基础架构或位置如何

与其他系统轻松集成的编排
HP SA,Puppet,Jenkins,Red Hat Satellite和其它的在你环境中的系统都可以被集成到你的Ansible中


Ansible是第一种可以跨IT读写的自动化语言。它也是唯一能够从开始到结束自动化应用程序生命周期和连续
交付管道的自动化引擎。

Ansible概念和架构

控制节点
在Ansible的架构中有两种类型的机器,一类是控制节点,一类是被管理主机。Ansible被安装并且运行在
控制节点上,并且这类机器上有你的项目文件的副本。控制节点可以是管理员的笔记本,也可以是一个被
很多管理共同使用的系统,也可以是一个运行Ansible Tower的服务器。


被管理主机-Inventory
被管理主机被列在Inventory中,inventory将这些被管理主机组织进不同的group中进行管理。inventroy
可以被定义在静态的text文件中,或者被定义在动态的脚本中。


Playbook
不用写复杂的脚本,Ansible用户创建高等级的plays来保证主机处在特定的状态。一个剧本在主机上执行
一系列的任务。这些剧本在text文件中被表达为YAML的格式。一个包含一个或更多的play文件叫做
playbook。


Task
每个task运行一个带着特定参数的module,每个module都是一段很少的代码,该代码可以用Python,
PowerShell或其他的语言写。每个模块本质上都是工具包中的工具。Ansible附带了数百个可用于执行各种
自动化任务的有用模块。这些模块可以操作系统中的文件,安装软件或者做系统调用。


安全的多次运行
当在task中使用模块时,模块通常确保关于机器的某些特定事物处于特定状态。例如,task结余使用模块来
确定一个文件是否存在,是否有特定的权限和内容,而使用不同模块的任务可以确保挂载了特定的文件系
统。如果系统不在那个状态,task将会将系统置成那个状态。如果系统已经处在了那个状态,它将什么都
不会做。如果一个task失败了,Ansible的缺省行为是为失败的主机终止剩余的剧本。Tasks,Plays和
playbook是idempotent(幂等的)。你可以在同样的主机上安全的运行多次同样的playbook,并且当你的
系统处在正确的状态时,playbook当运行时将不会做任何改变。


Ansible插件
Ansible也使用插件。插件是您可以添加到Ansible来扩展它,并且能适应新用途和平台的代码。


Ansible架构
Ansible架构是无代理的。通常,当一个管理员运行一个Ansible Playbook或者ad hoc命令时,控制节点
通过使用SSH或WinRM来连接到被管理主机。这意味着在被管理主机客户端不必安装特定的代理软件,并
且不必允许特殊的网络流量传输到非标准端口

rh294虚拟机(实验环境)

实验环境分享链接

链接:https://pan.baidu.com/s/1883uarHug1aJVWRmIt-XaQ
提取码:6666

rh294虚拟机的账号和密码
username:kiosk
password:redhat
username:root
password:Asimov
登陆环境时,选择kiosk用户登陆,不要用root登陆

classroom environment

在这里插入图片描述

在rh294的机器里面有7个基于KVM的虚拟机,分别如下:
workstation虚拟机(作为ansible control host)
servera,serverb,serverc,serverd(作为ansible managed host)
bastion(提供了一个外部网络)
classroom虚拟机(提供了练习环境脚本,软件仓库,课程材料)
你如果想管理这些教学环境的虚拟机,不需要掌握虚拟化知识。红帽提供了非常方便的管理工具rht tools。
red hat training tools。


这些虚拟机的启动顺序,先启动classroom,在启动剩下所有的虚拟机。
刚开始的环境,虚拟机并没有在环境中存在,需要使用命令拉取虚拟机。


[kiosk@foundation0 ~]$ rht-vmctl fullreset classroom
Are you sure you want to full reset classroom? (y/n) y
Powering off classroom..
Full resetting classroom.
Creating virtual machine disk overlay for rh294-classroom-vda.qcow2
Starting classroom.
rht-vmctl命令就是rht tools。
rht-vmctl fullreset的意思就是完全重置某个虚拟机(虚拟机的删除重建)

在这里插入图片描述

classroom启动之后,我们第一次加载环境,需要将其他的虚拟机文件全部加载到环境里面
[kiosk@foundation0 ~]$ rht-vmctl fullreset all   #将除了classroom之外的所有虚拟机全部删除重建
即使你有kvm虚拟化的管理经验,也不建议你用kvm的相关操作来管理
[kiosk@foundation0 ~]$ su -
Password:
[root@foundation0 ~]# virsh destroy servera   # 立即停止某个虚拟机
Domain servera destroyed
[root@foundation0 ~]# virsh list --all
Id Name State
----------------------------------------------------
8 classroom running
9 bastion running
10 workstation running
12 serverb running
13 serverc running
14 serverd running
- servera shut off
[root@foundation0 ~]# virsh start servera
Domain servera started
[root@foundation0 ~]# virsh list --all
Id Name State
----------------------------------------------------
8 classroom running
9 bastion running
10 workstation running
12 serverb running
13 serverc running
14 serverd running
15 servera running
墙裂建议用rht tools来管理这些虚拟机
rht-vmctl status all 查看所有虚拟机的状态
[kiosk@foundation0 ~]$ rht-vmctl status all
bastion RUNNING
workstation RUNNING
servera RUNNING
serverb RUNNING
serverc RUNNING
serverd RUNNING
[kiosk@foundation0 ~]$ rht-vmctl status classroom
classroom RUNNING

在这里插入图片描述

virt-manager命令可以打开图形化的KVM工具

在这里插入图片描述

[kiosk@foundation0 ~]$ rht-vmctl reset all
#相当于将所有的虚拟机都恢复快照

[kiosk@foundation0 ~]$ rht-vmctl poweroff all
#关闭所有的虚拟机
all不包含classroom

[kiosk@foundation0 ~]$ rht-vmctl status all
bastion DEFINED
workstation DEFINED
servera DEFINED
serverb DEFINED
serverc DEFINED
serverd DEFINED
[kiosk@foundation0 ~]$ rht-vmctl start all  # 启动所有的虚拟机
[kiosk@foundation0 ~]$ rht-vmctl status all
bastion RUNNING
workstation RUNNING
servera RUNNING
serverb RUNNING
serverc RUNNING
serverd RUNNING

[kiosk@foundation0 ~]$ rht-vmctl poweroff servera
Are you sure you want to poweroff servera? (y/n) y
Powering off servera..

[kiosk@foundation0 ~]$ rht-vmctl status all
bastion RUNNING
workstation RUNNING
servera DEFINED
serverb RUNNING
serverc RUNNING
serverd RUNNING


#-----------------------------------------------------------------------------------------------------
教学环境的主机解析文件
[kiosk@foundation0 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
### rht-vm-hosts file listing the entries to be appended to /etc/hosts
#
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
172.25.250.254 bastion.lab.example.com bastion


在rh294的环境里面classroom给我们提供了两个web网站,分别是content.example.com和materials.example.com
# 可以在虚拟机里的浏览器里直接访问

如何操作我们的RH294环境

我们后面的练习都是通过rh294的物理操作系统连接到workstation来操作
workstation是我们的ansible control节点
servera~d是我们的ansible managed节点
几乎所有的虚拟机的root密码都是redhat
除了root用户之外还有一个叫做student的特权用户,该用户的密码是student
classroom的root密码是Asimov



在rhel8系统,ansible会自动的根据你的平台的python版本去选择。
[student@workstation ~]$ yum list platform-python

如果你是rhel系统,需要使用订阅命令通过RHN连到红帽的软件仓库进行下载安装。
在教学环境里面,已经给我们集成了相关的软件仓库。

#Workstation是ansible的控制节点,我们只在控制节点安装ansible即可,被管理节点不需要安装Ansible!!!

[student@workstation ~]$ sudo yum -y install ansible
[sudo] password for student:
Last metadata expiration check: 0:49:06 ago on Wed 03 Jun 2020 09:34:52 PM
CST.
Package ansible-2.8.0-1.el8ae.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!

# 查看控制节点的python版本,
# 切记:被管理主机必须要有python环境
[student@workstation ~]$ ansible --version
ansible 2.8.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/student/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Apr  3 2019, 17:26:03) [GCC 8.2.1 20180905 (Red Hat 8.2.1-3)]

Ansible安装练习(Lab环境的安装)

[kiosk@foundation0 ~]$ ssh workstation
[student@workstation ~]$ lab intro-install start # 其实这个脚本里删除了ansible,就是想让我们自己练习安装ansible

[student@workstation ~]$ sudo yum -y install ansible # 安装ansible

[student@workstation ~]$ ansible --version
ansible 2.8.0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/student/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible 	# ansible模块的位置
executable location = /usr/bin/ansible
python version = 3.6.8 (default, Apr 3 2019, 17:26:03) [GCC 8.2.1
20180905 (Red Hat 8.2.1-3)]

[student@workstation ~]$ lab intro-install finish
Cleaning up environment:
. Cleaning up................................................. SUCCESS

CentOS8安装ansible

[root@control-host ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)
#确保internet的可达性

[root@control-host ~]# yum repolist
如果想在centos上安装ansible有两种方法,一种是源码包安时,还有一种是通过epel软件仓库安装

[root@control-host ~]# yum -y install epel-release
# 上面软件安装完成之后会自动帮你生成epel的软件仓库
[root@control-host ~]# yum repolist

# 安装ansible
[root@control-host ~]# yum list | grep ansible
-----------------------------------------------------
ansible.noarch 2.9.9-1.el8	epel
ansible-doc.noarch 2.9.9-1.el8	epel
ansible-freeipa.noarch 0.1.6-4.el8	AppStream
centos-release-ansible-29.noarch 1-2.el8	extras
-----------------------------------------------------
[root@control-host ~]# yum -y install ansible
[root@control-host ~]# ansible --version
---------------------------------------------------
ansible 2.9.9
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules',
'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.6/site-packages/ansible
executable location = /usr/bin/ansible
python version = 3.6.8 (default, May 21 2019, 23:51:36) [GCC 8.2.1
20180905 (Red Hat 8.2.1-3)]
----------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1816958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

八字综合测算网整站源码程序/黄历/灵签/排盘/算命/生肖星座/日历网/周公解梦

八字综合测算网整站源码程序/黄历/灵签/排盘/算命/生肖星座/日历网/周公解梦 演示地址: https://s24.gvyun.com/ 手机端地址: https://ms24.gvyun.com/ 网站功能分类: 八字:八字测算;日干论命;称骨论命…

争议不断:金额到底是用Long还是BigDecimal?

先问个问题,在开发过程中你是选择用Long还是BigDecimal来处理金额? 浮点数陷阱 为什么排除float和double 浮点数无法精确表示许多十进制数。 我们希望输出0.3,但由于浮点数的表示问题,实际结果却是0.30000000000000004&#xff…

Python强化学习(Reinforcement Learning, RL)库之gymnasium使用详解

概要 在强化学习(Reinforcement Learning, RL)领域中,环境(Environment)是进行算法训练和测试的关键部分。gymnasium 库是一个广泛使用的工具库,提供了多种标准化的 RL 环境,供研究人员和开发者使用。通过 gymnasium,用户可以方便地创建、管理和使用各种 RL 环境,帮助…

代码随想录算法训练营第四十三天 | 01背包问题理论基础、01背包问题滚动数组、416. 分割等和子集

背包问题其实有很多种,01背包是最基础也是最经典的,软工计科学生一定要掌握的。 01背包问题 代码随想录 视频讲解:带你学透0-1背包问题!| 关于背包问题,你不清楚的地方,这里都讲了!| 动态规划经…

如何将jpg图像添加文字并转换成无压缩的dicom图像

操作系统ubuntu 20 安装imagemagick sudo apt install imagemagick 安装dcmtk sudo apt install dcmtk 脚本如下 #!/bin/bash# Font font"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"# Font size fontsize30# Font color fontcolor"red" conver…

《web应用技术》第十一次作业

1、验证过滤器进行权限验证的原理。 代码展示: Slf4j WebFilter(urlPatterns "/*") public class LoginCheckFilter implements Filter { Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) thro…

数控机床采集网关的应用-天拓四方

随着工业4.0时代的到来,智能制造成为制造业转型升级的重要方向。数控机床作为制造业的核心设备,其数据采集与监控对于提升生产效率、优化生产流程具有重要意义。本案例将介绍数控机床采集网关的应用,通过该网关实现数控机床数据的实时采集、传…

道闸系统怎么录入车牌,停车场道闸车牌输入方法有哪些?

现在智慧停车场管理系统越来越受到重视,停车场道闸系统作为其中的核心组成部分,通过车牌识别技术实现了车辆的快速、准确管理,但在道闸系统初期也存在手动需要录入车牌的工作。本文将详细介绍道闸系统录入车牌的步骤和方法,帮助管…

论文写作革新:AI如何简化你的研究流程?

不知道大家有没有发现,随着人工智能技术的快速发展,AI工具正逐渐渗透到我们日常生活的各个方面,极大地提高了我们的工作和学习效率。无论是AI写作、AI绘画、AI思维导图,还是AI幻灯片制作,这些工具已成为我们不可或缺的…

16 DTLS协议

加密解密基本概念 什么是非对称加密 什么是公钥 这个就是谁都能获得的钥匙什么是私钥 只有一个人能获得 非对称加密就是公钥上的锁,私钥才能打开,私钥上的锁公钥才能打开。比如说就是地下党接头的时候,把一个信息放在盒子里,然…

用映射对比ab俩个数组 , 并把a的参数传递给b

项目背景 : react ant 需求 : 在项目进行表头设置时,根据aaa中的key和bbb中的name对应 , 并将sort值插入到bbb中 其中 a b 结构如下 具体实现 aaa[ { key: "orderNumber", orderNumber: "工单编号", sort: 1 } ... ]bbb [ { name: "orderNumber…

白酒:茅台镇白酒的消费趋势与未来发展

茅台镇,中国白酒的璀璨明珠,以出产品质的白酒而享誉全球。在这片神奇的土地上,云仓酒庄豪迈白酒以其别具一格的酿造工艺和风格特点,成为了市场的宠儿。随着消费市场的不断变化,云仓酒庄豪迈白酒的消费趋势也在悄然发生…

有哪些指标体系搭建模型?五个步骤教你从0开始搭建指标体系

在当今的商业环境中,数据驱动决策已成为企业成功的关键因素。构建一个有效的指标体系是实现数据驱动的基石,它能够帮助企业明确业务目标、量化业绩表现、监控市场动态,并指导战略规划。一个精心设计的指标体系能够为企业提供一个全面的视图&a…

凡尔码来访登记卡助力来访安全

来访登记制度是指为了加强对来访人员的管理和安全控制,确保组织内部秩序和安全的一项制度。通过来访登记制度,可以对来访人员的身份进行核实,了解来访目的,并采取相应的安全措施,为组织内部的工作和人员安全提供保障。…

【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建自定义对话框 文章编号:Qt 学习笔记…

为什么代理IP都没有100%可用性?

在当今高度互联的网络环境中,代理IP已成为许多网络活动的重要支撑工具,从数据收集到业务推广,无所不包。然而,代理IP在很多场景中发挥着重要作用,却很难实现100%的可用性。 这种情况并非偶然,而是受到多重复…

【Qt 学习笔记】Qt窗口 | 标准对话框 | 字体对话框QFontDialog

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 标准对话框 | 字体对话框QFontDialog 文章编号:Q…

IEOSE 2024北京国际教育留学海外院校展览会11月举办

IEOSE 2024北京国际教育留学展览会 IEOSE 2024 Beijing International Education and Overseas Study Exhibition 2024年11月15日-11月17日(周五-周日) 15th-17th November, 2024 北京国家会议中心 China National Convention Ce…

C# WPF 读写CAN数据

C# WPF 读写CAN数据 CAN 分析仪 分析仪资料下载 官方地址:https://www.zhcxgd.com/1.html CSDN: 项目配置 复制Dll库文件 文件在上面的资料里面 设置不安全代码 CAN C#工具类 CAN_Tool.cs using Microsoft.VisualBasic; using System; using Sys…

ASM-MehotdVisitor实践

使用ASM几乎用户全部的精力都是对MethodVisitor的处理,方法code的处理都需要使用这个类进行操作。还是之前文章说过的,ASM单独学习意义并不大,难以达到触类旁通,先行掌握字节码基础后再玩起ASM才能体会真正的乐趣,不然…