Ansible介绍与入门学习

news/2025/1/30 20:15:17/

一、Ansible的介绍(Ansible is a radically simple IT automation engine     极简的IT自动化工具)

        1.Ansible是一款 运维的自动化工具,常用于软件部署自动化、配置自动化、管理自动化等,其内置大量的功能模块来满足日常的工作需要。

二、Ansible被选择原因

        1.Ansible完全基于python开发,而python已经被逐渐普及,因此方便大众对其的二次开发

        2.有丰富的内置模块

        3.去中心化的特点可以使其使用简单的复制操作即可完成配置中心的迁移

        4.Agentless(无客户端),客户端无需任何配置,管理端配置好后即可使用

三、Ansible的工作过程

        1.使用者认证通过后在管理节点通过Ansible工具调用各应用模块将指令推送到管理端执行,并在执行完成之后自动删除产生的临时文件。

        2.Ansible使用的不同角色:使用者、Ansible工具集、作用对象

        使用者

        CMDB(配置管理数据库):通过CMDB直接下发指令调用工作集完成任务

        PUBLIC/PRIVATE:基于公有云/私有云的方式调用API语言接口

        使用Ad-Hoc临时命令集来完成任务

        预先编好Ansible playbooks,通过其中的任务集按序完成任务

        Ansible工具集

        ansible命令只是执行任务的入口,可以调用inventory(命令执行的目标对象配置文件)、API(应用编程接口)、Modules(丰富的内置模块)、Plugins(内置和可自定义的插件)

        作用对象

        各种操作系统的主机和各类公有云/私有云以及各种网络设备

        

        Ansioble工作过程概述:Ansible会遵循预先编排的规则将playbooks逐条拆解为play,再将play组织成可识别的任务(Task),然后调用任务设计的所有模块和插件,最后根据inventory中定义的主机通过ssh将任务集以临时文件或命令的形式传输到远程客户端执行并返回执行结果,若使临时文件则执行完成后会自动删除。

四、Ansible通信发展史

        1.发展背景:Ansible通信方式是基于SSH的安全连接且SSH是每台linux主机系统必有的软件,则Ansible无需在远程主机端安装任何额外的进程。

           Ansible执行命令时通过底层的传输连接模块将一个或多个文件通过定义的play或者command命令传输到远程服务器的临时目录上然后对其进行执行,其主要的特点是:

        无客户端,只需要安装ssh和python就可以

        基于openssh通信,底层基于ssh传输协议

        支持密码和ssh的安全认证,可以通过系统账户密码认证或公钥认证,一般使用公私钥认证方式,因为密码认证需要明文的配置文件

        支持windows,但仅支持客户端,服务端必须是linux

        2.发展历程

        paramiko通信模块,python的第三方库,安全性低于openssh

        openssh,支持持续管理

        加速模式,抛弃SSH的多次连接的方式,通过SSH的初始化后,带着AES key的初始化连接信息通过特定的端口执行命令传输文件,另外开启加速模式必须先设置sudo文件的nopasswd的配置,即禁用sudo后的password的交互认证过程,此种方式的前提是要在控制机安装ZeroMQ服务并且该服务不支持sudo操作

        Faster OpenSSH,通过openssh发送执行命令,将所有的操作附带在ssh的连接过程中同步实现

五、Ansible的应用场景

        1.应用部署:Ansible内置网络、应用、系统等完善的功能模块,可以协助运维人员及快速的完成应用的安装卸载升级配置等部署类工作。

        2.配置管理:对软件产品的开发过程和生命周期进行控制和规范的一系列措施。

        3.任务流编排:保证Tasks任务流按照既定的规则和顺序完成实现指定的目标和计划

六、Ansible的安装部署

        1.安装python-pip和python-devel程序包

        yum install python-pip python-devel -y

        2.安装Ansible服务

        yum install gcc  glibc-devel  zlib-devel  rpm-build  openssl-devel -y(服务的开发环境,几乎所有的软件包的编译环境基于gcc)

        yum install ansible -upgrade

   上述的安装方式为二进制安装方式

