wespten
悦分享
网上搜索资料的朋友,一定都会有这样一个感受,那就是知识点有时太过零散,有时又存在误区,有时又太过简短,而有时又缺乏深度,一个系统又详细的分享小天地,为真正想去学习或了解某些事情的朋友,持续提供有价值且有深度的内容。
展开
-
中高级Linux运维工程师经典面试题汇总
运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常,在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术。运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等。游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维开发运维:是给应用运维开发运维工具和运维平台的。应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查。原创 2023-02-16 17:55:14 · 1486 阅读 · 0 评论 -
大厂经典Ansible面试题整理汇总
Ansible模块是离散的代码单元,可以从命令行或在剧本任务中使用。这些模块在Ansible中也称为任务插件或库插件。Ansible附带了几个称为模块库的模块,这些模块可以直接执行,也可以通过剧本远程主机执行。用户还可以编写他们的模块。这些模块可以控制服务,系统资源,文件或包等,并处理执行的系统命令。Ansible Task使我们能够将配置策略的各个部分分解为较小的文件。这些是可用于自动执行任何过程的代码块。必须以字母开头,并且只能包含字母、数字、下划线(和go一样)。原创 2023-02-18 17:07:56 · 4133 阅读 · 0 评论 -
160道Shell企业面试题整理汇总
答:在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。# chsh -s 答:函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调用函数名字,该块就会被执行。译注:下面是我给的shell函数语法,原文没有[ function ] 函数名 [()]命令;sed '$d'原创 2023-02-15 19:46:59 · 602 阅读 · 0 评论 -
Shell编程核心与经典面试题汇总
函数是拥有名字的代码块。当我们定义代码块,我们就可以在我们的脚本调用函数名字,该块就会被执行。译注:下面是我给的shell函数语法,原文没有[ function ]函数名[()]{命令;]}原创 2023-02-15 16:00:51 · 320 阅读 · 0 评论 -
大厂经典运维监控(Zabbix+Prometheus)面试题整理汇总
自动网络发现;主动客户端自动注册;低级别的发现;实现方式: 规则+动作。首先需要在模板当中创建一个自动发现的规则,这个地方只需要一个名称和一个键值。过滤器中间要添加你需要的用到的值宏。然后要创建一个监控项原型,也是一个名称和一个键值。然后需要去写一个这样的键值的收集。自动发现实际上就是需要首先去获得需要监控的值,然后将这个值作为一个新的参数传递到另外一个收集数据的item里面去。原创 2023-02-18 07:06:30 · 4034 阅读 · 0 评论 -
大厂经典Dubbo面试题整理汇总
分布式或者说 SOA 分布式重要的就是面向服务,说简单的分布式就是我们把整个系统拆分成不同的服务然后将这些服务放在不同的服务器上减轻单体服务的压力提高并发量和性能。比如电商系统可以简单地拆分成订单系统、商品系统、登录系统等等,拆分之后的每个服务可以部署在不同的机器上,如果某一个服务的访问量比较大的话也可以将这个服务同时部署在多台机器上。先来看一下稍微官方点的解释。下面这段话摘自维基百科对负载均衡的定义:负载均衡改善了跨多个计算资源(例如计算机,计算机集群,网络链接,中央处理单元或磁盘驱。原创 2023-02-17 17:31:50 · 621 阅读 · 0 评论 -
大厂经典Zookeeper面试题整理汇总
通常这是完全透明的。如果一个客户端设置了 Chroot,那么该客户端对服务器的任何操作,都将会被限制在其自己的命名空间下。zk 的命名服务,命名服务是指通过指定的名字来获取资源或者服务的地址,利用 zk 创建一个全局的路径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或者一个远程的对象等等。命名服务是指通过指定的名字来获取资源或者服务的地址,利用 zk 创建一个全局的路径,即是唯一的路 径,这个路径就可以作为一个名字,指向集群中的集群,提供的服务的地址,或者一个远程的对象等等。原创 2023-02-17 16:00:09 · 577 阅读 · 0 评论 -
大厂经典Kafka面试题整理汇总
消费者组是 Kafka 独有的概念,如果面试官问这 个,就说明他对此是有一定了解的。我先给出标准答案:定义:即消费者组是 Kafka 提供的可扩展且具有容错性的消费者机制。原理:在 Kafka 中,消费者组是一个由多个消费者实例 构成的组。多个实例共同订阅若干个主题,实现共同消费。同一个组下的每个实例都配置有 相同的组 ID,被分配不同的订阅分区。当某个实例挂掉的时候,其他实例会自动地承担起 它负责消费的分区。此时,又有一个小技巧给到你:消费者组的题目,能够帮你在某种程度上掌控下面的面试方向。原创 2023-02-17 15:23:33 · 622 阅读 · 0 评论 -
大厂经典Nginx面试题整理汇总
Nginx是一个web服务器和反向代理服务器,用于 HTTP 、 HTTPS 、 SMTP 、 POP3 和 IMAP 协议。return 444;这里,服务器名被保留为一个空字符串,它将在没有“主机”头字段的情况下匹配请求,而一个特殊的Nginx 的非标准代码 444 被返回,从而终止连接。C10K 问题是指无法同时处理大量客户端(10,000)的网络套接字。正向代理就是一个人发送一个请求直接就到达了目标的服务器。原创 2023-02-17 13:34:58 · 844 阅读 · 0 评论 -
大厂经典Linux面试题整理汇总
交换空间是Linux使用的一定空间,用于临时保存一些并发运行的程序。当RAM没有足够的内存来容纳正在执行的所有程序时,就会发生这种情况。root帐户就像一个系统管理员帐户,允许你完全控制系统。你可以在此处创建和维护用户帐户,为每个帐户分配不同的权限。每次安装Linux时都是默认帐户。LILO是Linux的引导加载程序。它主要用于将Linux操作系统加载到主内存中,以便它可以开始运行。BASH是Bourne Again SHell的缩写。原创 2023-02-16 13:40:07 · 396 阅读 · 0 评论 -
Ansible 企业级自动化运维平台开发实战
项目说明:Flask实现Ansible和Ansible-Playbook的配置+部署系统,同时带有简单的服务器管理系统和认证系统。flask-ansible: Flask实现Ansible和Ansible-Playbook的配置+部署系统。同时带有简单的服务器管理系统和认证系统。本项目需要把Python3安装到/usr/local/python目录下,ansible和ansible-playbook也是安装在此目录下。原创 2022-11-30 15:03:56 · 1311 阅读 · 0 评论 -
Ansible 企业级自动化运维实战
如果Ansible不采用0mq(ZeroMQ),在操作1000个以下的节点性能还可以,如果操作1000个以上的节点,性能就很差。目前来说Ansible支持local,ssh,0mq,Ansible用ssh来管理被管理主机是最常见的方法。saltstack简称salt,默认采用0mq(ZeroMQ),支持数万节点的操作。salt也支持salt-ssh,所谓salt-ssh也是和ansible类似使用ssh来管理被管理主机。---#name:表示第一个play- name: 表示第一个play的名字。原创 2022-11-30 07:14:37 · 882 阅读 · 0 评论 -
Ansible 自动化运维详解
Ansible 是一个 IT 自动化工具,它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。Ansible是一个可以在Ansible playbook中在完美描述IT应用架构的简单的自动化语言,它也是一个运行Ansible Playbook的自动化引擎。Ansible可以管理强大的自动化任务,并且可以适应许多不同的工作流和环境。同时,Ansible的新使用者可以非常快速的使用它并将其带入生产环境。原创 2022-11-29 14:24:37 · 691 阅读 · 0 评论 -
Ansible调优实战
在执行 ad-hoc 或者 playbook 的时候,在后面加上 `-vvv` 参数,就可以看到 Ansible 的详细执行过程,便于排错。限制授影响的主机:`--limit` 后面跟主机名或者主机组名。原创 2024-09-03 06:58:06 · 73 阅读 · 0 评论 -
大型项目中Ansible优化
还有根据用途划分的,比如有test测试环境的主机,有prod生产环境的主机,有dev开发环境的主机,mirrors镜像环境的主机。所谓镜像环境的主机是和生产环境一模一样的,在对生产环境更新插件,系统版本,补丁升级等等内容都会在镜像环境下先操作,操作结束之后,1个月没什么问题,就开始在生产环境滚动部署。所谓的主机种类可以分为好几类,根据操作系统种类划分好几类,比如有ubuntu,centos,fedora,debian,rhel,根据linux发行版本的种类还有对应的子版本,7.x,8.x。原创 2024-09-03 07:00:45 · 70 阅读 · 0 评论 -
Ansible集成CI/CD流水线最佳实践
CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。具体而言,CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。这些关联的事务通常被统称为“CI/CD pipeline”,由开发和运维团队以敏捷方式协同支持。1. CI是什么?CI和CD的区别。原创 2025-01-13 08:24:08 · 92 阅读 · 0 评论 -
Ansible集成Git的CI/CD流水线详解
Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次!那什么是版本控制系统?如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……原创 2025-01-12 20:02:13 · 101 阅读 · 0 评论 -
Ansible企业级实战
1.建一个名为/home/greg/ansible/hwreport.yml的playbook,它将在所有受管节点上生成含有以下信息的输出文件/root/hwreport.txt。3. 创建名为/home/greg/ansible/hosts.yml的playbook,它将使用此模板在 dev 主机组中的主机上生成文件/etc/myhosts;1. 下载http://rhgls.domainx.example.conn/materials/hosts.j2到/home/greg/ansible;原创 2024-09-03 06:59:44 · 103 阅读 · 0 评论 -
Ansible企业级自动化运维
如果Ansible不采用0mq(ZeroMQ),在操作1000个以下的节点性能还可以,如果操作1000个以上的节点,性能就很差。目前来说Ansible支持local,ssh,0mq,Ansible用ssh来管理被管理主机是最常见的方法。saltstack简称salt,默认采用0mq(ZeroMQ),支持数万节点的操作。salt也支持salt-ssh,所谓salt-ssh也是和ansible类似使用ssh来管理被管理主机。---#name:表示第一个play- name: 表示第一个play的名字。原创 2024-09-03 06:59:17 · 95 阅读 · 0 评论 -
Ansible 最佳案例编写实战
apache http web服务器部署firewall 防火墙部署配置haproxy LB部署配置wen app 能力部署└─$ls关于角色这里我们简单的回顾下:ansible 中的role指的是,为了方便复杂任务(包含大批量任务操作、模板、变量等资源)的重复使用,降低playbook剧本编写难度,而预先定义好的一套目录结构。针对每一个角色,ansible会到固定的目录去调取特定的数据,关于角色在剧本中的使用,可以看看上面 deplay_*.yaml。原创 2025-01-10 07:51:55 · 78 阅读 · 0 评论 -
Ansible 编写规范
在roles目录里面加载对应的role,两个静态的inventory在inventories目录下prod中的inventory和stage中inventory,分割了不同主机的inventory变量,并且所有定义在group_vars中的变量都继承到inventory主机中,从而实现解耦,每个playbook都只完成某一个特定的功能。使用一个变量代替配置文件中需要改变的内容,整体的配置文件结合Ansible变量做成Jinja2模板,用templates模块根据不同主机的不同变量实现不同的配置文件。原创 2025-01-09 07:51:27 · 55 阅读 · 0 评论 -
Ansible自动化部署Zabbix与Prometheus实战
修改之后的playbook,block可以定义一组运行的task,那么如果条件判断应用于block就相当于应用于block下面所有的task。关于defaults目录的vars目录的解释,你如果安装了一个数据库,如果你没有指定密码,defaults文件中可以定义一个缺省的密码。role就是将我们之前写的playbook里面涉及到的所有内容进行解耦,然后将解耦后的内容以指定的文件形式放入role的目录树中。但是如果你修改了vars里面的密码变量,你可以覆盖缺省的密码。重置被管理主机,不需要重置控制节点。原创 2024-09-03 07:01:05 · 122 阅读 · 0 评论 -
Ansible网络服务配置实战
对于bonding的网络负载均衡是我们在文件服务器中常用到的,比如把三块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题。由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N。但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。原创 2024-09-02 08:22:35 · 118 阅读 · 0 评论 -
Ansible服务管理实战
为什么要进行源码包安装软件?yum不香了吗,yum安装软件比源码包安装软件香太多了,但是有时候我们不得不选择源码包安装,原因是这个软件的最新版本还没有被做成rpm包,所以如果我们想要使用这个软件的最新特性,那么就只能选择源码包安装软件了。原创 2024-09-01 20:54:23 · 67 阅读 · 0 评论 -
Ansible插件二次开发实战
由于开发出来的插件将在控制器上执行,因此您必须使用兼容版本的Python(Python 2(2.7版)或 Python 3(3.5版及更高版本)的)进行编写。Ansible的在线帮助文档是根据每个模块的源代码中的`DOCUMENTATION`模块生成的。应该通过引发`AnsibleError()`或类似的类并返回描述错误的消息来返回插件执行过程中遇到的错误。需要为您的插件定义可配置选项,在python文件的部分 `DOCUMENTATION` 中对其进行描述。若表达式的值出现异常将无法赋予后面的变量。原创 2024-09-03 06:58:54 · 136 阅读 · 0 评论 -
Ansible回调插件详解
ansible回调插件(callback plugins)允许为事件添加一些额外响应。这里的事件包括了执行任务(task)的结果,例如(ok、failed、unreachable、skipped),以及执行剧本(playbook)的过程(start、hosts_matched、task_start、stats)等等。丰富的事件回调使得回调插件能够做非常多的事情,不过,大多数时候他们都用来提供各种各样的输出,或者将日志传输到日志采集器,又或者当遇到特定事件时触发某些特定的任务。原创 2024-09-03 06:58:31 · 141 阅读 · 0 评论 -
Ansible高级配置详解
使用官方建议的目录结构来组织很多 role 和 playbook 文件是个很棒的建议。假如你用 role 封装了 playbook,并且任务依赖文件或者依赖其他的任务时,建议使用目录结构管理。假如是一个简单的独立任务, 只使用 playbook 文件即可,这样会方便我们在其他地方进行引用。下面是官网最佳实战中推荐的目录结构:2、Inventory 配置多个清单通过从命令行提供多个清单参数或通过配置多个清单参数,可以同时定位多个清单源(目录,动态清单脚本或清单插件支持的文件)。这对于具有多环境的状态原创 2024-09-03 06:57:43 · 89 阅读 · 0 评论 -
Ansible-galaxy详解
Galaxy是一个免费网站,用于查找,下载和共享社区开发的角色, 从Galaxy下载角色是快速启动自动化项目的好方法。您还可以使用该站点来共享您创建的角色,通过使用您的GitHub帐户对站点进行身份验证,您可以导入角色,使其可供Ansible社区使用。导入的角色在Galaxy搜索索引中可用,并在站点上可见,允许用户发现和下载它们。原创 2024-09-03 06:57:20 · 206 阅读 · 0 评论 -
Ansible Role角色详解
数据中心有大量不同类型的主机,一些是web服务器,一些是数据库服务器,其它的可能是安装了开发测试工具的服务器。一个有tasks和handlers的playbook来部署这些类型的服务器会很复杂。Ansible roles允许管理员将他们的playbook个咯成更小的playbooks和文件。Roles从外部文件为Ansible提供了一个让tasks,handlers和变量的负载,静态文件和模板也可以被关联并且通过role使用他们。原创 2024-09-03 06:57:02 · 81 阅读 · 0 评论 -
Ansible jinja2模板详解
Ansible使用Jinja2模板来修改被管理主机的配置文件。例如给10台远程主机都装上httpd服务,但是要求每个服务器的端口不一样,如何解决?使用ansible的jinja2模板,也就是template模块。该模块和copy的工作原理很像,都是讲某个文件复制到远端主机上去,但是区别在于template模块可以获取变量的值,而copy则是原封不动的把文件内容复制过去。比如可以针对不同的主机定义不同的变量,template会在将配置文件分发出去前读取变量到jinja2模板,然后分发到不同的被管理主机上。原创 2024-09-03 06:56:32 · 169 阅读 · 0 评论 -
Ansible任务控制详解
Handlers是响应一个通知的tasks,它是需要被触发的tasks。意思是说,针对这两个文件发布的TASK,设置一个通知机制,当Ansible 认为文件的内容发生了变化(文件MD5发生变化了),它就会发送一个通知信号,通知 handlers 中的某一个任务。比如你运行一个你写的脚本,脚本可能会正常运行,但是可能可能因为运行错误而输出了一些错误信息,你可以将这些输出信息放到register变量中,然后判断你写的脚本输出的错误信息是否在register变量中,如果在其中就可以断定错误。原创 2024-09-03 06:55:24 · 80 阅读 · 0 评论 -
Ansible Facts 变量详解
Ansible Facts是在一个被管理主机上通过ansible自动被发现的变量。facts包含特定的主机信息,这些主机信息可以像正常变量一样用在plays,conditionals,loops或者其它场景下,不同的应用场景取决于从被管理主机上采集的value类型。Facts变量不包含在全局变量、剧本变量及资产变量之内。Facts变量不需要我们人为去声明变量名及赋值。它的声明和赋值完全有Ansible 中的 setup 模块帮我们完成。原创 2024-09-03 06:54:56 · 153 阅读 · 0 评论 -
Ansible变量详解
变量几乎可以定义在ansible项目中的任意位置。原创 2024-09-03 06:54:30 · 90 阅读 · 0 评论 -
Ansible Playbook 详解
ad hoc命令是单行,一个简单的任务,运行一次。例如我们有可能需要安装软件、更新配置、启动服务等等一系列操作的结合,此时再通过ad hoc去完成任务就有些力不从心了。ansible真正强大的地方是使用ansible的playbook重复运行多次复杂的任务。一个play是是一组有序的任务,该paly对应着在inventory被选择的主机,一个playbook是一个包含若干个paly的text文本文件。原创 2024-09-03 06:53:56 · 98 阅读 · 0 评论 -
Ansible Ad-hoc 命令详解
如果我们敲入一些命令去比较快的完成一些事情,而不需要将这些执行的命令特别保存下来, 这样的命令就叫做 ad-hoc 命令。用法其实和 copy 模块基本一样, template 模块的强大之处就是使用变量替换,就是可以把传递给 Ansible 的变量的值替换到模板文件中。ping模块表示在被管理主机上使用ping命令来ping控制节点,如果success就表示你的被管理主机到控制节点是可达的。但command模块是ad-hoc的默认模块,在执行ad-hoc时,若不指定模块的名字则默认使用此模块。原创 2024-09-01 21:18:35 · 537 阅读 · 0 评论 -
Ansible安装与配置详解
这个文件可以自定义,之后使用相应的参数指定。下面给出一个自定义的静态资产实例,然后再具体解释其含义。原创 2024-09-01 21:17:28 · 462 阅读 · 0 评论 -
Ansible自动化运维工具概述
Ansible 是一个 IT 自动化工具,它能配置系统、部署软件、编排更复杂的 IT 任务,如连续部署或零停机时间滚动更新。Ansible是一个可以在Ansible playbook中在完美描述IT应用架构的简单的自动化语言,它也是一个运行Ansible Playbook的自动化引擎。Ansible可以管理强大的自动化任务,并且可以适应许多不同的工作流和环境。同时,Ansible的新使用者可以非常快速的使用它并将其带入生产环境。原创 2024-09-01 21:16:33 · 352 阅读 · 0 评论 -
SaltStack 企业级自动化运维实战
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。原创 2022-12-08 21:21:08 · 507 阅读 · 0 评论 -
SaltStack实现etcd自动扩容
ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统。该项目目前最新稳定版本为2.3.0,ETCD是CoreOS公司发起的一个开源项目,授权协议为Apache。提供配置共享和服务发现的系统比较多,其中最为大家熟知的是Zookeeper(后文简称ZK),而ETCD可以算得上是后起之秀了。在项目实现,一致性协议易理解性,运维,安全等多个维度上,ETCD相比Zookeeper都占据优势。原创 2022-12-08 21:21:45 · 281 阅读 · 0 评论 -
SaltStack自动化部署Zabbix实战
roster就是salt-ssh定义被管理主机的名单文件,相当于ansible的Inventory文件。原创 2022-11-28 12:47:43 · 651 阅读 · 0 评论