自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 tcgetattr: Inappropriate ioctl for device错误(shell脚本中远程ssh)

之前在写一个脚本的时候,脚本里面需要批量化远程登陆主机进行操作,认识执行时遇到了tcgetattr: Inappropriate ioctl for device报错之前用来测试的脚本:#!/bin/bashssh -tt 主机名/主机ip > /dev/null << EOF chongfu=`处理的命令 | awk 'NR%3==0' | awk '{p...

2019-11-22 18:21:50 7512

原创 MHA实现图书借阅系统的后端mysql集群存储且利用Zabbix+OA实现云警告

在学校的数据库课程实验中老师让做一个程序,要求必须连接mysql,然后我就写了一个python程序,实现了一个简单的图书借阅系统,具体请看python连接数据库实现简单的图书借阅系统。在实验后,我就想到既然已经使用数据库存储数据了,那么作为一个想要成为运维工程师的我来说何不利用所学知识,将整个后端数据库做的复杂一点,模拟企业中的mysql的集群,利用mha实现mysql的GTID主从复制,高可用,...

2019-07-12 13:07:27 553

原创 saltstack使用api接口实现推送

我们前面讲过了saltstack的c/s,ssh等推送方式,其实我们还可以使用api推送的方式来馆及节点,下面我们就来部署一下api接口的saltstack推送1.之前因为使用ssh关掉了minion,我们重新先开启[root@server2 minion]# systemctl start salt-minion[root@server3 minion]# systemctl start ...

2019-06-19 21:31:11 967

原创 saltstack通过ssh管理节点

我们在之前学习ansible时了解到ansible是通过ssh管理节点,而saltstack是默认使用c/s来控制的,那么我们的saltstack其实也是可以使用ssh来管理节点的部署过程1.关闭server2和server3的minion[root@server2 minion]# systemctl stop salt-minion[root@server3 minion]# syst...

2019-06-19 20:49:50 686

原创 salt-syndic多级管理

我们首先要理解salt-syndic是干什么的。我们在初中的历史课本上应该听过欧洲的奴隶制度,其中有一句话叫做“我的附庸的附庸不是我的附庸”,在这里我们的syndic就像加上master和minion就有点类似于这种关系,master的管理只需要调配syndic即可,而syndic则只需要根据master的调配去管理自己下面的minion。或者我们可以理解为所以syndic是master的助手,否...

2019-06-19 20:35:19 479

原创 saltstack添加自定义模块

我们在之前已经学习了好几个saltstack的模块,如test,cmd等等模块,其实这些模块都是用python写好的脚本,直接调用即可,那么我们就可以自己通过简单的python书写脚本来自定义模块1.新建模块目录[root@server1 ~]# mkdir /srv//salt/_modules[root@server1 ~]# cd /srv/salt/_modules/2.编写py...

2019-06-19 19:28:26 685

原创 MySQL存储saltstack的推送消息

在server1(master)端向minion端推送之后,minion端会保存推送信息24小时,可是为了日后便于查看推送的信息,我们应该将这些信息长期存储起来,而存放在数据库中是个不错的选择在这里我们的server1为master,server2,3为minion实验过程1.首先我们得知道我们的推送信息默认时存在哪里的如图这些目录就是我们存储推送消息的2.master端安装maria...

2019-06-18 22:44:56 305

原创 saltstack部署keepalived的高可用

我们之前学习了saltstack的一些基本的用法,那么我们就在本章来推送一个keepalived的高可用,实现http和nginx的高可用1.在master的/srv/salt下建立keepalived目录,进到目录里边编辑安装keepalived的sls推送文件[root@server1 salt]# mkdir keepalived[root@server1 salt]# cd keep...

2019-06-18 20:28:30 223

原创 saltstack之JINJA模块

我们在之前的ansible模块中使用过模板j2,他其实就是jinja模块的一种。应该称为jinja2,那么我们在saltctack中也是有模板的,它使用的就是jinja模块一、调用jinja1.脚本指定jinja参数[root@server1 pillar]# cd /srv/salt/apache/[root@server1 apache]# vim install.sls http...

2019-06-18 19:27:16 237