七、Python的多环境扩展管理

        1.多环境扩展管理的需求在于第三方库依赖的python的版本和系统的python的版本不一致的情况且因为底层需要调用当前的版本即不能随便的更换当前系统封的版本时需要python的多版本共存的情况。

        2.python多环境管理工具有:pyenv和Vituralenv,前者对于python的版本进行管理实现不同版本的切换和使用,后者时创建虚拟环境实现与系统环境以及其他python环境的隔离避免相互干扰。

        3.pyenv的部署和使用(不支持windows系统)

                设置独立的某个文件同时创建python的虚拟环境工作在用户层,不需要任何sudo操作

                

               pyenv  install  -list        查看可安装的版本列表

               pyenv  install  3.4.1        安装指定的python的版本

               pyenv   local  3.4.1        切换当前的目录的python版本为3.4.1

               pyenv    global  3.4.1        切换全局目录python版本为3.4.1

               pyenv     rehash                刷新shims

        2.Virtualenv的部署和使用

                pip   install   virtualenv

                该种管理的方式是通过在工作目录中虚拟完整的python环境实现python多环境并存


http://www.ppmy.cn/news/1567966.html

相关文章

深入学习华为IPD流程之华为-PDT经理角色认知培训教材

本文介绍了PDT经理的角色认知,包括其在IPD体系中的位置、基本角色定位、关键管理活动、能力模型和评估方法以及培养路径。文章指出PDT经理是重量级产品开发团队的管理者,负责产品的商业成功和跨功能部门合作,通过绩效管理加强团队凝聚力,对商业结果负责。 重点内容: 1. …

OSPF邻接关系无法建立之MTU问题

OSPF中路由器间从邻居到建立完全邻接需满足以下条件: 1、邻居之间网络通 2、建立邻接的接口不能为OSPF被动接口 3、两台路由器的HELLO时间间隔和DEAD时间间隔必须一致 4、两台路由器的router-id 必须不同 5、如果开了OSPF认证,认证方式和KEY必须一致 6、两台路由器建立…

Vue.js 传递路由参数和查询参数

Vue.js 传递路由参数和查询参数 在 Vue.js 开发中,Vue Router 提供了灵活的方式来处理路由参数和查询参数,使得组件能够根据不同的路径或查询条件渲染相应的内容。 路由参数 路由参数(也称为路径参数)是 URL 路径的一部分&…

【Unity】 HTFramework框架(五十九)快速开发编辑器工具(Assembly Viewer + ILSpy)

更新日期:2025年1月23日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 开发编辑器工具MouseRayTarget焦点视角Collider线框Assembly Viewer搜索程序集ILSpy反编译程序集搜索GizmosElement类找到Gizmos菜单找到Gizmos窗口分析A…

react native在windows环境搭建并使用脚手架新建工程

截止到2024-1-11,使用的主要软件的版本如下: 软件实体版本react-native0.77.0react18.3.1react-native-community/cli15.0.1Android Studio2022.3.1 Patch3Android SDKAndroid SDK Platform 34 35Android SDKAndroid SDK Tools 34 35Android SDKIntel x…

自定义数据集,使用 PyTorch 框架实现逻辑回归并保存模型,然后保存模型后再加载模型进行预测

在本文中,我们将展示如何使用 NumPy 创建自定义数据集,利用 PyTorch 实现一个简单的逻辑回归模型,并在训练完成后保存该模型,最后加载模型并用它进行预测。 1. 创建自定义数据集 首先,我们使用 NumPy 创建一个简单的…

【C++动态规划 状态压缩】2597. 美丽子集的数目|2033

本文涉及知识点 C动态规划 LeetCode2597. 美丽子集的数目 给你一个由正整数组成的数组 nums 和一个 正 整数 k 。 如果 nums 的子集中,任意两个整数的绝对差均不等于 k ,则认为该子数组是一个 美丽 子集。 返回数组 nums 中 非空 且 美丽 的子集数目。…

http跳转https

1、第一种:不好使 在nginx的配置中,在https的server站点添加如下头部: add_header Strict-Transport-Security “max-age63072000; includeSubdomains; preload”; 这样当第一次以https方式访问我的网站,nginx则会告知客户端的浏览…