运维工程师日常工作解析及 Ansible 全面介绍| 学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习运维工程师日常工作解析及 Ansible 全面介绍

开发者学堂课程【自动化运维工具 Ansible 实战运维工程师日常工作解析及 Ansible 全面介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/577/detail/7973


运维工程师日常工作解析及 Ansible 全面介绍


内容介绍

一、运维软件 Ansible

二、运维自动化发展历程及技术应用

三、云计算运维工程师核心职能

四、运维工程师职能划分

五、自动化运维应用场景

六、企业实际应用场景分析

七、程序发布

八、常用自动化运维工作

一、运维软件 Ansible

在生产生活中,如开发网站,包括有电商的程序,电商程序有一些业务发生变化,它里面程序会有更新这时需另外辅助软件如一些可直接实现这些自动化运维的工具,其中著名流行的软件就是 ansible,接下来将介绍 ansible:

1、运维自动化发展历程及技术应用

2、Ansible 命令使用

3、Ansible 常用模块详解

4、YAML 语法简介

5、Ansible playbook 基础

6、Playbook 变量、tags、handlers 使用

7、Playbook 模板 templates

8、Playbook 条件判断 when

9、Playbook 字典 with _ items

10、Ansible Roles


ansible 命令像 linux 中一条条命令,单条命令虽然能解决问题,但是很不灵活也不自动化,如需定期的做备份,每次敲命令去备份会很麻烦,一般来讲都写成脚本,在 ansible 中的解决方案就叫 playbook 翻译叫剧本

像电影电视剧中演员按照剧本表演一样,要实现复杂任务,单条命令输出费时费力,就可以借助 playbook,相当于把多个命令集中在 playbook 里形成了一个相对能解决复杂任务的工具,但过于复杂一点项目,一个 playbook 也搞不定,因此有最终的解决方案 Role,翻译叫角色,

一个 playbook 搞不定了,那就写多个 playbook,并保证各个 playbook 之间是有一定的关系,互相调用,那是用角色来实现。

学习顺序就是刚开始先了解基本命令,然后想实现稍微复杂的操作就编 playbook编角色。

这中间会用到很多相关的技术,如 ansible 的各种模块在实现功能的时候是基于模块来开发的某个功能他是用一个模块来实现另外一个功能。比方说我要实现文件复制,他就会开发一个和文件相关的一个模块,专门解决文件复制等等。

也看到条件判断、变量、标签等等、也有属于自己的语言 YAML,接下来逐步学习。总的简单理解 Ansible 是单条命令 playbook 综合命令为脚本,Roles 来调用各个脚本完成复杂任务。


二、运维自动化发展历程及技术应用

了解一下面试中可能问的大问题:

IAAS (基础设施即服务)PAAS(平台即服务)、SAAS(软件即服务)三者的区别:

在本地部署时,硬件与软件都是自己部署,像是在家吃饭,要买原材料,要生火,要桌子椅子来吃饭,但现阶段大部分公司没有能力或精力放到辅助IT上,所以就产生IAAS(基础设施即服务),就像吃饭买成品带回家,生火一热放上桌子就吃,若还嫌麻烦可以直接叫外卖 PAAS(平台即服务),也不用热直接上桌吃,此时觉得成本依然很高,可以直接去店里吃 SAAS(软件即服务),这时桌子都省了。

这样很大程度上节省了维护精力,

现大部分软件公司都采 SAAS,如手机上 app,就像计算机的发展,都从硬件向软件发展,省去很大精力可以投入到软件的研发中。

如下图:

image.png


IAAS:购买了硬件架构(如虚拟机),操作系统和软件自己开发。

PAAS: 不仅购买了硬件架构,也包括了操作系统,可以直接开发软件。

SAAS:全套购买(基本上各大手机软件都是如此)不需要自己开发。


三、云计算运维工程师核心职能

1、平台架构组建负责参与并审核架构设计的合理性和可运维性,搭建运维平台技术架构,通过开源解决方案,以确保在产品发布之后能高效稳定的运行,保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。在正式上岗时企业里需要用到的服务器都是需要自己搭建的。

 

2、日常运营保障:负责用运维技术或者运维平台确保产品可以高效的发布上线,负责保障产品7*24H 稳定运行,在此期间对出现的各种问题可以快速定位并解决;在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性。

维护公司自研的系统,像电商网站,就需要更迭版本,维护平时的稳定运行。如各种公司开发的软件,需要日常维护升级。

 

3、效率优化:用自动化的工具/平台提升软件在研发生命周期中的工程效率。不断优化系统架构、提升部署效率、优化资源利用率支持产品的不断迭代,需要不断的进行架构优化调整。以确保整个产品能够在功能不断丰富和复杂的条件下,同时保持高可用性。

 

