linux高级篇基础理论十二( 自动化运维工具Ansible )

news2024/11/19 17:33:18

♥️作者:小刘在C站

♥️个人主页: 小刘主页 

♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。

♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技术

♥️感谢CSDN让你我相遇!

目录

ansible是什么?

使用者

Ansible工具集

作用对象

Ansible初始环境

Ansible配置

ansible语法

Ansible返回结果

Ansible模块

1、shell模块

2、copy模块

3、hostname模块

4、yum模块

5、service模块

6、user模块


ansible是什么?

一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为的失误。Asbe通过本身集成的非常丰富的模块实现各种管理任务,其自带模块超过上千个。更为重要的是,它的操作非常简单,即使新手也比较容易上手,但它提供的功能却非常丰富,在运维领域,它几乎可以做任何事情。

ansible特点:

  • ansible基于python开发,对其二次开发较容易。
  • 有丰富的内置模块,可以满足一切需求。
  • 管理模式简单,一条命令可以影响上千台主机。
  • 无客户端模式,底层通过ssh通信

ansible不同角色

可以分为三个部分:使用者、Ansible工具集、作用对象。

使用者

Ansible使用者可以采用多种方式和Ansible交互,图中为我们展示了四种方式CDB:CMDB存储和管理着企业T架构中的各项配置信息,是构建TL项目的核心工具运维人员可以组合CMDB和Ansible,通过CDB直接下发指令调用Ansible工具集完成操作者所希望达到的目标。PUBLIC/PRIVATE方式:Ansible除了丰富的内置模块外,同时提供丰富的AP语言接口,如PHP、Python、PERL等多种流行语言,基于PUBLIC/PRIVATE,Ansible以AP调用的方式运行」Ad-Hoc命令集:Users直接通过Ad-Hoc命令集调用Ansible工具集来完成任务.laybooks:Users预先编写好Ansible Playbooks,通过执行Playbooks中预先编排好的任务集按序执行任务

工作原理:

Ansible工具集
  • Ansible Playbooks:任务脚本,编排定义Ansible任务集的配置文件,由Ansible按序依次执行通常是JSON格式的YML文件。
  • Inventory:Ansible管理主机清单。
  • Modules:Ansible执行命令功能模块,多数为内置的核心模块,也可以自定义。
  • Plugins:模块功能的补充,如连接类型插件、循环插件、变量插件、过滤插件等,该功能不常用。
  • API:供第三方程序调用的应用程序编程接口。
  • Ansible:该部分图中表示得不明显,组合Inventory、APl.Modules,Plugins可以理解为是Ansible命令工具,其为核心执行工具。
作用对象

Ansible的作用对象不仅仅是Linux和非Linux操作系统的主机,也可以作用于各类PUBLIC/PRIVATE
商业和非商业设备的网络设施。使用者使用Ansible或Ansible--playbooks时,在服务器终端输入Ansible的Ad-Hoc命令集或Playbooks后,Ansible会遵循预先安排的规则将Playbooks逐步拆解为Play,再将Play组织成Ansible可以识别的任务,随后调用任务涉及的所有模块和插件,根Inventory中定义的主机列表通过SSH将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,如果是临时文件则执行完毕后自动删除。

Ansible初始环境

yum安装即可

yum -y install ansible

生成ssh秘钥对(三次交互全部回车即可)

ssh-keygen -t  rsa

复制公钥到服务器(192.168.1.1)

ssh-copy-id  root@192.168.1.1

Ansible配置

Ansible通过将设备列表以分组的方式添加到/etc/ansible/hosts文件来实现对设备的管理,所以
在正式管理之前,首先要编写hosts文件。hosts文件中,以[]包含的部分代表组名,设备列表支持
主机名和P地址,默认情况下,通过访问22端口(SSH)来管理设备。若目标主机使用了非默认的
SSH端口,还可以在主机名称之后使用冒号加端口号标明,以行为单位分隔配置。另外,hoss文件还支持通配符。

[web]                 #[web]为模块名称
192.168.8.136
192.168.8.139

只对web组中192.168.8.136主机操作。通过--|imit参数限定主机的变更

只对192.168.8.0网段主机操作。通过通配符限定主机的变更

ansible语法

Ansible <host-pattern>   [options]

检查所有主机是否存活。具体执行命令如下。

其中,192.168.8.139是执行的主机,SUCCESS表示命令执行成功,”=>{}表示返回的结果。”changed”:false表示没有对主机做出更改,”ping”:”pong”表示执行了ping命令的返回结果。命令中all关键字是系统默认存在的,代表了/etc/ansible/hosts中的所有主机,不需要在hosts文件中定义all关键字。

列出wb组所有的主机列表。执行命令如下。

批量显示web组中的磁盘使用空间,执行命令如下。

Ansible返回结果

