自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 docker三剑客

docker-machine作用:自动化部署docker(go语言)二进制文件: docker-machine 提取码: d26s实验环境:三台虚拟机server1,server2,server3, 其中server3作为管理端安装了docker,server1和server2并没有安装docker利用docker machine在server1和server2上自动部署docker实验步骤:安装获取docker-machine,完成server3对server1和server2的免密

2020-12-03 16:29:42 3

原创 docker安全

Docker安全Docker容器的安全性,很大程度上依赖于Linux系统自身,评估Docker的安全性时,主要考虑以下几个方面:Linux内核的命名空间机制提供的容器隔离安全Linux控制组机制对容器资源的控制能力安全。Linux内核的能力机制所带来的操作权限安全Docker程序(特别是服务端)本身的抗攻击性。其他安全增强机制对容器安全性的影响。命名空间当docker run启动一个容器时,Docker将在后台为容器创建一个独立的命名空间。命名空间提供了最基础也最直接的隔离。与虚

2020-12-01 13:54:25

原创 Docker仓库、网络、数据卷

Docker仓库Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。Docker运行中使用的默认仓库是 Docker Hub 公共仓库。搭建Docker私人仓库通过Docker公司提供的开源镜像,可以快速的搭建企业级别的私有仓库。Registry工作原理Docker Registry有三个角色,分别是index、registry和registryclient。index: 负责并维

2020-11-28 22:17:07 5

原创 Docker的安装和使用及镜像

DockerDocker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker的安装...

2020-11-24 18:57:12 28 1

原创 redis

redis 和 mysql 的区别类型上从类型上来说,mysql是关系型数据库,redis是缓存数据库作用上mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢redis用于存储使用较为频繁的数据到缓存中,读取速度快需求上mysql和redis因为需求的不同,一般都是配合使用。redis 的安装和使用安装包:链接:redis5.0 提取码: sna8源码解压,进入解压目录,make && make install , 之后进入uti

2020-11-11 22:39:09 22

原创 mysql主从复制,组复制以及高可用

实验环境模拟:一台进行源码编译过mysql.5.7.31的主机lnmp,编译目录在 /usr/local/lnmp/mysql ,主机IP为172.25.3.199/24。一台IP为172.25.3.1/24 的server1主机,两台主机都做好了解析。mysql 的主从复制基于二进制文件的主从复制步骤:通过rsync命令将lnmp主机上的nginx 源码编译后的目录发送到server1主机上,并添加mysql用户. 将mysql目录下的bin 目录写在 $PATH 中,用mysqld

2020-11-09 17:06:28 37 1

原创 nginx常规配置

实验环境搭建:一台主机名是lnmp 的虚拟机,ip 是172.25.3.199/24, 源码编译过nginx。编译后Nginx 的路径为/usr/local/lnmp/nginx宿主机ip 为 172.25.3.250/24nginx访问控制及状态监控修改nginx 的配置文件,并重启服务。测试:对stub_status 模块的测试:对访问控制的测试ngixn 开启https访问修改nginx 配置文件生成ssl证书, 并将证书移动到nginx 的配置目录

2020-11-05 22:06:32 19

原创 tomcat+nginx+memcache实现对tomcat服务的负载均衡和session共享

实验环境搭建:两台主机主机名分别为lnmp 和 server1 , ip地址分别为172.25.3.199和172.25.3.1什么是tomcat?由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器(服务器),也是当前应用最广的JavaWeb服务器(免费)。tomcat7.0.37 源码安装源码包: 链接: tomcat7.0.37 提取码: 4jetjdk工具包: 链接: jdk工具包提取码: b2d8tar zxf ap

2020-11-04 21:37:23 15

原创 memcached 和 openresty 实现高速缓存机制

什么是memcached?memcached是一个免费开源的、高性能的、具有分布式内存对象的缓存系统,通过减轻数据库负载来加速动态web应用。实现步骤

2020-11-02 18:19:16 33

原创 mysql 5.7.31+ php7.4.12 + nginx1.91.1源码编译

mysql5.7.31源码编译源码包:安装mysql-boost-5.7.31.tar.gztar zxf mysql-boost-5.7.31.tar.gz 解压安装包到当前路径yum install gcc gcc-c++ ncurses-devel openssl-devel cmake bison 解决安装mysql需要的软件依赖性cd mysql-5.7.31 进入到解压目录开始进行编译,执行下边这个命令cmake -DCMAKE_INSTALL_PREFIX=

2020-11-02 15:31:44 81 2

原创 haproxy