原创 Saltstack的Grains和Pillar(角色管理)

一、Grains工具:(静态)Saltstack里的Grains功能,讲的是minion端的静态变量,在master端通过Grains可以获得minion对应的变量值。1.打开server2的grains工具包[root@server2 ~]# cd /etc/salt/[root@server2 salt]# vim minion120 grains:121 roles:1...

2019-06-18 18:47:49 356

原创 SaltStack的安装及简单部署

SaltStack简介:SaltStack是基于Python开发的一套C/S架构配置管理工具(服务器端称作Master,客户端称作Minion),它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理。号称世界上最快的消息队列ZeroMQ使得SaltStack能快速在成千上万台机器上进行各种操作。SaltStack的主要功能:Saltstack最主要的...

2019-06-18 16:01:06 333

原创 自动化运维工具ansible之playbook的使用

playbook?1.简介Playbooks是一种完全不同的运用Ansible的方式,而且是非常之强大的;也是系统ansible命令的集合,其利用yaml语言编写,运行过程,ansbile-playbook命令根据自上而下的顺序依次执行。简单来说,Playbooks 是一种简单的配置管理系统与多机器部署系统的基础。与现有的其他系统有不同之处,且非常适合于复杂应用的部署。同时,Playboo...

2019-06-17 23:05:14 461 1

原创 ansible--自动化运维工具

一、什么是ansible?ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:连接插件c...

2019-06-17 11:13:45 332

原创 Git学习--搭建github远程仓库

为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。搭建github远程仓库1.首先在www.github.com官网上注册一个账号,创建自己的仓库,只能是公有的,因为在github上创建私人是需要收费的2.创建一个项目demo3.以ssh方式上传代码或者获取代码,所以我们要将获取shell和远端之间的密钥...

2019-06-13 17:50:50 528

原创 Git搭建本地仓库及其使用

GIT1.什么是git?Git是目前世界上最先进的分布式版本控制系统。可以有效、高速地处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitK2.git和svn的区别其实在我们的日常学习或者工作中我们也用过和git类似的仓...

2019-06-13 16:50:09 540

原创 Docker--k8s集群搭建

一、k8s简介1.简介官方中文文档:https://www.kubernetes.org.cn/docsKubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。Kubernetes一个核心的特点就是能够自主的管理容器来保证云平...

2019-06-12 21:58:11 373

原创 docker swarm集群部署

Swarm 是 Docker 公司在 2014 年 12 月初发布的一套较为简单的工具,用来管理 Docker 集群,它将一群 Docker 宿主机变成 一个单一的,虚拟的主机。Swarm 使用标准的 Docker API接口作为其前端访问入口。换言之,各种形式的 Docker Client(docker client in go,docker_py,docker 等)均可以直接与 Swarm ...

2019-06-12 20:05:38 4660 1