四、运维工程师职能划分

如图:一一一一一一一一一一一一一一一一一一一一一一一一一一一

image.png

 

可以看到运维在开发软件中所处的位置,如电商网站开发的网页,有各种开发工程师和测试工程师,运维工程师在软件开发和测试后,进行预上线(配置修改、预发部署、发布验收)和上线(环境准备、上线部署、配置惨改、添加监控)。

 

五、自动化运维应用场景

自动化运维就是减轻运维工程师的日常工作,ansible 实现自动化的口令的功能大体分为:

文件传输(拷贝、更改文件)和命令执行(应用部署、配置管理、任务流编排),ansible 提出能解决系统化自动部署,但此时还仍未成功,但在之后或许会实现。

 

六、企业实际应用场景分析

1Dev 开发环境

使用者:程序员

功能:程序员开发软件,测试 BUG 的环境

管理者:程序员(此环节多为开发工程师负责)。

 

2、测试环境

使用者:QA 测试工程师

功能:测试经过 Dev 环境测试通过的软件的功能

管理者:运维

说明:测试环境往往有多套,测试环境满足测试功能即可,不宜过多。

(1) 测试人员希望测试环境有多套,公司的产品多产品线并发,即多个版本,意味着多个版本同步测试

(2) 通常测试环境有多少套和产品线数量保持一样

 

3、发布环境:代码发布机,有些公司为堡垒机(安全屏障)

使用者:运维

功能:发布代码至生产环境

管理者:运维(有经验)

发布机:往往需要有2台(主备)

 

4生产环境

使用者:运维,少数情况开放权限给核心开发人员,极少数公司将权限完全开放给开发人员并其维护。

功能:对用户提供公司产品的服务

管理者:只能是运维

生产环境服务器数量:一般比较多,且应用非常重要。往往需要自动工具协助部署配置应用。


5灰度环境(生产环境的一部分)

使用者:运维

功能:在全量发布代码前将代码的功能面向少量精准用户发布的环境,可基于主机或用户执行灰度发布

案例:共100台生产服务器,先发布其中的10台服务器,这10台服务器就是灰度服务器,此时仅发布10台机器,另90台还是老版本,若此时没有出现 BUG 就继续发布其他机器。

管理者:运维

灰度环境:往往该版本功能变更较大,为保险起见特意先让一部分用户优化体验该功能,待这部分用户使用没有重大问题的时候,再全量发布至所有服务器。同时也有地区发布,像有些软件是各个地区是不太一样的,先发布一地区然后再逐步到其它地区

 

七、程序发布

1、预发布验证:新版本的代码先发布到服务器(跟线上环境配置完全相同,只是未接入到调度器)。

 

2、程序发布要保证不能导致系统故障或造成系统完全不可用,影响用户体验。

 

3、发布路径:

/webapp/tuangou-1.1 此为旧版本

/webapp/tuangou  一     此软件基指向在使用的版本

/webapp/tuangou-1.2   此为新版本

用户一般使用的是 /webapp/tuangou 此为一个软链接,他一般通过调度器指向 /webapp/tuangou-1.1(旧版本),升级新版本时通过调度器把老版本 down掉,写入新版本  /webapp/tuangou-1.2  然后恢复链接,此时就完成了灰度发布。

 

4、发布过程:在调度器(用户将请求给调度器,调度器指引用户到提供服务的 real server)上下线一批主机(标记为 maintanance 状态)-->关闭服务-->部署新版本的应用程序-->启动服务-->在调度器上启用这一批服务器

 

5、自动化灰度发布:脚本、发布平台


八、常用自动化运维工具

1、Ansible:python,Agentless,中小型应用环境

2、Saltstack:python, 一般需部署 agent, 执行效率更高

3、Puppet:ruby, 功能强大,配置复杂,重型,适合大型环境

4、Fabric:python, agentless

5、Chef:ruby,国内应用少

6、Cfengine

7、func

