当前位置: 首页 > article >正文

Ansible介绍与入门学习

一、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.kler.cn/a/518887.html

相关文章:

  • 二十三种设计模式-享元模式
  • 网易Android开发面试题200道及参考答案 (下)
  • 奖励模型:解析大语言模型的关键工具
  • 关于 SR-IOV 架构论文的总结文章
  • 上位机知识篇---return环境变量.bashrc
  • 关注搜索引擎蜘蛛压力
  • 「 机器人 」扑翼飞行器控制的当前挑战与后续潜在研究方向
  • C++ 复习总结记录九
  • 电脑无法开机,重装系统后没有驱动且驱动安装失败
  • docker 安装 nginx 详解
  • 【28】Word:石油化工设备技术❗
  • 【机器学习】穷理至极,观微知著:微积分的哲思之旅与算法之道
  • STM32 流水灯与跑马灯的实现
  • Apache Airflow 全面解析
  • 飞牛 fnOS 安装8852be网卡驱动并成功连接
  • CVE-2024-23897-Jenkins任意文件读取漏洞复现
  • 动动小手之消失的水印
  • Oracle 普通用户连接hang住处理方法
  • 【Linux】20.基础IO(2)
  • React Router v6配置路由守卫
  • Linux的udev详解、安装和使用(dev下的设备每次开机的名称不固定怎么办?)
  • 如何将手机的画面和音频全部传输到电脑显示和使用电脑外放输出
  • 九、CSS工程化方案
  • drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程
  • Orgill EDI需求分析
  • 需求分析的