使用Asible自动化Linux管理任务

news/2024/4/29 3:27:18/文章来源:https://blog.csdn.net/Mr_Caesar/article/details/137042424

自动化与 Linux 系统管理

        多年来,大多数系统管理和基础架构管理都依赖于通过图形或命令行用户界面执行的手动任务。系统管理员通常使用检查清单、其他文档或记忆的例程来执行标准任务。

        这样的做法容易出错。系统管理员很容易跳过某个步骤或在某个步骤上出错。对步骤执行是否正确或是否产生预期结果的验证通常比较有限。

        另外,如果以手动方式单独管理每个服务器,对于应该要在配置上完全一致的许多服务器而言,它们很容易会出现微小(或重大)的差异。这可能会加大维护的难度,并给IT环境带来错误或不稳定性。

        自动化可以帮助您避免手动管理系统和基础架构造成的问题。作为系统管理员,您可以使用自动化确保快速、正确地部署和配置所有系统。这样,日常计划中的重复性任务便可以自动执行,以空出时间和精力执行更重要的任务。对组织而言,自动化可以帮您加快推出新一版应用或服务更新。

基础架构即代码

        良好的自动化系统允许您实施基础架构即代码方法。基础架构即代码可以让您使用机器可读的自动化语言来定义和描述所需的IT基础架构状态。理想情况下,这种自动化语言也应方便人类阅读,从而让您更容易了解当前状态,并做出调整。然后,此代码将应用到您的基础架构,以确保其确实处于相应状态。

        如果自动化语言表现为简单的文本文件,则可使用版本控制系统轻松管理。这样做的好处在于每项更改都能签入版本控制系统,以获得持续的更改记录。如果要恢复至之前已知良好的配置,可以签出相应版本并将其应用到您的基础架构。

        这样就奠定了一个基础,帮助您遵循 DevOps中的最佳实践。开发人员可以在自动化语言中定义所需的配置。操作员可以更轻松地查看更改以提供反馈,并利用自动化,可重复地确保系统处于开发人员期望的状态。

减少人为错误

        通过任务自动化和基础架构即代码的方式减少在服务器上手动执行的任务数可以提高服务器获得一致配置的几率。

        这意味着您需要习惯于通过更新自动化代码进行更改,而不是手动将其应用到服务器。否则,在下次使用自动化应用更改时您将面临丢失之前手动应用的更改的风险。

        您可借助代码审查,以及自动化内容中的程序文档来降低操作风险。

        最后,您可强制通过自动化执行IT基础架构更改,以减少人为错误。

什么是Ansible?

        Ansible 是一款开源自动化平台。它是一种简单的自动化语言,可在 Ansible Playbook 中完美描述IT 应用基础架构。它还是一个自动化引擎,可运行 Ansible Playbook。

        Ansible 可以管理强大的自动化任务,并且可以适应很多工作流和环境。同时,Ansible新用户可以非常快速地利用它来提高工作效率。

Ansible 简单明了

        Ansible Playbook提供人类可读的自动化。这表示,playbook不仅是自动化工具,而且易于阅读、理解和更改。不需要掌握特别的编码技能就能编写它们。Playbook 按顺序执行任务。Playbook设计的简易性使其可供每个团队使用,让Ansible 入门者也能够快速获得成效。

Ansible 功能强大

        您可以利用 Ansible 部署应用进行配置管理、工作流自动化和网络自动化。您可使用 Ansible 编排整个应用生命周期。

Ansible 无需代理

        Ansible 围绕无代理架构构建。通常而言,Ansible 通过 OpenSSH 或WinRM 连接所管理的主机并运行任务,方法通常是(但不总是)将称为 Ansible 模块的小程序推送至这些主机。这些程序用于将系统置于需要的特定状态。在Ansible 运行完其任务后,推送的所有模块都会被删除。您几乎可以立即开始使用Ansible,因为不需要批准使用任何特殊代理,然后再部署到受管主机上。由于没有代理,也不需要额外的自定义安全基础架构,Ansible要比其他备选方案更加高效和安全。

Ansible 具有多个重要的优点:

1·跨平台支持:Ansible 提供 Linux、Windows、UNIX和网络设备的无代理支持,适用于物理、虚拟、云和容器环境。