原创 Docker compose多容器架构服务--负载均衡

Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr)。Docker Compose 运行的目录下的所有文件(docker-compose.yml, extends 文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包...

2019-06-12 16:51:11 543

原创 Docker安全加固之--LXCFS

我们在上一章讲过了docker容器的安全,那么在这一章我们再来讲一下lxcfs来提供容器中的资源可见性。lxcfs是一个开源的FUSE(用户态文件系统)实现来支持LXC容器。LXCFS通过用户态文件系统,在容器中提供下列 procfs 的文件:/proc/cpuinfo/proc/diskstats/proc/meminfo/proc/stat/proc/swaps/proc/u...

2019-06-12 15:41:01 5677 3

原创 Docker安全

前言docker内部的隔离机制是通过namespace来做的,但是在Linux系统里面很多东西是不能通过namespace来隔离的,比如:时间。容器的资源控制,而namespace把容器在我们的linux系统网络成为独立个体,并不能做资源限制,很可能一个容器上面跑了一个java程序,但是这个容器把我们的内存占用完了,那么这是不合理的。所以一定要对docker容器的配额进行限额,资源限制。d...

2019-06-11 22:37:51 428

原创 Docker数据卷管理

docker数据卷数据卷是目录或文件,不是块设备。容器可以读写volume中的数据。volume数据可以持久化保存。docker数据卷提供两种卷bind mount 是将主机上的目录或文件mount到容器里。 使用直观高效,易于理解。 使用 -v 选项指定路径,格式 <host path>:<container path> bind mou...

2019-06-11 21:27:35 841

原创 Docker的网络模式学习

在之前我们学习过了Docker的一些基本知识,我们可以注意到在我们启动一个docker容器后系统会自动生成一个ip,那么有ip就一定会有网络,那么我们今天就来学习docker的网络。Docker的四种网络模式(Bridge,Host,Container,None)Docker在启动时会开启一个虚拟网桥docker0,容器启动后都会被桥接到docker0,并自动分配一个IP地址每一个容器都...

2019-06-11 17:55:45 665

原创 Docker搭建私有仓库

一、什么是私有仓库:仓库是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务器(Registry)混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载。 国内的公开仓库包括 D...

2019-06-04 21:28:27 393

原创 Docker镜像的优化

我们在使用docker镜像的时候会发现一些镜像运行的话会非常的大,占用系统资源,那么我们其实是可以通过优化来解决这样的问题的镜像的优化准则:选择最精简的基础镜像减少镜像的层数清理镜像构建的中间产物注意优化网络请求尽量去用构建缓存使用多阶段构建镜像那么接下来我们以为rhel7镜像nginx的源码安装为例来做优化1.首先获得一个nginx的源码包[root@server1 do...

2019-06-04 19:54:55 1479 2

原创 Docker容器——镜像的封装以及Dockerfile的编写

一、Dockerfile的编写 编写Dockerfile实现安装httpd1.导入rhel7的镜像[root@server1 ~]# docker load -i rhel7.tar e1f5733f050b: Loading layer 147.1MB/147.1MB2.编写Dockerfile[root@server1 ~]# docker load -i rhel7.ta...

2019-06-04 17:24:49 1052

原创 docker从阿里云拉取镜像

前言:我们在使用docker的时候避免不了镜像的下载,但是由于种种原因,我们可能并不能从国外的网站下载镜像,或者下载速度太慢,那么当我们遇到这种情况就可以从我们的国内的一些docker仓库下载,在这里我推荐阿里云的镜像仓库一、使用阿里云的镜像加速器,加快我们的下载速度1.首先我们需要有一个自己的阿里云帐号,登陆https://www.aliyun.com自行注册2.选择控制台——》产品与...

2019-06-03 17:41:46 6384

原创 Docker初识——docker的安装,镜像使用及简单指令

一、什么是dockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。二、Docker的安装docker的安装可以自行到官网上去寻找docker的rpm(rhel)自行安装这里我们准备的是docker18.06的版本...

2019-06-03 16:55:18 341

原创 Python连接Mysql数据库实现图书借阅系统

相信大家在学习python编程时绝对离不开数据库的连接,那么我们就用python来连接数据库实现一个简单的图书借阅系统。其实也很简单,就是在我们的程序中加入sql语句即可数据库的表结构我们在这里需要三张表,一张用户表,一张图书表和一张借阅表。注意我们的数据库命名为bbs(book borrow system)1.用户表2.图书表bookname:书名author:作者booknu...

2019-05-31 09:23:58 13582 12

原创 Harbor企业级docker仓库的搭建

一、Harbor简介1.Harbor介绍Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Regi...

2019-05-27 21:56:40 313

原创 Hadoop+Zookeeper实现hadoop高可用

一、zookeeper高可用1.在上一章的基础上关闭之前的服务,并清理环境[hadoop@server1 hadoop]$ sbin/stop-dfs.sh [hadoop@server1 hadoop]$ jps2244 Jps[hadoop@server1 hadoop]$ rm -fr /tmp/*[hadoop@server2 hadoop]$ rm -fr /tmp/*[h...

2019-05-23 20:25:20 5023 1

原创 hadoop分布式系统基础架构学习

什么是Hadoop?Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(...

2019-05-21 13:14:34 1489

原创 mfs+pacemaker+pcs+corosync+iscsi+fence实现mfs的集群管理,高可用等

在上一章我们学习了mfs文件系统,那么我们在这一章将使用pacemaker,pcs,corosync,iscsi,fence来实现高可用,集群管理等实验环境:我们在上一章的基础上增加一个高可用节点server4作为master1.server4安装master,编辑域名解析,开启服务2.server1和server2配置高可用yum源3.server1,server4上安装相...

2019-05-20 21:38:59 695

原创 MFS分布式文件系统

什么是MFS分布式文件系统MooseFS是一个具有容错性的网络分布式文件系统。它把数据分散存放在多个物理服务器上,而呈现给用户的则是一个统一的资源。常规特征:对标准的文件操作来说,mfs用起来跟其它的类unix系统类似:1、分层次的结构(目录树)2、存储POSIX文件属性(权限、最后访问和修改时间)3、支持特殊文件(块和字符设备、管道以及套接字)4、符号连接和硬连接5、对文件系统的...

2019-05-20 11:41:21 435

原创 基于rhel7的nginx的日志切割

我们在日常的生产环境中,日志文件的产生是必不可少的,由其像是nginx服务器这种高并发服务器更会产生大量的日志,那么每天的日志大小就会非常的大,对我们的管理造成很大影响。那么我们就需要将日志按照定期的时间对其进行分割,并对分割的日志备份,然后再产生新的日志,方便管理。这就是日志分割!1.创建每天日志切割后日志存放目录[root@server1 sbin]# cd /usr/local/ngin...

2019-05-08 13:57:29 204

原创 rhel7下的nginx在不暂停服务的基础上实现nginx的版本升级(平滑升级/热生级)

引言:我们在世纪的生产环境中,基本上任何时刻都会有客户访问我们的nginx服务器(假定我们用的是nginx服务器)。那么如果我们预期要对nginx的版本进行更新,但是我们一定要注意的是我们决不能将nginx暂时关闭,然后升级后再启动,这样明显对于用户的体验要大打折扣,那么我们就要用到我们再应用中使用的平滑升级,即再不管比nginx服务的同时完成对nginx的更新nginx平滑升级的基本思想:...

2019-05-08 13:36:12 374

原创 redhat或centos等系统的命令无法补全怎么办?一招解决

我们在学习linux系统中离不开虚拟机的使用,那么大家一定在新建好的虚拟机上敲打命令的时候会有些命令无法补全的时候,然而已经熟练使用tab补全的我们会非常的不习惯,那么接下来我们教大家如何使我们的命令补全1.无法补全的模样,我们以更换主机名为例这时我们疯狂的按tab却并没有用2.安装bash-completionyum install -y bash-completion3.寻找...

2019-05-01 20:03:36 1461 3

原创 nginx+tomcat+memcache实现负载均衡和session交叉存放

实验环境:同前一章LNMP架构(3)实验环境相同一,在server1上安装jdk因为我们的tomcat是java的实现,所以我们需要安装jdk,并制作软连接2.编辑全局变量vim /etc/profile测试生成的环境变量3.编写一个java文件检测jdk环境是否正确4.同样将tomcat压缩包解压到/usr/local下,并且制作软连接,开启tomcat5.编辑n...

2019-04-30 16:11:42 211

原创 LNMP架构(4)——OpenResty实现nginx前端缓存

我们在上一章学习了memcache对php页面的加速,那么我们在这一章来学习使用OpenResty来实现对nginx前端的缓存OpenResty?OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenRe...

2019-04-30 11:30:32 280

原创 LNMP架构(3)——Memcache分布式交叉存储实现php页面访问速度与命中率的提高

Memcache?MemCache的工作流程如下:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性...

2019-04-30 10:28:30 210

原创 LNMP架构(2)--Discuz论坛的推送

我们在之前学习LAMP架构时就通过Discuz论坛的推送来帮助我们理解LAMP架构,那么今天我们同样用DIscuz来帮我们理解LNMP1.获得Discuz论坛模版安装包关于Discuz模版的获取可以查看我之前关于lamp推送discuz的博客,这里就不做过多的讲解了2.保证mysql,php,nginx开启3.解压论坛模版安装包到nginx的默认发布目录unzip Discuz_X...

2019-04-29 21:55:28 150

空空如也

空空如也

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

TA关注的人

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