Ansible的返回结果非常友好,一般会用三种颜色来表示执行结果:红色、绿色和橘黄色。其中红色表示执行过程有异常,橘黄色表示命令执行后目标有状态变化,绿色表示执行成功且没有对目
标机器做修改

Ansible模块

1、shell模块

Shell模块在远程主机执行命令,相当于调用远程主机的Shell进程,然后在该Shell下打开一个
子Shell运行命令。和command模块的区别是它支持Shell特性,如管道、重定向等。


2、copy模块
  • dest:指出复制文件的目标目录位置,使用绝对路径。如果源是目录,则目标也要是目录如果目标文件已存在,会覆盖原有内容。
  • src:指出源文件的路径,可以使用相对路径和绝对路径,支持直接指定目录。如果源是目录,则目标也要是目录。
  • mode:指出复制时,目标文件的权限,可选。
  • owner:指出复制时,目标文件的属主,可选。
  • group指出复制时,目标文件的属组,可选。
  • content:指出复制到目标主机上的内容,不能与src一起使用,相当于复制content指明的数据到目标文件中。


3、hostname模块

hostname模块用于管理远程主机上的主机名,常用参数如下。


4、yum模块
  • yum模块基于yum机制,对远程主机管理程序包,常用参数如下。
  • name:程序包的名称,可以带上版本号。若不指明版本,则默认为最新版本。
  • state=present\latest\absent:指明对程序包执行的操作,present表示安装程序包,latest表示安装最新版本的程序包,absent表示卸载程序包。
  • disablerepo:在用yum安装时,临时禁用某个仓库的ID。
  • enablerepo:在用yum安装时,临时启用某个仓库的ID,
  • conf_file:yum运行时的配置文件,而不是使用默认的配置文件。
  • diable_gpg_check=yes/no:是否启用完整性校验功能。


5、service模块
  • service模块为用来管理远程主机上的服务的模块,常见参数如下。
  • name:被管理的服务名称。
  • state-=started stopped restarted:动作包含启动,关闭或重启
  • enabled=yes no:表示是否设置该服务开机自启动。
  • runlevel:如果设定了enabled开机自启动,则要定义在哪些运行目标下自动启动


6、user模块

user模块用于管理远程主机上的用户账号,常见参数如下。
name:必选参数,账号名称。
state=present\absent:创建账号或者删除账号,present表示创建,absent表示删除。
system=yes\no:是否为系统账号。,
uid:用户UID。
group:用户的基本组。
groups:用户的附加组。
shell:默认使用的shell。

home:用户的家目录
move_home=yes/no:如果设置的家目录已经存在,是否将已存在的家目录进行移动.
password:用户的密码,建议使用加密后的字符串。
comment:用户的注释信息。
remove=yes/no:当state=absent时,是否要删除用户的家目录。

创建用户示例如下:

人生要尽全力度过每一关,不管遇到什么困难不可轻言放弃!!!

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

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

相关文章

分布式存储

1 存储基础 1.1 单机存储设备 DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机打的主板总线上去的存储&#xff09; UDE、SATA、SCSI、SAS、USB接口的磁盘 所谓的接口就是一种存储设备驱动下的磁盘设备&#xff0c;提供块级别的存储 NAS&#xff08;网络附加存储…

通俗易懂实现功能强大的实战项目 springboot+java+vue+mysql 日常办公用品直售推荐系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

投资自己,成就未来——社科院杜兰大学金融管理硕士项目

或许你一直在寻找一个能够提升自己、实现职业突破的机会。如果你对金融领域充满热情&#xff0c;并且渴望在这个竞争激烈的行业中脱颖而出&#xff0c;那么我要向你介绍一个绝佳的选择——中国社会科学院与美国杜兰大学金融管理硕士项目。 在这个高速发展的时代&#xff0c;投…

C语言调试大作战:与VS编译器共舞,上演一场“捉虫记”的艺术与科学

少年们好&#xff0c;我是博主那一脸阳光&#xff0c;我们接下来介绍C语言的调试和bug的分享。 引言&#xff1a; “如果你曾经在深夜与一串神秘莫测的C代码狭路相逢&#xff0c;彼此瞪大眼睛&#xff0c;犹如牛仔对决般紧张刺激&#xff1b;或者你曾试图驯服一段狂野不羁的循环…

C++入门案例——通讯录管理系统 控制台项目

前言 C入门案例——通讯录管理系统 & 控制台项目 目录 前言总体概览实体类设计显示页面和退出系统 添加联系人逻辑拆解相关代码 显示联系人逻辑拆解相关代码 根据名字删除联系人逻辑拆解相关代码 根据名字查找联系人逻辑拆解相关代码 修改联系人逻辑拆解相关代码 清空所有…

如何公网远程访问Axure RP制作的本地web页面【内网穿透】

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

Angular系列教程之组件