实验环境在linux环境中,通过母盘是redhat7.6的操作系统,克隆搭建四台域名分别为node1,node2, node3,node4; 主机名分别为server1,server2,server3, server4的四台虚拟机。(名称可以任选)给四台主机分别配置好各自的ip地址和dns地址解析,实现四台虚拟机可以互相ping通。对于虚拟机的ip和对应的dns解析可以参考配置好四台主机的yum源仓库,(可以通过宿主机的httpd服务,搭建网络仓库)关闭掉所有虚拟机的防火墙,并将所有主

2020-10-30 13:17:09 18

原创 keepalive+Nginx反向代理实现apache服务的负载均衡

Nginx源码安装Nginx源码包:链接: Nginx-1.19.1 提取码: x4cg源码安装步骤:tar zxf nginx-1.19.1.tar.gz解决nginx源码编译的依赖性 yum install gcc pcre-devel openssl-devel -y检测安装环境./configure --prefix=/usr/local/nginx --with-http_ssl_module --prefix= 参数后跟的是安装路径在Makefile文件所在的目录,进

2020-10-29 21:06:30 38

原创 keepalive+Lvs 实现高可用负载均衡

实验环境搭建在linux环境中,通过母盘是redhat7.6的操作系统,克隆搭建四台域名分别为node1,node2, node3,node4; 主机名分别为server1,server2,server3, server4的四台虚拟机。(名称可以任选)给四台主机分别配置好各自的ip地址和dns地址解析,实现四台虚拟机可以互相ping通。对于虚拟机的ip和对应的dns解析可以参考配置好四台主机的yum源仓库,(可以通过宿主机的httpd服务,搭建网络仓库)关闭掉所有虚拟机的防火墙,并将所

2020-10-29 14:26:58 29 2

原创 利用pcs +pacemaker +corosync 实现(HA)高可用集群

实验环境搭建在linux环境中,通过母盘是redhat7.6的操作系统,克隆搭建三台域名分别为node1,node2, node3,主机名分别为server1,server2,server3的三台虚拟机。(名称可以任选)给三台主机分别配置好各自的ip地址和dns地址解析,实现三台虚拟机可以互相ping通。对于虚拟机的ip和对应的dns解析可以参考配置好三台主机的yum源仓库,(可以通过宿主机的httpd服务,搭建网络仓库)对于做高可用节点的虚拟机server1和server2则需要

2020-10-26 20:12:49 99 2

原创 面向对象的高级特性