2·人类可读的自动化:Ansible Playbook 采用YAML文本文件编写,易于阅读,有助于确保所有人都能理解它们的用途。

3·精准的描述应用:可以通过 Ansible Playbook 进行每一种更改,并描述和记录应用环境的每一个方面。

4·轻松管理版本控制:Ansible Playbook和项目是纯文本。它们可以视作源代码,放在您的现有版本控制系统中。

5·支持动态清单:可以从外部来源动态更新 Ansible 管理的计算机的列表,随时获取所有受管服务器的当前正确列表,不受基础架构或位置的影响。

6·编排可与其他系统轻松集成:能够利用环境中现有的HP SA、Puppet、Jenkins、红帽卫星和其他系统,并且集成到您的Ansible工作流中。

Ansible:DevOps的语言

        沟通是DevOps的关键。Ansible是第一款可以在整个IT 范围读取和编写的自动化语言。

Ansible 概念和架构

        Ansible架构由两种计算机组成,分别为:控制节点和受管主机。Ansible 在控制节点上安装和运行,该计算机上也含有 Ansible项目文件的副本。

        受管主机列在清单中,清单还可以将这些系统组织到组中,以便于集中管理。您可以在文本文件中静态定义清单,也可以通过从外部来源获取群组和主机信息的脚本来动态确定。

        Ansible用户无需编写复杂的脚本,而只要创建高级别 play即可确保主机或主机组处于特定状
态。Play按该 play 指定的顺序对主机执行一系列任务。这些 play通过采用YAML格式的文本文件来表达。包含一个或多个 play的文件称为 playbook.

        每个任务运行一个模块,即(使用 Python、PowerShell 或某种其他语言编写的) 一小段代码。各个模块基本上是您的工具包中的一个工具。Ansible随附了数百个实用模块,它们能够执行许多不同的自动化任务。它们可以作用于系统文件,安装软件或者进行API调用。

        在任务中使用时,模块通常确保计算机的某一特定方面处于特定的状态。例如,任务在使用某个模块时可以确保文件存在并具有特定的权限和内容。任务使用不同模块可以确保已安装特定文件系统。如果系统不处于指定的状态,任务应将其置于相应状态,但也可能什么都不做。如果任务失败,Ansible默认会对出错主机中止 playbook的其余部分,其他主机不受影响。

        任务、play 和 playbook均具有幂等性。这意味着,您可以在相同主机上多次安全地运行一个
playbook。当您的系统处于正确状态时,playbook在运行时不会进行任何更改。有很多模块可供您
用于运行任意命令。但是,您必须小心使用这些模块,以确保其以幂等方式运行。

        Ansible 也使用插件。插件是您可以添加到 Ansible中的代码,以对它进行扩展并使它适合新的用途和平台。

        Ansible架构是无代理的。通常,当管理员运行Ansible Playbook时,控制节点会使用 SSH (默认)或WinRM 连接受管主机。这意味着,您不需要在受管主机上安装Ansible 专用代理,也不需要允许控制节点和受管主机之间进行其他通信。

享受Ansible 支持

        红帽Ansible 自动化平台是一个受到全面支持的Ansible版本,支持企业大规模实施自动化管理。该平台具有以下优势:

·对核心 Ansible工具集的官方支持。

·红帽认证Ansible 内容集合可帮助您通过受支持的代码更快采用Ansible自动化。

·本地工具可帮助您集中交付自动化内容、管理自动化任务,并扩大自动化执行的分布。

·云服务,可帮助您寻找经过认证的Ansible内容,促进团队协作,并提供运维分析,以实现混合环境自动化。

        例如,其自动化控制器组件(前称红帽Ansible Tower) 就是这样一个企业框架,您可以用它控制谁有权在哪些主机上运行 playbook,共享使用 SSH 凭据而不必允许用户传输或查看其内容,记录您的所有Ansible 作业,以及管理清单等等。它提供基于浏览器的用户界面(Web U)和 RESTful API。上游Ansible社区不会自动将该部件包含到社区Ansible分布当中,而是会作为一种开源工具进行开发,并作为红帽Ansible自动化平台产品的一个组成部分进行提供和支持。

