Ansible简介(详细)特性+优点+设计理念+应用领域+系统架构+工作原理+任务执行流程

前言

传统的运维与自动化运维

传统运维带来的坑
运维工作是比较繁琐的,尤其是新系统上线的场景,一切都是从零开始。包括虚机的创建,主机名的修改,系统的初始化等等,在机器不多的情况下人工还能应付的过来,如果有上百台机器呢?最初也是用堆人的方法来做的。但这样的方式出错率高,而且有时还会有遗漏。只能通过相互检查的方式来验证,但这样就会花费更多的时间,相应的时间/人工成本也会上升。
人工的方式因个人部署习惯千差万别,导致一些项目难以维护。

运维自动化
没有专门的工具为我们做这些事情,使用脚本语言(Python)
逐渐有了运维自动化的一些工具,比如Fabric、Puppet、Chef SaltStack、Ansible等自动化运维平台。


目录

前言

传统的运维与自动化运维

Ansible介绍

1、Ansible简介

 1、Ansible特性

2、Ansible优点

3、Ansible设计理念

4、 Ansible 应用领域 

5、Ansible系统架构

6、Ansible工作原理

7、Ansible任务执行流程


Ansible介绍

1、Ansible简介

        ansible是新出现的自动化运维工具,基于Python开发,集合了众多老牌运维工具(puppet、cfengine chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
        ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块, ansible只是提供一种框架。主要包括:

  1. 连接插件connection plugins:负责和被管控端实现通信;
  2. host  inventory:指定操作的主机,是一个配置文件里面定义管控的主机; 
  3. 各种模块核心模块、command模块、自定义模块;
  4. 借助于插件完成记录日志邮件等功能;
  5. playbook:剧本执行多个任务时,可以让被管控端一次性运行多个任务。

 1、Ansible特性

  1. no agents:不需要在被管控主机上安装任何客户端;
  2.  no server:无服务器端,使用时直接运行命令即可;
  3.  modules in anylanguages:基于模块工作,可使用任意语言开发模块;
  4. yaml,notcode:使用yaml语言定制剧本playbook;
  5.  ssh by default:基于SSH工作;
  6.  strong multi-tier solution:可实现多级指挥。

2、Ansible优点

  1. 轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
  2. 批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
  3. 使用python编写,维护更简单,ruby语法过于复杂;
  4. 支持sudo。

3、Ansible设计理念

  1. 安装部署过程特别简单, 学习曲线很平坦。
  2. 管理主机便捷, 支持多台主机并行管理。
  3. 避免在被管理主机上安装客户代理, 打开额外端口,采用无代理方式,只是利用现有的 SSH后台进程。
  4. 用于描述基础架构的语言无论对机器还是对人都大是友好的。
  5. 关注安全,很容易对执行的内容进行审计、评估、重写。
  6. 能够立即管理远程被管理主机, 不需要预先安装任何软件。
  7. 不仅仅支持Python,可运行使用任何动态语言开发模块。
  8. 非 root 账户也可以使用。
  9. 成为最简单、易用的 IT自动化系统

4、 Ansible 应用领域 

Ansible的编排引擎可以出色地完成配置管理、流程控制 、资源部署等多方面工作。

1.配置管理

2.服务即时开通

 这个领域的工具主要是在数据中心 、虚拟化环境、云计算中快速开通新的主机。

3.应用部署

这个领域的工具重点关注如何尽可能地零停机部署应用。

4.流程编排

流程编排主要是进行部署时候如何保证基础架构中的各种组件协调一致。

5、Ansible系统架构

1.核心引擎即Ansible

2.核心模块:(Core Modules):这些都是Ansible自带的模块。

3.自定义模块(Custom  Modules):如果核心模块不足以完成某种功能,可以添加自定义模块。

4.插件(Plugins):完成模块功能的补充,借助插件完成记录日志,邮件的等功能。

5.剧本(Playbooks):定义Ansible任务的配置文件,可以将多个任务定义在一个剧本中,有Ansible自动执行,剧本支持多个任务,可以由控制主机运行多个位置,同时对多台远程主机进行管理。

6.Playbook是Ansible的配置、部署和编排语言,可以描述一个你想要的运程系统执行策略。或一组步骤的一般过程。

7.连接插件(Connectior plugins):Ansible基于连接插件连接到各个主机上,负责和被管节点实现通信。

8.主机清单(host inventory):定义Ansible管理的主机策略,默认是在Ansible的hosts配置文件中定义被管节点。

6、Ansible工作原理

1.管理端支持local、ssh、zeromq三种方式连接被管理端,默认使用基于ssh的连接---这部分对应基本架构图中的连接模块;
2.可以按应用类型等方式进行Host Inventory(主机群)分类,管理节点通过各类模块实现相应的操作 ---单个模块,单条命令的批量执行,我们可以称之为ad-hoc;
3 .管理节点可以通过playbooks实现多个task的集合实现一类功能,如web服务的安装部署、数据库服务器的批量备份等。playbooks我们可以简单的理解为,系统通过组合多条ad-hoc操作的配置文件。 
Ansible默认是通过SSH通道来管理的,也就是它所说自的免客户端方式管理,它底层是通过paramiko(paramiko模块)来实现的。

7、Ansible任务执行流程

总结


以上就是今天要讲的内容,本文介绍了

  • 自动化是减少人为错误并快速确保IT基础架构处于一致且正确的状态的关键工具。
  • Ansible是一种开源自动化平台,能够适应许多不同的工作流和环境。
  • Ansible可用于管理许多不同类型的系统,包括运行Linux、MicrosoftWindows或UNIX的服务器以及网络设备。
  • AnsiblePlaybook是人类可读的文本文件,用于描述IT基础架构的所需状态。
  • Ansible围绕一种无代理架构构建,在控制节点上安装Ansible,且客户端不需要任何特殊的代理软件。
  • Ansible使用SSH等标准协议连接受管主机,并在受管主机上运行代码或命令来确保它们处于 Ansible指定的状态。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Ansible是一种自动化工具,用于配置和管理大规模的计算机系统。它使用简单的语法和模块化的结构,可以实现快速、可靠的自动化部署和配置。 要使用Ansible进行批量部署Tomcat和JDK,可以按照以下步骤进行操作: 1. 安装Ansible:确保你的机器上已经安装了Ansible。你可以通过运行`sudo apt install ansible`(对于Ubuntu)或`sudo yum install ansible`(对于CentOS)来安装Ansible。 2. 创建Ansible主机清单:创建一个文本文件,用于定义你要管理的服务器列表。在该文件中,你需要指定每个服务器的IP地址或主机名。例如,你可以创建一个名为`hosts.txt`的文件,并在其中添加以下内容: ``` [web_servers] server1 ansible_host=192.168.1.101 server2 ansible_host=192.168.1.102 ``` 3. 创建Ansible Playbook:Playbook是Ansible中定义任务和配置的文件。你可以创建一个名为`deploy.yml`的Playbook文件,并定义Tomcat和JDK的安装和配置任务。以下是一个示例Playbook文件的内容: ```yaml - hosts: web_servers become: yes tasks: - name: Install JDK apt: name: openjdk-8-jdk state: present - name: Install Tomcat apt: name: tomcat9 state: present - name: Configure Tomcat template: src: tomcat.conf.j2 dest: /etc/tomcat9/server.xml notify: - restart_tomcat handlers: - name: restart_tomcat service: name: tomcat9 state: restarted ``` 在上述示例中,我们使用Ansible的apt模块来安装JDK和Tomcat。我们还使用template模块将自定义的`tomcat.conf.j2`配置文件复制到目标服务器上的Tomcat配置目录,并设置一个处理程序用于重启Tomcat服务。 4. 创建配置文件:创建一个名为`tomcat.conf.j2`的模板文件,其中包含你的Tomcat配置。你可以根据自己的需求来修改该文件。 5. 执行Ansible Playbook:在命令行中运行以下命令来执行Ansible Playbook: ``` ansible-playbook -i hosts.txt deploy.yml ``` 这将使用`hosts.txt`文件中定义的服务器列表,并执行`deploy.yml`文件中定义的任务和配置。 请注意,上述步骤是一个简单的示例,你可以按照自己的需求进行修改和扩展。此外,确保你对要部署的系统有足够的了解,并在执行任何配置更改之前进行适当的测试和备份。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值