使用Asible自动化Linux管理任务

自动化与 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.mzph.cn/news/780890.shtml

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

相关文章

Flask学习(五):session相关流程

流程图如下图所示: 调用相关类如下图所示: 相关代码如下: from flask import Flask, sessionapp Flask(__name__)1. 加密会话数据:在 Flask 中,会话数据存储在客户端的 cookie 中。设置 app.secret_key 可以加密会话…

OLED模块

OLED模块 综述:本篇文章简要讲述了oled的定义,两种oled的引脚和接线情况、iic通讯协议、spi通讯协议、OLED代码引用和注意事项。 1.定义 OLED(Organic Light-Emitting Diode)模块是一种使用有机发光二极管作为显示元素的显示模…

【强化学习概念01】什么是 Q-Learning:了解 Q-Learning 的最佳指南

​ 一、说明 强化训练如同训狗。当狗或孩子行为不端时,你会怎么做?你责骂他们以确保他们不会重复或学习不良行为。另一方面,如果他们做了好事,你就会奖励他们,灌输良好的行为。不管你相信与否,这种正强化或负强化系统也可用于训练机器。它被称为强化学习,它可以帮助我…

DFS:二叉树的深搜与回溯

一、计算布尔二叉树的值 . - 力扣(LeetCode) class Solution { public:bool evaluateTree(TreeNode* root) {if(root->leftnullptr) return root->val0?false:true; bool left evaluateTree(root->left);bool rightevaluateTree(root->rig…

1.1 单片机的概念

一,单片机的概念 单片机(Single-Chip Microcomputer),也被称为单片微控制器,是一种集成电路芯片。它采用超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、…

Ubuntu20.04彻底删除mysql,并重装mysql

彻底卸载 sudo apt purge mysql-* sudo rm -rf /etc/mysql/ /var/lib/mysql sudo apt autoremove sudo apt autocleanapt-get purge 与 apt-get remove是不同的,简单来说: purge可以将包以及软件的配置文件全部删除 remove仅可以删除包,但不…

springcloud基本使用(搭建eureka服务端)

创建springbootmaven项目 next next finish创建成功 删除项目下所有文件目录&#xff0c;只保留pox.xml文件 父项目中的依赖&#xff1a; springboot依赖&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s…

类模板与友元

掌握类模板配合友元函数的类内实现和类外实现。 全局函数类内实现&#xff1a;直接在类内声明友元函数即可&#xff08;推荐使用这种&#xff09; #include <iostream> #include <Windows.h> #include <string>using namespace std;template<typename T…

大模型提示工程之Prompt框架和示例

今天和大家分享一下&#xff1a;大模型提示工程之Prompt框架和示例&#xff1a; TAG框架 任务&#xff08;Task&#xff09;: 开发一个新的手机应用&#xff0c;旨在帮助用户更好地管理他们的日常健康。 行动&#xff08;Action&#xff09;: 进行市场调研&#xff0c;设计用户…

[Godot] 3D拾取

CollisionObject3D文档 Camera3D文档 CollisionObject3D有个信号_input_event&#xff0c;可以用于处理3D拾取。 Camera3D也有project_position用于将屏幕空间坐标投影到3D空间。 extends Node3D#是否处于选中状态 var selected : bool false #摄像机的前向量 var front : V…

Swift:“逻辑运算子“与“比较运算符“

1. 逻辑非 ! 逻辑非运算符 ! 是用于对布尔值取反的。当操作数为 true 时&#xff0c;! 将返回 false&#xff0c;而当操作数为 false 时&#xff0c;! 将返回 true。 let isTrue true let isFalse !isTrue // isFalse 现在是 false 2. 逻辑与 && 逻辑与运算符 &a…

爬取b站音频和视频数据,未合成一个视频

一、首先找到含有音频和视频的url地址 打开一个视频&#xff0c;刷新后&#xff0c;找到这个包&#xff0c;里面有我们所需要的数据 访问这个数据包后&#xff0c;获取字符串数据&#xff0c;用正则提取&#xff0c;再转为json字符串方便提取。 二、获得标题和音频数据后&…

linux基础命令篇:Linux基础命令讲解——文件浏览(cat、less、head、tail和grep)

Linux基础命令讲解——文件浏览&#xff08;cat、less、head、tail和grep&#xff09; 本文详细介绍Linux中的cat、less、head、tail和grep命令&#xff0c;这些命令在日常工作中非常实用&#xff0c;以下是关于这些命令的详细介绍&#xff1a; 1. cat命令&#xff1a;用于查看…

JUC:synchronized优化——锁的升级过程(偏向锁->轻量级锁->重量级锁)以及内部实现原理

文章目录 锁的类型轻量级锁重量级锁自旋优化偏向锁偏向锁的细节偏向锁的撤销批量重偏向批量撤销锁消除 锁的类型 重量级锁、轻量级锁、偏向锁。 加锁过程&#xff1a;偏向->轻量级->重量级 轻量级锁 轻量级锁的使用场景&#xff1a;如果一个对象虽然有多线程要加锁&am…

rust - 使用serde_yaml读取配置文件

本文提供了一种读取yaml配置文件&#xff0c;转换为结构体的方法。 安装依赖 cargo add serde cargo add serde_json cargo add serde_yaml cargo add schemars配置文件示例 test:debug: true设置需要转换的结构体 需要定义Default trait&#xff0c;用于配置文件不存在的情…

登录者个人信息查询

目录 &#x1f95e;1.vo层描述 &#x1f37f;2..vo层创建 &#x1f32d;3.编写controller层 &#x1f953;4.service层 &#x1f9c2;5.测试 1.vo层描述 Spring Boot项目中的实体类通常用于映射数据库表&#xff0c;包含了业务对象的所有属性。然而&#xff0c;前端或其…

Jenkins详细安装配置部署

目录 简介一、安装jdk二、安装jenkins这里如果熟悉 Jenkins &#xff0c;可以【选择插件来安装】&#xff0c;如果不熟悉&#xff0c;还是按照推荐来吧。注意&#xff1a; 三、插件安装如果上面插件安装&#xff0c;选择的不是【安装推荐的插件】&#xff0c;而是【选择插件来安…

ZYNQ学习之PetaLinux与Vitis的安装

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Petalinux安装 1.1、Petalinux资源下载 百度云安装包&#xff1a; Petalinux 安装…

FFMPEG C++封装(一)(C++ FFMPEG)

1 概述 FFMPEG是一个C语言开源视音频编解码库。本文将FFMPG4.1.3进行C封装&#xff0c;形成C FFMPG库。 2 架构 架构图如下所示&#xff1a; 架构说明: Init 初始化FFMPEG库。IStream 输入流&#xff0c;FFMPEG的输入音视频文件。Packet 音视频数据包Decoder 音视频编码器F…

C语言运算符和表达式——强制类型转换

目录 自动类型转换 强制类型转换运算符——类型强转&#xff08;Casting&#xff09; 问题的提出 Example: int total, number; float aver; …… 整数除法&#xff1a; aver total / number; total:15 →15/2 …