相关文章
|
12天前
|
运维 自然语言处理 安全
自动化运维的利器:Ansible入门与实践
【8月更文挑战第33天】在现代IT基础设施的管理中,自动化运维已成为提高效率、减少错误的关键技术。Ansible作为一款开源的自动化配置管理和应用部署工具,以其简洁性、易用性和强大的功能受到广泛欢迎。本文将介绍Ansible的基本概念、安装步骤和简单使用,通过实际案例展示其在自动化运维中的应用。
|
8天前
|
运维 Ubuntu Devops
自动化运维工具的魅力:Ansible入门
【9月更文挑战第5天】在快速变化的IT世界里,自动化运维不再是可选项,而是必需品。Ansible,一款简单却强大的自动化工具,正成为众多DevOps工程师的首选。本文将带你了解Ansible的基本概念、安装步骤以及如何编写简单的Playbook,从而开启你的自动化之旅。
57 35
|
1天前
|
运维 负载均衡 安全
自动化运维的新篇章:利用Ansible实现高效配置管理
【9月更文挑战第12天】随着技术的快速发展,运维工作变得越来越复杂。自动化运维成为提升效率、减少错误的关键手段。本文将介绍如何使用Ansible这一强大的自动化工具来简化日常的运维任务,包括安装软件、配置系统和应用部署等。通过具体示例,我们将探索Ansible的核心概念和实践方法,展示如何编写Playbook以实现自动化配置管理。无论你是新手还是有经验的运维工程师,这篇文章都将为你打开自动化运维的新篇章。
|
2天前
|
运维 监控 应用服务中间件
自动化运维的利剑:Ansible在配置管理中的应用
【9月更文挑战第11天】 当运维工作遇到瓶颈,效率和可靠性成为制约因素时,自动化工具Ansible如同一把锋利的利剑,为配置管理和批量部署带来革命性的改变。本文将深入探讨Ansible的核心功能、使用方法及其在实际运维场景中的强大作用,带领读者领略自动化运维的魅力,并分享如何通过代码示例实现高效管理。
10 1
|
8天前
|
运维 Ubuntu Linux
掌握自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第5天】本文旨在通过深入浅出的方式,介绍如何利用Ansible这一强大的自动化工具来简化和加速日常的服务器配置管理工作。文章将首先概述自动化运维的重要性,接着详细讲解Ansible的基本概念、安装过程及其在服务器配置中的应用实例。我们将通过具体的操作步骤和代码示例,展示如何使用Ansible编写任务,以及如何执行这些任务以实现批量的服务器配置。最后,文章将探讨一些高级用法,帮助读者进一步提升自动化运维的能力。
|
9天前
|
运维 应用服务中间件 持续交付
自动化运维的利器:Ansible在配置管理中的应用
【9月更文挑战第4天】在现代企业中,随着服务器数量的增加和业务的复杂性提高,传统的手动运维方式已经无法满足快速、高效、稳定的业务需求。自动化运维应运而生,成为提升工作效率、减少人为错误的关键技术。本文将介绍Ansible这一自动化运维工具,通过实例展示其在配置管理中的应用,帮助读者理解如何借助Ansible简化日常运维工作,实现服务器的批量管理与自动化部署。
34 4
|
11天前
|
运维 应用服务中间件 nginx
自动化运维:使用Ansible简化日常任务
【9月更文挑战第2天】在快速迭代的软件开发周期中,高效可靠的运维成为项目成功的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化日常运维任务,从基础概念到实战应用,带你一步步构建自动化运维流程,解锁更高效的工作方式。
|
12天前
|
运维 监控 应用服务中间件
自动化运维的新篇章:Ansible Playbooks入门与实战
【9月更文挑战第1天】在追求效率和稳定性的今天,自动化运维已经成为IT行业的必修课。本文将带你走进自动化工具Ansible的世界,通过实战案例深入理解Ansible Playbooks的编写和应用。文章不仅介绍基础概念,更通过具体代码示例,展示如何利用Ansible简化日常运维任务,提升工作效率。无论你是运维新手还是希望深化自动化技能的资深人士,本指南都将为你开启一段新的学习旅程。
|
8天前
|
运维 应用服务中间件 持续交付
自动化运维之路:使用Ansible进行服务器配置管理
【9月更文挑战第5天】本文将引导您了解如何利用Ansible这一强大的自动化工具,来简化和加速您的服务器配置管理工作。我们将通过实际代码示例,展示如何使用Ansible编写Playbook,实现自动化部署、配置更新和任务执行。通过阅读本文,您不仅能够掌握Ansible的基本用法,还将学会如何构建可重复使用的自动化脚本,以提升运维效率和减少人为错误。
|
14天前
|
运维 关系型数据库 MySQL
自动化运维工具:Ansible入门与实践
【8月更文挑战第31天】 在现代IT运维领域,自动化已成为提升效率和减少人为错误的利器。Ansible作为一款流行的自动化运维工具,以其简洁易用和强大的功能受到广泛欢迎。本文将通过实际操作演示,带你快速入门Ansible,并分享一些实践经验,帮助你构建起自己的自动化运维体系。

推荐镜像

更多