微认证 - 开发&运维板块 -《Ansible自动化部署LNMP》 - 学习分享
什么是微认证?
- 华为云微认证是基于线上学习与在线实践,快速获得场景化技能提升的认证。
微认证清单 - 开发&运维
Ansible自动化部署LNMP
课程简介
- DevCloud+Ansible云端运维,带您了解playbook编写方法,快速部署企业网站架构,体验自动化运维新姿势。
课程结构
1、自动化运维发展趋势
运维(O&M)
定义
- 运行 Operation
运,一般的理解是运行,将服务运转起来,以满足用户和客户的需求;进一步的含义还有运筹,即统筹安排资源,提供最优解决方案,以达到效益最大化
- 维护Maintenance
维,一般的理解是维护,维持并监护服务的运行过程,包括应对服务管理请求和事件;进一步的含义还有维系,或者说连接,特指其起到的承上启下和枢纽作用
- IT运维是指企业IT部门采用相关的方法、手段、技术、制度等,对IT软硬运行环境、IT业务系统和IT运维人员进行的综合管理
范围
- 环境定义包括开发环境、测试环境、预生产环境、生产环境等
- 部署将包有效地部署到不同环境的能力
- 监控部署后能够监控系统和应用程序
- 告警响应告警发生时,对告警的响应和处理机制
- 性能调优包括对各种服务的调优,如Nginx、Java、PHP、数据库、网络等
- SLA保障一般需要与业务相关部门讨论确定
分类
- 常见的运维岗位有以下几种:
传统运维
痛点
-
传统的IT运维是等到IT出现故障后,再由运维人员采取相应的补救措施。这种被动的、孤立的IT运维管理模式往往使IT部门疲意不堪。
-
主要表现在以下三个方面:
缺陷
- 我们在部署应用的时候需要预先安装各种依赖、运行环境,同时由于应用通常是一系列服务的组合,需要一一安装。因此部署个应用是一件痛苦而漫长的过程
自动化运维
背景
- 您是否希望摆脱繁重的日常操作和维护服务器的工作量?
- 您是否希望把这些无聊的东西自动化,把注意力集中在更有创意的东西上?
- 自动化运维消除了手动和重复性任务,使用工具和平台来自动化曾经是手动的流程,如打补丁、配置和部署等
定义
- 自动化运维是通过工具或者平台,实现IT基础设施和应用的日常任务和运维流程自动化,从而提高效率,降低风险,促进组织业务能力提升
- 主要包括
- 日常任务处理自动化
- 运维流程自动化
- 业务服务自动化
- 整体运维运营能力升级
- …
发展
- 三个阶段
-
运行自动化 在这个阶段通过写一些单机脚本来进行运维工作,但是一旦运行条件发生变化,可能要改变脚本。运维压力仍然很大,容易出错。
-
场景自动化自动化工具根据外部环境判断如何运行,这些判断条件是预先定义的。这种运维系统需要各种环境数据来判断,依赖于流程引擎
-
人工智能操作AIOps这个层次的运维系统有一个数据核心,能够根据数据进行分析和判断,并能自己做出决策和执行
技术要素
- 监控
- 模板化部署
- 自动化运维工具
工具
- 业界主流的自动化运维工具有Ansible, SaltStack、 Puppet等
-
Ansible是一个非常简单的IT自动化系统。它能够处理配置管理、应用程序部署、云供应、特定任务执行、网络自动化和多节点编排
-
SaltStack是服务器基础设施的集中管理平台,具有配置管理、远程执行和监控功能
-
Puppet是Unix平台的集中配置管理系统,它可以管理配置文件、用户、cron任务、软件包、系统服务等
2、Ansible基础简介
介绍
-
2012年, Ansible正式发布第一个版本,原作者MichaelDeHaan
-
2013年Ansible Inc公司成立,负责Ansible的商业化和捐助
-
在2015年RedHat收购Ansible
功能
-
DevOps加速了开发、测试和运维的循环,使过去“三年部署一次,修修补补用三年”的应用部署变成了可能一天内就要部署更新多次,手动方式渐渐变得无发满足需求
-
使用Ansible自动化运维可以减少服务中断时间、测试基础设施、降低意外风险,让开发、测试和正式环境无缝接轨,提升DevOps的整体效能
场景
架构
-
Ansible的基础结构分为控制节点和受控节点
-
默认情况下, Ansible使用SSH协议在控制节点和受控节点之间进行通信
Control(控制)节点
- Ansible安装在控制节点
- 在控制节点上可以运行命令以及playbook
- 你可以将任何安装了Python的节点设置为控制节点,包括笔记本电脑、远程桌面或者是服务器
- 不支持使用windows主机作为控制节点
- Ansible支持多个控制节点
Managed(受控)节点
-
受控节点指所有受控制节点管辖的节点
-
受控节点通常也会被称为"hosts"
-
受控节点上无需安装代理等服务
-
节点可以是服务器,也可以是其他硬件设备,如网络设备,甚至是虚拟节点,例如:
-
容器SDN
-
无线和其他网络控制器
-
Playbook简介
-
Playbooks与ad-hoc相比,是一种完全不同的运用Ansible的方式,是非常之强大的。简单来说,playbooks是一种简单的配置管理系统与多机器部署系统的基础,与现有的其他系统有不同之处,且非常适合于复杂应用的部署
-
Playbooks的格式是YAML,语法做到最小化,意在避免playbooks成为一种编程语言或是脚本,但它也并不是一个配置模型或过程的模型
YAML介绍
-
如果学习过Kubernetes,相信对YAML不会陌生,它可以便捷的让我们发放各种基于容器的应用
-
YAML语言是专门用来写配置文件的语言,非常简洁和强大YAML在设计之初的目标,就是方便人类读写,因此在阅读YAML格式的文本时往往会感觉较为易懂它实质上是一种通用的数据串行化格式
3、DevCloud Ansible介绍
DevOps的含义
- DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的个集合,它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解
DevCloud
- 软件开发平台(DevCloud)是集华为近30年研发实践、前沿研发理念、先进研发工具为一体的一站式云端DevOps平台,面向开发者提供的云服务,即开即用,让开发者快速而又轻松地开启云端开发之旅
全流程DevOps平台
Ansible是在发布阶段可以使用的一种工具
DevCloud中Ansible得的使用场景
4、实验
Ansible自动化部署LNMP
-
LNMP是什么?
- LNMP=Linux + Nginx + Mysql + PHP 是广为接受的一种企业网站架构
ECS中使用Ansible部署LNMP流程
DevCloud中使用Ansible部署LNMP流程
DevCloud中使用Ansible的优势
-
与ECS中使用Ansible相比
- DevCloud 中不需要在控制主机上安装Ansible,自身集成
- DevCloud 中可直接导入购买的ECS,无需维护hosts文档
- DevCloud 中代码托管playbook,可克隆可编辑
- DevCloud 网页一站式运维,开发和运维更近一步
- 点赞
- 收藏
- 关注作者
评论(0)