Ansible 方式

        设计 Ansible期间,会设定以下目标。

复杂性会破坏效率

        越简单越好。Ansible的设计宗旨是工具易用,自动化易写易读。您应利用这一特点在创建自动化时追求简单化。

专为易读性优化

        Ansible自动化语言围绕简单易读的声明性文本文件来构建。正确编写的Ansible Playbook 可以清楚地记录您的工作流自动化。

声明式思维

        Ansible是一种要求状态引擎。它通过表达您希望系统处于何种状态来解决如何自动化IT部署的问题。Ansible的目标在于仅执行必要更改,将系统置于所需状态。不建议将Ansible 视为脚本语言。

用例

        与其他工具不同,Ansible在一个易用平台当中,将编排与配置管理、调配和应用部署结合到了一起。

Ansible的一些用例包括:

配置管理

        集中化配置文件管理和部署是Ansible的常见用例,很多超级用户也是通过这种方式了解Ansible 自动化平台。

应用部署

        通过Ansible定义应用和使用自动化控制器管理部署时,开发团队可以更加有效地管理从开发到生产的整个应用生命周期。

调配

        应用必须要部署或安装到系统上。Ansible和自动化控制器可帮助简化调配系统的流程,不论是要 PXE 引导和 kickstart安装裸机恢复服务器或虚拟机,还是从模板创建虚拟机或云实例。

持续交付

        创建 CI/CD管道需要多个团队的协调和参与。如果没有组织内人人可用的简单自动化平台,就无法实现这个目标。Ansible Playbook可以让您的应用在整个生命周期内得到正确部署和管理。

安全和合规性

        您在 Ansible Playbook中定义安全策略时,可以将扫描和修复潜在安全问题的程序集成到其他自动化流程中。确保安全应该是您所有部署中不可或缺的组成部分,而不是事后才去考虑的部分。

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

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

相关文章

项目中配置多个阿里巴巴矢量图库方案

1、登录阿里巴巴矢量图库选择需要的图标库进行配置、并下载,如下: 按照以下3张图的步骤进行操作,并下载图标库: 2、代码中将图标库引入之后修改 iconfont.css 和 iconfont.json 两个文件,如下: iconfont.c…

2.6 IDE(集成开发环境)是什么

IDE(集成开发环境)是什么 IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。 通过前面章节的学习我们知道,运行 C 语言&…

YOLOv5全网独家改进: 红外小目标 | 注意力改进 | 多膨胀通道精炼(MDCR)模块,红外小目标暴力涨点| 2024年3月最新成果

💡💡💡本文独家改进:多膨胀通道精炼(MDCR)模块,解决目标的大小微小以及红外图像中通常具有复杂的背景的问题点,2024年3月最新成果 💡💡💡红外小目标实现暴力涨点,只有几个像素的小目标识别率大幅度提升 改进结构图如下: 收录 YOLOv5原创自研 https://b…

Linux安装redis(基于CentOS系统,Ubuntu也可参考)

前言:本文内容为实操记录,仅供参考! 一、下载并解压Redis 1、执行下面的命令下载redis:wget https://download.redis.io/releases/redis-6.2.6.tar.gz 2、解压redis:tar xzf redis-6.2.6.tar.gz 3、移动redis目录&a…

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

RuoYi-Vue若依框架-代码生成器的使用

代码生成器 导入表 在系统工具内找到代码生成,点击导入,会显示数据库内未被导入的数据库表单,选择自己需要生成代码的表,友情提醒,第一次使用最好先导入一张表进行试水~ 预览 操作成功后可以点击预览查看效果&…

【CTFshow 电子取证】套的签到题

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

44 el-dialog 的 appendToBody 属性, 导致 vue 响应式失效

前言 我们经常会碰到 一些 模型和视图 不同步的问题 通常意义上 主要的问题为 列表的某响应式数据更新着更新着 后面就变成非响应式对象了, 然后 就造成了 数据一直在更新, 但是 视图的渲染后面就未渲染了, 这是一个由于 模型上的问题 导致的数据的不在响应式更新 又或者 是…

Luminar Neo:重塑图像编辑新纪元,Mac与Win双平台畅享创意之旅

