2分钟

课程背景

实验预计耗时:45 分钟

1. 课程背景

1.1 课程目的

在企业场景下,如何高效管理大批量的服务器和其他硬件设备,是所有企业运维都面临的问题。Ansible 以轻量、简单、易用、功能强大而著称,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。本课程将以 web 集群部署为例,为大家介绍 Ansible 自动化平台实现 web 集群部署的方法。

1.2 课前知识准备

1.相关概念

  • 环境准备相关
    • 静态网站:网站仅由 HTML,CSS,JavaScript 等前端文件组成的网站。静态网站没有与后端的数据交互,功能简单,要修改网站内容只能修改静态文件。
  • 通用技术相关
    • Linux:Linux 是一套免费使用和自由传播的操作系统内核,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统内核。正是在 Linux 的驱动下,我们可以通过在控制台上输入命令来操作主机的各类配置。
    • Ansible:Ansible 是一款简单的自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible 的特点有:Ansible 不需要单独安装客户端,也不需要启动任何服务;Ansible 是 python 中的一套完整的自动化执行任务模块;Ansible playbook 采用 yml 配置,能够非常清楚地显示自动化任务是否执行过。
    • Ansible Playbook:任务剧本(又称任务集),编排定义 Ansible 任务集的配置文件,由 Ansible 顺序依次执行,以 yml 格式编写。
    • SSH:SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。本次实验我们将通过 SSH 的技术实现主机间的免密访问。
  • 腾讯云产品相关
    • CVM:腾讯云服务器 CVM(Cloud Virtual Machine)是腾讯云提供的可扩展的计算服务。使用 CVM 避免了使用传统服务器时需要预估资源用量及前期投入,帮助用户在短时间内快速启动任意数量的云服务器并即时部署应用程序。腾讯云 CVM 支持用户自定义一切资源:CPU、内存、硬盘、网络、安全等等,并可以在需求发生变化时轻松地调整它们。

2.相关原理

  • SSH原理:使用 SSH 加密传输前,需要先生成一个密钥对,其中包含公钥和私钥。接着主机会做出以下响应:远程 Server 收到 Client 端用户 TopGun 的登录请求,Server 把自己的公钥发给用户;Client 使用这个公钥,将密码进行加密;Client 将加密的密码发送给 Server 端;远程 Server 用自己的私钥,解密登录密码,然后验证其合法性。
  • Ansible原理:Ansible 可以简化管理员的自动化配置管理和流程控制方式。它利用推送方式对客户系统配置,这样所有的工作都可以在主服务器上完成。 运行 Ansible 的服务器叫做”管理节点”,通过 Ansible 进行管理的服务器叫做“受控节点”。 从本质上来讲就是在一台或多台远程服务器上,执行一系列的命令,达到对所有受控服务器集群的自动化部署效果。
  • Ansible 工作原理图:
原理

可以看到 Ansible 由五部分组成:

  • Ansible :核心
  • Modules :包括 Ansible 自带的核心模块及自定义模块
  • Plugins :完成模块功能的补充,包括连接插件、邮件插件等
  • Playbooks :剧本;定义 Ansible 多任务配置文件,由 Ansible 自动执行
  • Host Inventory :定义 Ansible 管理主机的清单