类方法和静态方法类方法@classmethod默认传递类的一个装饰器静态方法@staticmethod默认什么参数的不传的一个装饰器示例:代码:class Student(object): def __init__(self, name): print('实例方法-self', self) self.name = name def learning(self): print('年龄为%d的%s正在学习' % (self.__

2020-10-14 15:50:44 29

原创 Python中的系统基础信息模块和链表的生成

psutil模块psutil(python system and process utilities), 是系统监控及进程管理的且跨平台的系统管理库,实现命令行中类似ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop等等命令的功能。常用的获取系统性能的命令获取系统的cpu信息命令作用psutil.cpu_count(logical=True)查看当前主机逻辑cpu的个数psu

2020-10-14 11:34:36 27

原创 面向对象编程的三大特性

对象和类类(Class)是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。对象(Object)是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。如何将类装换为对象实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = 类名(参数1,参数2…参数n)构成。面向对象的三大特性封装定义:封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。_ _

2020-10-09 15:48:21 64 2

原创 批量定时发送邮件

实现批量定时发送邮件需要的模块yagmail模块作用:借用该模块的内置参数,来实现发送邮件的过程步骤:导入包yagmail 之后, 通过mail = yagmail.smtp()实例化一个对象出来,需要传入的参数user=“发件人”,password=“授权码”, host=“smtp服务器”获取授权码的位置(qq邮箱为例):通过mail.send()模块发送邮件内容,参数:(to=“收件人”,subject=“邮件的主题”,contents=“邮件的正文”, attachments=“

2020-10-09 13:38:25 73 1

原创 模块与包

模块什么是模块?模块就是工具包,要想使用这个工具包中的工具(就好比函数),就需要导入这个模块模块的基本操作注:导入模块实际上就是执行python文件的过程__name__的值:1. 如果是被导入执行时,’__name__‘的值是模块名2. 如果是在模块中执行时,’__name__‘的值是‘__main__’示例:自己创建的模块:对模块的调用:对模块的导入方式包什么是包?包将有联系的模块组织在一起,有效避免模块名称冲突问题,让应用组包织结构更加清晰包的导入导入包的过程,实际上

2020-10-08 14:32:04 20

原创 异常处理

Python中常见的异常异常含义AttributeError属性异常;试图访问一个对象没有的树形,比如foo.x,但是foo没有属性xIOError输入/输出异常;基本上是无法打开文件ImportError无法引入模块或包;基本上是路径问题或名称错误IndentationError语法错误(的子类) ;代码没有正确对齐IndexError下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]KeyError试图访问字典里不存在的键

2020-10-08 13:50:41 24

原创 高级特性

生成式生成器迭代器可迭代对象闭包装饰器内置高阶函数

2020-10-07 11:03:42 39

原创 持久化文件操作

文件的打开方式python对于文件都采用默认的操作步骤:打开——操作——关闭,对文件进行操作之后一定要关闭它,关闭文件将对文件释放控制权使文件恢复存储状态,此时另一个进程可以操作这个文件。文件的常见打开方式:方式意义r只读打开w只写打开(如果文件不存在,则会创建改文件;文件存在,则会清空该文件的内容)rb用于打开一些二进制文件,比如:图片或者视频a用于对该文件添加内容+通常和w或者a一起使用,表示读写打开改文件用open的方式打开文件打开格

2020-10-06 14:32:55 39

原创 Python中的函数

函数目的:为了提高编写的效率以及代码的重用函数的创建和调用创建:用def来定义一个函数可以有return 值 也可以没有调用:直接使用函数名示例:def max_num(x: float, y: float) -> float: """ 求两个数的最大值 :param x: 传入的第一个数值 :param y: 传入的第二个数值 :return: 两个数的最大值 """ z = x if x > y else

2020-10-01 15:59:39 61

原创 内置数据结构集合和字典

集合(无序不重复数列)集合的创建使用大括号 { } 或者 set() 函数创建集合;注意:创建一个空集合必须用 set() 而不是 { }{ } 是用来创建一个空字典。示例:对集合内容的添加add() 添加单个元素update() 添加多个元素示例对集合的内容进行删除remove() 移除集合内的指定元素pop() 随机移除集合内的某个元素clear() 移除集合中的所有元素示例:对两个集合求交集和并集& 交集| 并集示例 注:不支持重复和连接

2020-10-01 13:21:19 1726

原创 内置数据结构列表和元组

序列定义:成员有序排列的,且可以通过下标偏移量访问到它的一个或者几个成员,这类类型统称为序列。序列数据类型包括:字符串,列表,和元组类型。特点: 都支持下面的特性索引与切片操作符成员关系操作符(in , not in)连接操作符(+) & 重复操作符(*)列表List(可变的数据类型)作用:可以存储多种数据类型的数据集(可以嵌套列表)对列表内容的增加append() 追加作用:extend() 拉伸insert()插入...

2020-10-01 10:49:55 39

原创 内置数据结构字符串

字符串字符串的表示方式字符串的表示方式:字符串或串(String)是由数字、字母、下划线组成的一串字符。Python 里面最常见的类型。 可以简单地通过在引号间(单引号,双引号和三引号)包含字符的方式创建它。一个反斜线加一个单一字符可以表示一个特殊字符,通常是不可打印的字符示例:三重引号的两个作用 :作用1: 进行多行注释,Python中单行注释是#,多行注释的时候每行都写一个#,或者采用连续的三个双引号作用2: 定义多个字符串, 为避免使用转义换行符 \n,通常会用在定义S

2020-09-28 15:47:21 45

原创 Python中三大流程控制

顺序流程控制定义: 代码从上到下依次执行三种书写方式:标准的if 语句name = input('Your name:')if name != 'root': print(name, 'is not super user!!')测试:分支流程控制(if)分支语句 if - else语句name = input('Your name:')if name != 'root': print(name, 'is not super user!!')else: p.

2020-09-25 20:33:16 51

原创 Python的基础语法

语言进化史基础语法变量定义:变量是内存中的一块区域。对象赋值实际上是对象的引用命名规则:变量名由字母,数字,下划线组成,不能以数字开头常用变量类型符号含义%s字符串%e对数字进行科学计数法表示%f浮点型(%.2f表示显示小数点后两位)%i整型...

2020-09-24 23:28:21 29

原创 Ansible中的角色使用

ansible 角色简介Ansible roles 是为了层次化,结构化的组织Playbookroles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便>捷地include它们roles一般用于基于主机构建服务的场景中,在企业复杂业务场景中应用的频率很高以特定的层级目录结构进行组织的tasks、variables、handlers、templates、files等;相当于函数的调用把各个功能切割成片段来执行。roles目录结构files存放copy或

2020-09-23 18:16:19 11

原创 Ansible中的任务执行控制

loop循环简单循环:loop: ##赋值列表 - value1 - value2 - ...实例:vim test.yml 编辑playbook ---- name: test loop hosts: 172.25.254.100 tasks:- name: touch file file: path: "/mnt/{{item.path}}" owner: "{{item.owner}}" state: touch lo

2020-09-23 17:13:36 25

原创 Ansible中的变量及加密

变量命名要求:只能包含数字,下划线,字母只能用下划线或字母开头变量级别全局: 从命令行或配置文件中设定的paly: 在play和相关结构中设定的主机: 由清单,事实收集或注册的任务变量设定和使用方式在playbook中直接定义变量在文件中定义变量变量文件的内容:变量的使用格式"{{变量名字}}""设定主机变量和清单变量在定义主机变量和清单变量时使用目录设定变量注:在使用目录设定变量时,当执行playbook时,需要变量目录所在的

2020-09-16 15:53:21 56

原创 使用Ansible中的playbook

PlaybookPlaybook 的功能playbook 是由一个或多个play 组成的列表Playbook 文件使用YAML来写的yaml简介:是一种表达资料序列的格式,类似XML特点:可读性好和脚本语言交互性号易于实现适用程序执行流梳理方式可扩展性强语法简介:在文件中用[—]开始在文件中用[…]结尾次行一般书写文件内容缩进严格大小写敏感key/value可以多行书写也可一行书写,一行书写用,隔开value可以是个字符串,也可是list一个play需要包括

2020-09-14 15:56:09 28

原创 Ansible命令运行方式及常用模块

实验环境搭建:主控主机hostname : ansible.westos.comipaddress:172.25.254.100被控主机主机1hostname : node1.westos.comipaddress : 172.25.254.1主机2hostname : node2.westos.comipaddress : 172.25.254.2主机3hostname : node3.westos.comipaddress : 172.5.254.3ansible

2020-09-14 10:26:55 150 1

原创 Ansible的安装及部署

Ansible的安装配置epel源安装仓库地址:http://ftp.sjtu.edu.cn/fedora/epel/8/Everything/x86_64dnf install ansible -yansible的基本信息:etc/ansible/ansible.conf全局配置文件,默认很少修改etc/ansible/hosts全局主机清单清单文件Anisble清单清单就是ansible控制主机的列表/etc/ansible/hosts全局清单文

2020-09-09 14:39:10 62

原创 shell中的运算

运算符号+加法-减法*乘法/除法%除法后的余数**乘方++自加一–自减一<小于<=小于等与>大于>=大于等与=等于j+=ij=j+ij*=ij=j*ij/= ij=j/ij%=ij=j%i运算指令(())letexprbc$[ ]测试:bc << EOF1+2EOF((a=1+2))let a=1

2020-09-09 10:28:27 29

原创 shell的执行流控制

forfor定义变量do使用变量,执行动作done结束标志格式1:#!/bin/bashfor WESTOS in `seq 2 2 10`doecho $WESTOSdone注:中间的2代表的步,每隔两位输出2到10的一个数格式2:for WESTOS in 1 2 3doecho $WESTOSdone格式3:for WESTOS in {10…1}doecho $WESTOSdone注:正序或者逆序显示格式4

2020-09-09 10:14:30 24

原创 shell脚本中的变量

变量的定义定义本身变量就是内存一片区域的地址变量存在的意义命令无法操作一直变化的目标用一串固定的字符来表示不固定的目标可以解决此问题shell脚本中变量的定义方法环境级别export a=1在环境关闭后变量失效用户级别vim ~/.bash_profileexport a=1系统级别vim /etc/profileexport a=2vim /etc/profile.d/westos.shexport b=3env 查看当前系统的变量

2020-09-08 22:03:16 26

原创 shell脚本的基础知识

什么是shell脚本中命令的解释器shell脚本的意义记录命令执行的过程和执行逻辑,以便以后重复执行脚本可以批量处理主机脚本可以定时处理主机如何创建shell脚本#!/bin/bash ##幻数通过编辑/etc/vimrc 文件实现vim自动添加脚本首部如何执行shell脚本手动在环境中开启指定解释器sh script.sh直接在当前环境中运行shell中的指令不开启新的shellsource script.sh. script.sh开启脚本中指定的

2020-09-08 21:16:07 16

原创 文本处理工具(grep,sed,awk)

grepgrep -E = egrepgrep 格式格式:grep 匹配条件 处理文件grep root passwd过滤root关键字grep ^root passwd以root开头grep root$ passwd以root结尾grep -i root passwd后略大小写grep -E “<root” passwdroot字符之前不能有字符grep -E “root>” passwdroot字符之后不能有字符grep -

2020-09-08 20:58:16 12

原创 shell中常用的基础命令

diff输出信息[num1,num2][a|c|d][num3,num4]num1,num2第一个文件中的行a添加c更改d删除<第一个文件中的内容>第二个文件中的内容num3,num4第二个文件中的行常用参数-b忽略空格-B忽略空行-i忽略大小写-c显示文件所有内容并标示不同-r递归对比目录-u合并输出 vimdiff也可以比较两个文件的不同patchp

2020-09-07 21:48:24 27

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除