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

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
下载到本地后,右键通过VMworkStation 打开这个文件(RH294-SCSI.vmx)即可
在这里插入图片描述

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.0config file = /etc/ansible/ansible.cfgconfigured module search path = ['/home/student/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3.6/site-packages/ansibleexecutable location = /usr/bin/ansiblepython 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.mzph.cn/news/853607.shtml

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

相关文章

RPC知识

一、为什么要有RPC: HTTP协议的接口,在接口不多、系统与系统交互较少的情况下,解决信息孤岛初期常使用的一种通信手段;优点就是简单、直接、开发方便,利用现成的HTTP协议进行传输。 但是,如果是一个大型的网…

[大模型]XVERSE-7B-chat FastAPI 部署

XVERSE-7B-Chat为XVERSE-7B模型对齐后的版本。 XVERSE-7B 是由深圳元象科技自主研发的支持多语言的大语言模型(Large Language Model),参数规模为 70 亿,主要特点如下: 模型结构:XVERSE-7B 使用主流 Deco…

HAL库开发--STM32的HAL环境搭建

知不足而奋进 望远山而前行 目录 文章目录 前言 下载 安装 解压 安装 添加开发包 修改仓库路径 下载软件开发包(慢,不推荐) 解压已有软件开发包(快,推荐) 总结 前言 在嵌入式系统开发中&#x…

线上教育培训办公系统系统的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,教师管理,学生管理,运营事件管理 教师账户功能包括:系统首页,个人中心,学生管理,作业管理,电…

Java版+ SaaS应用+接口技术RESTful API 技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开

Java版 SaaS应用接口技术RESTful API WebSocket WebService技术开发的智慧医院HIS系统源码 专注医院管理系统研发 支持二开 医院住院管理系统(Hospital Information System简称HIS)是一门医学、信息、管理、计算机等多种学科为一体的边缘科学&#xff…

LabVIEW与Matlab联合编程的途径及比较

​ LabVIEW和Matlab联合编程可以通过多种途径实现,包括调用Matlab脚本节点、使用LabVIEW MathScript RT模块、利用ActiveX和COM接口,以及通过文件读写实现数据交换。每种方法都有其独特的优势和适用场景。本文将详细比较这些方法,帮助开发者…

给文件夹加密的最简单方法

安当TDE透明加密针对文件夹数据加密的保护方案主要包括以下几个方面: 1. 透明加密机制: 用户无需关心数据的加密和解密过程,操作文件夹时就像处理普通数据一样。加密和解密操作在后台自动进行,对用户和应用程序透明。 2. 高性能加…

python文件操作(Windows路径,内置os库)+ 正则表达式(语法与re库)

文章目录 前言1 Windows路径(1)绝对路径 (Absolute Path)(2)相对路径 (Relative Path)一、python文件的读写操作1 读写(1)打开文件file = open(test1.txt,r,encoding=utf-8) --- 打开文件(2)读取文件内容content = file.read() --- 读取全部内容,返回字符串lines = re…

【QT5】<知识点> QT常用知识(更新中)

目录 一、更改文本颜色和格式 二、QT容器类 三、字符串与整数、浮点数之间的转换 四、QString常用功能 五、SpinBox的属性介绍 六、滑动、滚动、进度条和表盘LCD 七、时间、日期、定时器 一、更改文本颜色和格式 动态设置字体粗体:QFont对象的setBold方法动态…

java第二十四课 —— super 关键字 | 方法重写

super 关键字 基本介绍 super 代表父类的引用,用于访问父类的属性、方法、构造器。 基本语法 访问父类的属性,但不能访问父类的 private 属性。 super.属性名; 访问父类的方法,不能访问父类的 private 方法。 super.方法名(参数列表); 访…

个人网站制作 Part 27 添加网站导航搜索功能 | Web开发项目添加页面缓存

文章目录 🚀 添加网站导航搜索功能🔨使用搜索服务🔧步骤 1: 选择搜索服务🔧步骤 2: 注册Algolia账户🔧步骤 3: 获取Algolia搜索配置 使用Vue.js🔧步骤 4: 安装Algolia搜索库🔧步骤 5: 创建搜索组…

DNS域名解析----分离解析、多域名解析、父域与子域

1 理论部分 1.1 分离解析 DNS的分离解析,是指根据不同的客户端提供不同的域名解析记录。来自不同地址的客户机请求解析同一域名时,为其提供不同的解析结果。也就是内外网客户请求访问相同的域名时,能解析出不同的IP地址,实现负载…

【机器学习】机器学习中的人工神经元模型有哪些?

线性神经元 线性神经元(Linear Neuron)是一种基本的人工神经元模型,特点是其输出是输入的线性组合。线性神经元是神经网络中最简单的一种形式,适用于处理线性关系的问题。数学模型如下, y w ⋅ x b ∑ i 1 n w i x…

springboot原理篇-配置优先级

springboot原理篇-配置优先级(一) springboot项目一个支持三种配置文件 application.propertiesapplication.ymlapplication.yaml 其中,优先级的顺序是: application.properties > application.yml > application.yaml 也…

块级元素与行内元素详解

在网页设计与开发中,元素根据其在页面布局中的表现可分为两大类:块级元素(Block-level Elements)和行内元素(Inline Elements)。理解它们的特性和使用规则对于构建结构清晰、布局合理的网页至关重要。 块级…

HashMap详解(含动画演示)

目录 HashMap1、HashMap的继承体系2、HashMap底层数据结构3、HashMap的构造函数①、无参构造②、有参构造1 和 有参构造2 (可以自定义初始容量和负载因子)③、有参构造3(接受一个Map参数)JDK 8之前版本的哈希方法:JDK 8版本的哈希方法 4、拉链法解决哈希冲突什么是拉…

正解 x86 Linux 内存管理

1,机器解析的思路 发现网络上大量的教程,多是以讹传讹地讲解 Linux 内存管理; 都是在讲: 逻辑地址 -> 线性地址 -> 物理地址 这个转换关系是怎么发生的。 上面这个过程确实是程序运行时地址的翻译顺序; …

使用消息队列(MQ)实现MySQL持久化存储与MySQL server has gone away问题解决

在现代应用程序开发中,消息队列(MQ)扮演着重要的角色。它们可以帮助我们解决异步通信和解耦系统组件之间的依赖关系。而其中一个常见的需求是将消息队列中的数据持久化到数据库中,以确保数据的安全性和可靠性。在本文中&#xff0…

【AI学习】Together AI的新研究:Together MoA(Mixture of Agents)

第一次听说Mixture of Agents,原来Agent也能混合,有意思! 介绍 Together AI的最新研究“Together MoA”(Mixture of Agents,代理混合)是一种创新的方法,旨在通过结合多个开源大型语言模型&…

【尚庭公寓SpringBoot + Vue 项目实战】公寓管理(十一)

【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】公寓管理(十一)1、业务介绍2、逻辑模型介绍3、接口开发3.1、保存或更新公寓信息3.2、根据条件分页查询详细信息3.3、根据ID获…