你一定想了解的Ansible和Docker介绍及工作原理

目录

1.什么是Ansible?

1.1 Ansible的定义

1.2 Ansible的工作原理

2.什么是Docker?

2.1 Docker的定义

2.2Docker与传统虚拟机相比的优势


 

1.什么是Ansible?

1.1 Ansible的定义

ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible架构相对比较简单,仅需通过SSH连接客户机执行任务即可

 

ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括: (1)、连接插件connection plugins:负责和被监控端实现通信; (2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机; (3)、各种模块核心模块、command模块、自定义模块; (4)、借助于插件完成记录日志邮件等功能; (5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

 

1.2 Ansible的工作原理

470e2e8bb8294a0fa4ac2e4f4bb1343e.png

  • Inventory 被管理节点的列表 , 主机清单。它将主机分组存储记录在这个清单文件中。Ansible运行playbook时的受管主机只能是这个清单文件里面的主机。

  • PlayBook 剧本,类似于 Shell 脚本 , 通过一系列命令执行自动化操作。里面定义了要在哪些主机上运行脚本,以及要在各主机上执行的任务tasks。

  • Module 模块,通过运行模块真正实现批量部署。

 

在 Ansible 管理体系中 , 存在 管理节点 和 被管理节点 两种角色

被管理节点通常被称为资产

 

在管理节点上 :

  1. Ansible首先读取ansible.cfg中的配置, 根据规则获取Inventory中的管理主机列表

  2. 将 AdHoc 或 PlayBook 转换为 python脚本 , 并通过 SSH 传输到被管理节点上

  3. 并行的在被管理节点上依次执行 Python 脚本

  4. 最后等待执行返回的结果。

 

2.什么是Docker?

2.1 Docker的定义

Docker是一个开源的容器化平台,用于开发、交付和运行应用程序。它能够在WindowsmacOSLinux计算机上运行,并将某一应用程序及其依赖项打包至一个容器中,这些容器可以在任何支持Docker的环境中运行。容器彼此隔离,但可以通过特定的通道相互传递信息。

 

Docker提供了一个轻量级的虚拟化解决方案。由于运行在同一计算机上的所有容器共享同一个操作系统内核,避免了启动与维护虚拟机的开销。因此相比于传统的虚拟机,Docker容器更加轻便、快速、容易部署。使用Docker,开发者可以避免在两台计算机上运行效果不一致的问题,容器提供了一致的行为,进而使得应用程序在不同环境的计算机上有相同的运行效果。

 

2.2Docker与传统虚拟机相比的优势

Docker相比虚拟机的主要优势包括轻量级、‌快速启动、‌环境一致性、‌持续交付和部署、‌易于迁移、‌灵活的资源分配以及更好的隔离性。‌

  •  

    轻量级:‌Docker基于操作系统层面的虚拟化技术,‌每个容器共享主机的操作系统内核,‌只包含应用程序及其运行所需的依赖项,‌因此更加轻量级。‌这种轻量级的虚拟化方式使得容器的启动和停止速度非常快,‌相比传统虚拟机技术,‌相同配置的主机上可以运行更多数量的应用。‌

  •  

    快速启动:‌由于Docker直接运行于宿主内核,‌无需启动完整的操作系统,‌因此可以实现秒级甚至毫秒级的启动时间,‌大大节约了开发、‌测试、‌部署的时间。‌

  •  

    环境一致性:‌Docker的镜像提供了除内核外完整的运行时环境,‌确保了应用运行环境的一致性,‌避免了因环境不一致导致的开发、‌测试和生产环境中的问题。‌

  •  

    持续交付和部署:‌使用Docker可以通过定制应用镜像实现持续集成和持续部署,‌开发人员和运维人员可以更高效地协作,‌加快应用开发和上线速度。‌

  •  

    易于迁移:‌Docker确保了执行环境的一致性,‌使得应用的迁移更加容易。‌可以在不同的操作系统和云平台上运行,‌实现了应用程序的跨平台部署和迁移。‌

  •  

    灵活的资源分配:‌Docker可以动态地分配和调整系统资源,‌如CPU、‌内存和磁盘空间等,‌使得容器在不同环境中运行时具有更好的适应性和灵活性。‌

  •  

    更好的隔离性:‌虽然Docker容器共享同一个操作系统和资源,‌但通过隔离网络和存储卷等方式可以实现更好的隔离性,‌适合在多用户环境中使用。‌

这些优势使得Docker在现代化应用开发和部署中成为了一种非常受欢迎的技术,‌特别是在微服务和容器化应用方面

0c731359a2c84f14a70afb47b4d74e13.png 

951b4543b9744606b6aaa414d7f39e6f.png 

 

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值