12 2023 档案
摘要:1.数组介绍 1. 数组用于存储多个值,且提供索引标号便于取值 2. Bash支持普通的数值索引数组,还支持关联数组。 数组是最常见的数据结构,可以用来存放多个数据。 有两种类型的数组:数值索引类型数组和关联数组。 数值索引类型数组使用0、1、2、3…数值作为索引,通过索引可找到数组中对应位置的数据
阅读全文
摘要:1.函数作用 函数是一个非常实用的技能,用于封装代码块,复用代码,省去同一段代码,重复写,导致代码像一块烂抹布; 封装函数后,代码立刻化身为高级绸缎! shell代码,自上而下 先定义、后调用 2.函数定义与调用 方法1,完整写法 function hello(){ echo "hello chao
阅读全文
摘要:1.应用场景 1. 循环我们已经从for while两大循环中感受到其方便,但很多时候我们希望中断这个循环,或者跳过某次循环 2. 例如网站的登录验证,输入允许错误三次,再就终止循环,不让登录了。 2.break 语法 break用于终止当前循环,如某一个for循环、某一个while循环 3.终止f
阅读全文
摘要:1.while使用场景 1. 当明确循环的限定次数,用for、不确定循环次数使用while 2. 如循环让用户输入的登录程序 3. 如循环操作的一些菜单程序,直到用户输入结束指令菜单 2.while语法 while 条件测试 # 条件成立为true后执行循环体 do 循环体 done 3.案例 循环
阅读全文
摘要:1.for循环使用场景 1. 需要反复、重复执行的任务 2. 如创建100个用户,打印一百遍 chaoge666、插入数据库一万条数据等。 2.for语法 for 变量名 in 取值列表 do 每次循环要执行的命令 done # for默认以空格分割独立的元素 3.for循环几个场景 3.1 循环多
阅读全文
摘要:1.case语句作用 case和if一样,都是用于处理多分支的条件判断 但是在条件较多的情况,if嵌套太多就不够简洁了 case语句就更简洁和规范了 2.case用法参考 常见用法就是如根据用户输入的参数来匹配,执行不同的操作。 最常见的就是如服务脚本的 {start|restart|stop|re
阅读全文
摘要:我们目前写的shell脚本都是按照顺序,自上而下的,依次读取命令,且执行。 但是如果你要控制程序的执行顺序,修改这个顺序,那就得对脚本进行逻辑控制。 那么就必须得进行条件判断了。 坑记录。 1.务必注意,语法,中括号,条件测试符号左右两边的空格,别漏了。 2.条件判断里,关于变量是否添加双引号、本质
阅读全文
摘要:1.什么是变量 变量、顾名思义 量就是记录事务的状态; 变就是事务的状态是会发生变化的; 变量本质是计算机中一种存、取数据的机制; 变量的数据都直接存储在内存中; 为什么要有变量? 程序的本质就是数据的不断变化,存取; 计算机程序的本质 程序=数据+算法(逻辑功能) 程序执行的本质就是一系列状态的变
阅读全文
摘要:1.0 编程的目的 计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果。 编程语言(programming language),是用来定义计算机程序的形式语言。 它是一种被标准化
阅读全文
摘要:再次强调,时序数据库的ntp问题!!!! ntpdate -u ntp.aliyun.com 当企业级容器上升到一定规模的时候,我们必须得实时监控每个容器的状态。我们可以执行 docket stats 这个统计命令是实时的,小公司的话,容器少还可以,够用。如果想看前几天的流量监控数据,显然是没有的,
阅读全文
摘要:1.wordpress容器化 为什么要容器和? 为的就是容器提供的隔绝的名称空间,彻底解决软件依赖的错误,特别是php这种语言,经常性的需要更新,出现版本漏洞等,以及太多的版本,太多的依赖,难以管理,将你的宿主机搞的一团糟。 容器化之后,太香了。 具体如何描述要容器化迁移? 1. 便于快速更新,因为
阅读全文
摘要:1.容器资源限制 官网文档 https://docs.docker.com/config/containers/resource_constraints/ 2.docker内存限制 -m或者--memory= 容器可以使用的最大内存量。如果设置此选项,则允许的最小值为6m(6 兆字节)。也就是说,您
阅读全文
摘要:一、Docker网络基本原理 直观上看,要实现网络通信,机器需要至少一个网络接口(物理接口或虚拟接口)与外界相通,并可以收发数据包; 此外,如果不同子网之间要进行通信,需要额外的路由机制。 Docker中的网络接口默认都是虚拟的接口。虚拟接口的最大优势就是转发效率极高。 这是因为Linux通过在内核
阅读全文
摘要:随着网站架构的升级,容器也使用的越发频繁,应用服务和容器间的关系也越发复杂。 这就要求研发人员能够更好的方法去管理数量较多的容器服务,而不能手动的去挨个管理。 例如一个LNMP的架构,就得部署web服务器,后台程序,数据库,负载均衡等等都需要统一部署在容器里,那么这时候就需要使用统一的容器编排服务d
阅读全文
摘要:Docker网络 我们使用容器,不单是运行单机程序,当然是需要运行网络服务在容器中,那么如何配置docker的容器网络,基础网络配置,网桥配置,端口映射,还是很重要。 docker网络功能 docker的网络功能就是利用Linux的network namespace,network bridge,虚
阅读全文
摘要:仓库的概念也就是用于存储,docker仓库用于存储镜像。 镜像构建完成后,很容易可以在宿主机上运行,但是如果要在其他服务器上运行,则需要考虑镜像的分发,存储的问题。 共有/私有/仓库 Docker Registry有两种形式 公开,开放给所有用户,提供给所有用户搜索,拉取,提交,更新镜像,还免费保管
阅读全文
摘要:定制docker镜像的方式有两种: 手动修改容器内容,导出新的镜像(前面超哥讲docker save等) 基于Dockerfile自行编写指令,基于指令流程创建镜像。 dockerfile简介 镜像是多层存储,每一层在前一层的基础上进行修改; 容器也是多层存储,以镜像为基础层,在其基础上加一层作为容
阅读全文
摘要:1.配置容器端口映射 我们使用容器,不单是运行单机程序,当然是需要运行网络服务在容器中,那么如何配置docker的容器网络,基础网络配置,网桥配置,端口映射,还是很重要。 这里的学习思路,是先学习基本的容器网络操作命令 后面环节深入学习docker网络配置。 容器里运行web服务,是基本需求,想要让
阅读全文
摘要:1.国内源安装docker-ce 配置linux内核流量转发功能 因为docker和宿主机的端口映射,本质是内核的流量转发功能 ## 若未配置,需要执行如下 $ cat <<EOF > /etc/sysctl.d/docker.conf net.bridge.bridge-nf-call-ip6ta
阅读全文
摘要:我们先看看很久很久以前,服务器是怎么部署应用的! 由于物理机的诸多问题,后来出现了虚拟机。 但是虚拟化也是有局限性的,每一个虚拟机都是一个完整的操作系统,要分配系统资源,虚拟机多道一定程度时,操作系统本身资源也就消耗殆尽,或者说必须扩容。 例如上一篇,超哥讲解的kvm,你所创建的资源,也都会消耗宿主
阅读全文
摘要:1.java项目是什么(springboot) 由java语言开发的后端,就是java项目 前面于超老师教了大家学习了 wordpress php项目部署,提供LNMP,交给php-fpm进程去解释执行该源码 jumpserver的core后端 python项目,提供python3环境,即可运行 g
阅读全文
摘要:1.什么是SonarQube 既然是学习devops 运维流水线构建 开发 ↓ 测试 ↓ 运维 华为devops软件开发流水线文档 https://support.huaweicloud.com/reference-devcloud/devcloud_reference_040404.html 前面
阅读全文
摘要:1.需求 一键部署静态页面到 web7 web8 ,且支持后续的页面更新 流程 jenkins部署流水线 1. 准备web7,web8,两个客户端,部署好nginx,支持静态页面推送 2. jenkins编写部署脚本,创建job,触发shell脚本执行 3. 确保jenkins可以拉取代码仓库 4.
阅读全文
摘要:既然是持续集成,对代码进行构建,我们得获取代码仓库的内容,这里选择我们搭建的gitlab服务器 1.开发工程师的机器 1. 在window上生成ssh-key $ ssh-keygen.exe -t rsa -C 'www.yuchaoit.cn' 2.添加到代码仓库github/gitlab都玩一
阅读全文
摘要:1.代码上线发展史 代码发布上线是每一个 IT 企业必须要面临的,而且不管是对开发或者是运维来说,代 码上线本身就是一个件非常痛苦的事情,很多时候每一次发布都是一次考验。 为了提高上线 的效率,代码上线的方式,方法,工具也不断的发展,基本上可以分为以下几个阶段。 没有jenkins 软件在开发者的机
阅读全文
摘要:1.Gitlab介绍 我们了解了git是以个人为中心,但是人人都得数据交互呀。。python程序员每天都忙着进行py交易 交互数据的方式 使用github或者码云等公有代码仓库,托管代码的地方,谁都可以看 公司内部使用gitlab私有仓库 github和gitlab的区别 github国外公共仓库不
阅读全文
摘要:1.git分支 在前面我们基本了解Git的使用方法,这一节我们看下GIt重要概念【分支】 背景 例如于超老师在开发一个同性交友网站,刚写到登录功能,代码还没写完,今天先睡觉了,所以就commit提交到本地仓库了。 假如这会另一个程序员张三不知道,还直接对这个代码继续开发,这就乱套了。 讲道理,应该这
阅读全文
摘要:7.git软件安装 Git有多种方式使用 原生命令行,才能使用git所有命令,会git命令再去用gui图形工具,完全无压力 GUI图形软件,只是实现了git的部分功能,以减免操作难度,难以记住git原生命令 不同的人会有不同的GUI图形工具,但是所有人用的git原生命令都一样,推荐学习命令 7.1
阅读全文
摘要:1.学习背景 当公司的服务器架构越来越复杂,需要频繁的发布新配置文件,以及新代码; 但是如果机器部署数量较多,发布的效率必然很低; 并且如果代码没有经过测试环境,预生产环境层层测试,最终才到生产环境,不经过测试的部署,会导致很严重的bug,因此必须要进行一定的代码测试。 因此从devops部署理念来
阅读全文
摘要:1.为什么要学zabbix-proxy https://www.zabbix.com/documentation/4.0/zh/manual/distributed_monitoring/proxies zabbix除了前面于超老师讲解的 zabbix-server / zabbix-agent模式
阅读全文
摘要:1.什么是自动注册 前面于超老师带你学习了自动发现,也就是配置好一个网络环境后,zabbix-server主动去网络环境中扫描,然后发现目标机器然后监控,此时的agent是被动等待的。 那如果需要扫描多种网段,且机器数量很大的话,你的zabbix-server服务器可就很难受了。。。 因此自动注册,
阅读全文
摘要:1.什么是zabbix自动发现 当需要监控的主机数量太多,你没办法一个个去web页面添加‘ 因此zabbix可以基于网络环境,自动发现,添加主机且监控。 自动发现可以完成 1.自动发现、添加主机 2.添加主机且指定关联的模板 zabbix的自动发现可以基于 1. ip地址、或者ip网段 2. 来自于
阅读全文
摘要:1.zabbix-agent工作模式 zabbix-agent进程,有两种工作模式,主动模式,被动视频 1.1 被动模式 被动模式是指 zabbix-server 将需要请求的数据,发给zabbix-agent,然后agent接收到请求后才进行对客户端机器数据采集,采 集完毕后发给zabbix-se
阅读全文
摘要:1.什么是web监控 zabbix除了能通过 脚本+自定义key,实现服务器数据提取监控以外 也支持对网页的HTTP请求、响应监控。 2.web监控需求 以zabbix-UI页面的登录监控,模拟登录,输入账号密码,实现首页的健康监控。 1. 模拟登录输入zabbix账号密码,登录后台,如果登录失败就
阅读全文
摘要:1.开启php的监控数据监控功能 # 使用部署了php-fpm的机器即可 # yum install php-fpm -y # 1.修改参数 [root@web-7 /etc/php-fpm.d]#grep '^pm.status' /etc/php-fpm.d/www.conf pm.status
阅读全文
摘要:1.监控nginx链接数状态status # 1.开启status页面功能 cat > /etc/nginx/conf.d/status.conf <<'EOF' server{ listen 80; server_name localhost; location /nginx_status { s
阅读全文
摘要:1.自定义模板需求 目前我们已学习了 1. zabbix监控服务器(使用模板,啥也不用操心,拿来即用) 2. 自定义监控项、触发器(自己的一些额外需求,使用zabbix监控) 3. 自定义报警方式(丰富的邮件、微信、钉钉报警)不怕收不到消息 新的需求来了,工作里,不能只有一台机器监控,很多台机器都要
阅读全文
摘要:1.钉钉报警原理流程 和微信报警类似,发送指定的数据到钉钉官方提供的API接口,钉钉会将报警信息,发送到指定的钉钉群聊,提醒所有的群成员查看,实现告警通知。 具体操作流程 创建钉钉群聊 创建自定义机器人 创建报警关键词 生成webhook认证信息 开发报警脚本 填写zabbix-UI界面的配置 测试
阅读全文
摘要:1.微信报警原理流程 注册微信企业号,通过企业号提供的信息ID、以及获取微信的API接口,就可以将服务器的报警数据,发给API,发给微信,发给关注这个公众号的所有用户、 2.注册企业微信 https://work.weixin.qq.com/wework_admin/frame 3.修改通讯录组名
阅读全文
摘要:1.为什么要自定义监控项 模板里面提供了大量的监控项,为何还要自定义? 这不废话么,,那肯定是有些你想监控的内容,模板里没有么。。 当然,zabbix支持你自定义的监控项,所以才那么流行,就是这么牛! 2.自定义监控项流程 1.自定义监控项的表现形式是(命令、脚本),只要能获取到值,就可以通过zab
阅读全文
摘要:1.zabbix架构图 zabbix核心概念 先记住如下zabbix中的核心几个概念 主机 ( HOST ) : 就是具体的一个监控对象,某一个被监控的实例,可以是一个数据库,也可以是一个操作系统。 模板 ( Template ):定义了具体一类监控对象的抽象,比如 Windows 模板,就是用来专
阅读全文
摘要:1.官网 良心官网,文档全的可怕 https://www.zabbix.com/cn/manuals 2.先装好zabbix服务端再说 zabbix安装全流程 1.配置yum仓库 https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/ 安装 rpm -
阅读全文
摘要:1.监控系统的重要性 1. 无论是小公司,也会招聘专门的监控运维岗、或是对运维软件有一定的技术要求 2. 或者是大公司,假设北京总部有70个运维,里面可能有20个SRE高级运维,3个devops运维开发,3个监控运维(维护zabbix、prometheus)、剩下的就是桌面运维(维护硬件资产、发放笔
阅读全文
摘要:1.为什么要用configMap ConfigMap是一种用于存储应用所需配置信息的资源类型,用于保存配置数据的键值对,可以用来保存单个属性,也可以用来保存配置文件。 通过ConfigMap可以方便的做到配置解耦,使得不同环境有不同的配置。 考虑真实的使用场景,像数据库这类中间件,是作为公共资源,为
阅读全文
摘要:前面的学习,我们已经基本完成了在k8s中部署一个web服务,运行pod、创建service、创建ingress对外提供域名的七层代理。 下一个环境就得去关注应用部署后的数据存储问题,容器化如何管理,k8s化如何管理。 1.什么是Volume 1.容器内部的存储数据,再容器生命周期中是很短暂的,伴随容
阅读全文
摘要:Kubernetes本身并不负责网络通信,Kubernetes提供了容器网络接口CNI(Container Network Interface),具体的网络通信交给CNI插件来负责,开源的CNI插件非常多,像Flannel、Calico。 Kubernetes虽然不负责网络,但要求集群中的Pod能够
阅读全文
摘要:这一章节是讲解 pod的编排和调度,就得用到诸多的控制器。 kubectl api-resources # 查看k8s的资源有哪些 1.控制器作用 1. pod类型的资源,如果直接删除,不会重建 2. 控制器可以帮助用户监视、并且保证相应的节点上始终运行着用户定义好的pod副本数在运行。 3. 甚至
阅读全文
摘要:Pod是什么 Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器(container)、存储资源(volume)、一个独立的网络IP以及管理控制容器运行方式的策略选项。 Pod使用主要分为两种方式: Pod中运行一个容器。这是Kubernetes最常见的用法,您可以将Po
阅读全文
摘要:k8s资源清单 再安装好k8s之后,本章开始学习k8s的具体使用玩法。 重点介绍如何使用Workload管理业务应用的生命周期,实现服务不中断的滚动更新,通过服务发现和集群内负载均衡来实现集群内部的服务间访问,并通过ingress实现外部使用域名访问集群内部的服务。 学习过程中会逐步对Django项
阅读全文
摘要:1.机器准备 部署k8s集群的节点按照用途可以划分为如下2类角色: master:集群的master节点,集群的初始化节点,基础配置不低于2c 4g slave:集群的slave节点,可以多台,基础配置不低于1c 2g 这里教程是基于非高可用版本的k8s集群,高可用是指有多个k8s-master主节
阅读全文
摘要:k8s容器编排系统 k8S是谷歌几十年来研发的一套系统,更新了运维领域的玩法。 内容很多,先快速练习玩法,知道是什么就行。 具体【为什么】再花时间慢慢学吧! 0.参考资料 1. k8s能干什么 https://kubernetes.io/zh-cn/docs/concepts/overview/#w
阅读全文