Ansible-基本概述

Ansible-基本概述,第1张

为什么要自动化运维

我们以 10 台机器部署 Nginx 为例。部署步骤如下:

1、通过 ssh 登录一台机器;

2、yum install -y nginx 或者 获取安装包自行编译安装;

3、配置 Nginx

4、启动 Nginx ,如有必要加入开机自启动;

5、退出登录

上面步骤重复 10 次,即可完成我们的部署要求。

痛点:

1、重复 *** 作频繁,增加了人工成本和后续维护成本;

2、机器太多时,容易落下某些机器且未 *** 作,进而产生后续影响;

3、人工频繁 *** 作时可能有 *** 作步骤不完整的情况,造成该机器和其他机器状态不一致。

我们还是以 10 台机器部署 Nginx 为例。部署步骤如下:

1、在控制机或者称为管理机的机器上写好相关脚本。「当然该脚本我们是测试通过的,脚本中包括安装、配置、启动等等」

2、将写好的脚本从控制机推送到受控机;

3、在受控机执行相关脚本,根据脚本部署我们需要的 Nginx。

好处

1、减少了重复 *** 作,提高了工作效率;

2、减小了出错几率,提高了准确率;

3、所有机器状态一致,降低了后续维护成本。

软件安装部署

配置同步

代码变更

命令执行

任务执行

Ansible 是基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能的自动化管理工具。

Ansible 是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是 Ansible 所运行的模块,Ansible 只是提供一种框架。进而能减少我们的重复 *** 作,提高工作效率。

Ansible 不需要在远程主机上安装 client/agents,因为它们是基于 SSH 来和远程主机通讯的。

Ansible 目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。

1、批量执行远程命令:可以对 N 台主机同时进行命令的执行;

2、批量配置软件服务:可以用自动化的方式管理配置和服务;

3、实现软件开发功能:例如 jumpserver 底层使用 Ansible 来实现自动化管理;

4、编排高级的 IT 任务:Ansible 的 Playbooks 是一门编程语言,可以用来描绘一套 IT 架构。

1、部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何 *** 作;

2、安全可靠,默认使用 SSH 协议对被控端进行管理;

3、有大量的常规运维 *** 作模块,可实现日常绝大部分 *** 作;

4、配置简单、功能强大、扩展性强;

5、支持 API 及自定义模块,可通过 Python 轻松扩展;

6、通过 Playbooks 来定制强大的配置、状态管理;

7、轻量级,无需在客户端安装 Agent,更新时只需在 *** 作机上进行一次更新即可。

模块说明如下:

Ansible:Ansible 核心程序。

Host Inventory:记录由 Ansible 管理的主机信息清单,包括端口、密码、IP 等。

Playbooks:“剧本” YAML 格式文件,多个任务定义在一个文件中,定义主机需要调用哪些模块来完成的功能。

Core Modules:核心模块,主要 *** 作是通过调用核心模块来完成管理任务。

Custom Modules:自定义模块,完成核心模块无法完成的功能,支持多种语言。

Connection Plugins:连接插件,Ansible 和 Host 通信使用

Ansible 控制主机对被管节点的 *** 作方式可分为两类,即 ad-hoc 和 playbook:

ad-hoc 模式(点对点模式)

使用单个模块,支持批量执行单条命令。ad-hoc 命令是一种可以快速输入的命令,而且不需要保存起来的命令。 就相当于 bash 中的一句 shell。

playbook 模式(剧本模式)

是 Ansible 主要管理方式,也是 Ansible 功能强大的关键所在。 playbook 通过多个 tasks 集合完成一类功能 ,如 Web 服务的安装部署、数据库服务器的批量备份等。可以简单地把 playbook 理解为通过组合多条 ad-hoc *** 作的配置文件。

简单理解就是:Ansible 在运行时,首先读取 ansible.cfg 中的配置,根据规则获取 Inventory 中的管理主机列表,并行的在这些主机中执行配置的任务,最后等待执行返回的结果。

1、加载自己的配置文件,默认 /etc/ansible/ansible.cfg;

2、查找对应的主机配置文件,找到要执行的主机或者组;

3、加载自己对应的模块文件,如 command;

4、通过 Ansible 将模块或命令生成对应的临时py文件(python脚本),并将该文件传输至远程服务器;

5、对应执行用户的家目录的 .ansible/tmp/XXX/XXX.PY文件;

6、给文件 +x 执行权限;

7、执行并返回结果;

8、删除临时py文件,sleep 0退出;

运维一般是指对大型组织已经建立好的网络软硬件的维护,其中传统的运维是指信息技术运维(IT运维)。随着信息化进程的推进,运维管理将覆盖对整个组织运行,进行支持的管理信息系统涵盖的所有内容,除了传统的IT运维,还拓展了业务运维和日常管理运维。其参与的对象也从IT部门和人员,拓展到组织的管理层和各部门,及其相关的业务骨干。

1. IT运维

IT运维是IT管理的核心和重点部分,也是内容最多、最繁杂的部分,该过程主要用于IT部门内部日常运营管理,其涉及的对象分成两大部分,即IT业务系统和运维人员;业务运维是业务需求和用户体验的核心和重点部分,更是需要对内容繁杂、持续变化、支持不同的业务需求,加以描述、加载和维护的过程,其涉及的对象包括2类人员,一类是提供业务支持的技术人员,另一类是整个组织的管理层和业务骨干,随着业务运维环境和工具的能力提升,功能完善、体验优化,技术人员将逐步退出这个领域;日常管理运维则是对IT运维和业务运维需求、过程、结果的管控,以及对整个管理信息系统运行状态的管控,从而实现针对应用变化的记录和跟踪、针对地域不同的变更和跟踪、预测环境和应用的风险和防范管理等等,其涉及的对象主要是运维管理部门的管理人员和参与人员。

2. 业务运维

包含对企业自身核心业务系统运行情况的监控与管理,对于业务的管理,主要关注该业务系统的CSF(关键成功因素Critical Success Factors)和KPI(关键绩效指标Key Performance Indicators)。

3. 日常管理运维

该部分主要用于规范和明确运维人员的岗位职责和工作安排、提供绩效考核量化依据、提供解决经验与知识的积累与共享手段IT运行维护管理的每一个子系统中都包含着十分丰富的内容,实现完善的IT运维管理是企业提高经营水平和服务水平的关键。运行/维护阶段与服务/支持阶段的分界线为前者是面向 IT部门内部的管理,而后者是面向业务部门、企业中的其它人员或直接面向客户。

参考资料:http://baike.baidu.com/view/2637995.htm


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9932645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存