在数字时代的浪潮中,图像编辑软件已成为摄影师和设计师们不可或缺的创作工具。Luminar Neo,作为一款专为Mac与Windows双平台打造的图像编辑软件,正以其卓越的性能和创新的编辑功能,引领着图像编辑的新潮流。 Luminar Neo不仅继承…

Docker新手攻略:编辑Dockerfile、构建镜像、启动容器全攻略

万能dockerfile编写模板文件 FROM openjdk:11.0 as builder WORKDIR application ARG JAR_FILEtarget/*.jar COPY ${JAR_FILE} application.jar RUN java -Djarmodelayertools -jar application.jar extractFROM openjdk:11.0 WORKDIR application COPY --frombuilder applica…

小狐狸JSON-RPC:钱包连接,断开连接,监听地址改变

detect-metamask 创建连接,并监听钱包切换 一、连接钱包,切换地址(监听地址切换),断开连接 使用npm安装 metamask/detect-provider在您的项目目录中: npm i metamask/detect-providerimport detectEthereu…

算法---动态规划练习-6(地下城游戏)

地下城游戏 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址:点这里 2. 讲解算法原理 首先,定义一个二维数组 dp,其中 dp[i][j] 表示从位置 (i, j) 开始到达终点时的最低健康点数。 初始化数组 dp 的边界条件: 对…

后端常问面经之Spring和Mybatis框架

Spring的IOC介绍一下: 所谓控制就是对象的创建、初始化、销毁。 创建对象:原来是 new 一个,现在是由 Spring 容器创建。 初始化对象:原来是对象自己通过构造器或者 setter 方法给依赖的对象赋值,现在是由 Spring 容器…

课堂练习:环境体验——3、Linux 权限管理

任务描述 本关任务:根据所学知识,完成文件权限的修改。 相关知识 为了完成本关任务,你需要掌握: 如何创建和删除用户以及用户的权限管理;如何设置文件的访问权限。 Linux的权限管理主要分为两类:用户和…

人脸情绪识别(1)附代码

1.目标 实现人脸情绪实时检测,通过摄像头拍摄人脸并显示出相应情感类别。 代码地址: 2.Emotion-Detection-RealTime 2.1 目录结构 2.2 代码结构 模块导入 参数设置 数据处理 模型构建 训练脚本 展示脚本 2.3 具体代码 import numpy as np import arg…

JAVA的NIO和BIO底层原理分析

文章目录 一、操作系统底层IO原理1. 简介2. 操作系统进行IO的流程 二、BIO底层原理1. 什么是Socket2. JDK原生编程的BIO 三、Java原生编程的NIO1. 简介2. NIO和BIO的主要区别3. Reactor模式4. NIO的三大核心组件5. NIO核心源码分析 一、操作系统底层IO原理 1. 简介 IO&#x…

马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4!

本文原文来自DataLearnerAI官方网站:马斯克旗下xAI发布Grok-1.5,相比较开源的Grok-1,各项性能大幅提升,接近GPT-4! | 数据学习者官方网站(Datalearner) 继Grok-1开源之后,xAI宣布了Grok-1.5的内测消息&…

qt学习第三天,qt设计师的第一个简单案例

3月25,应用qt设计师,手动设计界面形状 ​ 如何启动qt设计师,找到对应的安装地点,对应你自己安装的pyside6或其他qt的安装路径来找 ​ 应用qt设计师的优点是不用敲代码然后慢慢调节框框大小,位置等、可以直接修改…

武汉星起航:亚马逊物流创新,塑造未来零售的新篇章

亚马逊,作为全球电商的领军者,不仅在商品销售方面取得了举世瞩目的成就,更在物流领域进行了一系列颠覆性的创新。武汉星起航了解到这些创新不仅提升了消费者的购物体验,也为整个物流行业树立了新的标杆。 亚马逊在物流技术方面的…

201基于matlab的成绩管理系统

基于matlab的成绩管理系统。自带的GUI界面设计了一个成绩管理界面,可进行成绩的载入、查询、绘图、求平均分。可更改自己的数据进行录入。包含作业文档。程序已调通,可直接运行。 201 matlab 成绩管理系统 GUI - 小红书 (xiaohongshu.com)