文章目录 前言组件的基本概念组件与指令的关系在模板中使用组件总结 前言 在Angular中&#xff0c;组件是构建Web应用程序的核心单元。它们允许我们将UI划分为独立且可重用的部分&#xff0c;并通过数据绑定和事件处理等机制来实现交互性。本文将介绍Angular组件的基本概念&am…

2024大数据“打假”:什么才是真湖仓一体?

编者按&#xff1a;近年来&#xff0c;随着金融、制造、政务、交通、医疗等行业数字化转型深入&#xff0c;大量智慧应用涌现&#xff0c;使得构建强大的数据分析技术栈成为必须&#xff0c;也让“湖仓一体”成为热门词汇。但面对市场中各色各样的湖仓技术&#xff0c;众多行业…

【漏洞复现】Kubernetes PPROF内存泄漏漏洞(CVE-2019-11248)

Nx01 产品简介 Kubernetes&#xff08;简称K8S&#xff09;是Google在2014年开源的一个容器集群管理系统。它用于容器化应用程序的部署、扩展和管理&#xff0c;目标是让部署容器化应用简单且高效。 Nx02 漏洞描述 漏洞存在于Kubernetes的1.18.6版本之前&#xff0c;可能导致未…

某侠网js逆向wasm解析

本次目标地址如下&#xff0c;使用base64解密获得 aHR0cHM6Ly93d3cud2FpbWFveGlhLm5ldC9sb2dpbg 打开网址&#xff0c;本次的目标是登录接口&#xff0c;如下图 本文主要讲解wasm的解析&#xff0c;所以对其他参数不做逆向处理&#xff0c;本次由wasm加密的参数只有sign一个&a…

07 整合SSM的快速理解

1.1 第一问&#xff1a;SSM整合需要几个IoC容器&#xff1f; 两个容器 本质上说&#xff0c;整合就是将三层架构和框架核心API组件交给SpringIoC容器管理&#xff01; 一个容器可能就够了&#xff0c;但是我们常见的操作是创建两个IoC容器&#xff08;web容器和root容器&…

记一次小黄站渗透过程,实操!

前言 记录某一次无意点开的一个小网站的渗透过程&#xff0c;幸运的是搭建平台是phpstudy&#xff0c;cms是beecms&#xff0c;beecms有通用漏洞&#xff0c;然后去网上找了资料&#xff0c;成功getshell并获取服务器权限。 渗透过程 无意点开一个网站&#xff0c;发现网站比…

【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知

在阅读论文&#xff1a;OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, …

datawhale 大模型理论基础 引言

学习地址&#xff1a;大模型理论基础 一、什么是语言模型&#xff08;Language Model) 语言模型其实是一个概率模型&#xff0c;给每一个句子列表计算一个概率值&#xff1a; p(x1​,…,xL​) 例如&#xff1a; p(the, mouse, ate, the, cheese)0.02…

解决若依Vue3前后端分离---路由切换时显示白屏

解决若依Vue3前后端分离---路由切换时显示白屏 1.问题重述 解决基于Vue3若依前后端分离项目中出现的路由正常切换但是就是不显示数据的问题&#xff0c;也就是不发起网络请求的问题。 找到如下位置中AppMain.vue文件 将除了css中的代码进行替换成如下的代码。 <template&g…

Python数据分析案例34——IMDB电影评论情感分析(Transformer)

电影评论的情感分析 案例背景 很多同学对电影系列的数据都比较喜欢&#xff0c;那我就补充一下这个最经典的文本分类数据集&#xff0c;电影情感评论分析。用神经网络做。对国外的英文评论文本进行分类&#xff0c;看是正面还是负面情感。 数据集介绍 数据集&#xff1a;IMDb…

C# wpf 获取控件的刷新时机

文章目录 前言一、为何需要刷新时机&#xff1f;例子一、隐藏控件后截屏例子二、修改控件大小后做计算 二、如何实现&#xff1f;1.使用动画2.使用TaskCompletionSource 三、完整代码四、使用示例1、隐藏工具条截屏2、修改宽高后获取ActualWidth、ActualHeight 总结 前言 做wp…

Codeforces Round 920 (Div. 3) F题 根号分治,后缀和,后缀和的后缀和

Problem - F - Codeforces 我看的这位UP的视频讲解 &#xff1a; Codeforces Round 920 (Div. 3) F题 根号分治 详解_哔哩哔哩_bilibili 目录 题意&#xff1a; 思路&#xff1a; 后缀和的后缀和: 后缀和的后缀和的中间段如何求&#xff1a; ———— 根号分治: 核心…

2024极新生态营再出发,携手华为云点燃AI技术与商业创新的火花

“ 成功的风口是时间加产品竞争力 ” 文&#xff5c;欣桐&凯丰 编辑 | 云舒 出品&#xff5c;极新 2023年大模型获得突破性进展&#xff0c;正在带来新一轮科技革命和产业变革&#xff0c;众多头部企业在一年内完成了产品迭代、拿到多轮融资&#xff0c;初创企业更是如…