![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
运维
Man_In_The_Night
这个作者很懒,什么都没留下…
展开
-
ceph osd 磁盘损坏处理
(一) 从 ceph 删除该 osd1、登陆 ceph mon 节点,查看坏掉的 osd2、mon 上执行 out osd.xceph osd out osd.x3、从 crush map 中删除 osd.x,防止它再接受数据ceph osd crush remove osd.xceph auth del osd.xceph osd rm osd.x[root@bakmtr01 ~]# ceph -s cluster: id: 0e38e7c6-a704-41原创 2020-12-30 16:23:30 · 2447 阅读 · 0 评论 -
centos7 安装指定版本的 mariadb
环境:centos7.61、配置mariadb源[root@bdcplmslave03 ~]# cat /etc/yum.repos.d/mariadb.repo[mariadb]name = MariaDBbaseurl = https://mirrors.ustc.edu.cn/mariadb/yum/5.5/centos7-amd64/gpgkey= https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDBgpgcheck原创 2020-12-17 11:46:24 · 1001 阅读 · 0 评论 -
jenkins 添加 vm 节点
环境: centos7,vm ip 192.168.116.6,docker-ce 18.09.61、部署 jenkinsmkdir jenkins_homedocker run -d -v jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts如果出现日志报错:touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’:原创 2020-12-17 11:31:04 · 377 阅读 · 0 评论 -
openstack 删除计算节点
停止计算节点服务,此时该节点上的 vm 还能使用[root@k8s01 ~]# nova service-list | grep cmp38| aeebc762-6bf8-49be-8809-e779658f0411 | nova-compute | cmp38 | nova | enabled | up | 2020-09-18T11:26:24.000000 | - | False |[root@k8s01 ~]# nova原创 2020-12-15 14:17:01 · 1280 阅读 · 0 评论 -
openstack router 在网络节点间迁移
gtw03 节点挂掉,导致该 L3 agent 上的 router router3 失联,导致连接该 router 的 vm 失联目的:将 router3 迁移到 gtw021、查看 router[root@k8s01 ~]# neutron router-list2、查看 router 对应的 L3 agent host[root@k8s01 ~]# neutron l3-agent-list-hosting-router router3neutron CLI is deprecated a原创 2020-12-15 14:16:13 · 550 阅读 · 0 评论 -
openstack 创建 ha router
创建新 router,设置为 ha,设置外部网关openstack router create --ha router2openstack router set router2 --external-gateway network21如果是修改已经在使用的 router,需要先关闭 router(这时该 router 下面的 vm 会断开与外部的联系),再修改[root@k8s01 ~]# openstack router set myrouter --disable[root@k8s01原创 2020-12-15 14:15:18 · 346 阅读 · 0 评论 -
DevOps 小组运维管理手册
参考《unix/linux 系统管理技术手册》组织需求维护一份开放任务的列表给自己的任务排列出优先级,并分配资源向用户和企业沟通任务状态监视计算环境,包括安全监视跟踪新出现的技术拓展 IT 人员的技能帮助遵守规章制度编写文档,记录可重复性的过程,可复用的 ansible 脚本最好及时将自己的文档更新到 gitlab,维护好 devopshandbook运维手册评测针对协商目标的进展情况,并报告状态指定容灾规划,并且做好准备要有足够的灵活性,在让用户高兴的同时也能足够遵守纪律,进而原创 2020-11-27 16:52:33 · 747 阅读 · 0 评论 -
istio 部署
环境:kubernetes v1.11.5,istio 1.3.2,centos7安装部署1、 github 下载 istio1.3.2 版本,解压到 istio-1.3.22、创建 namespace istio-system[root@k8s01 istio-1.3.2]# kb create ns istio-system3、创建 crd[root@k8s01 istio-1.3.2]# helm template install/kubernetes/helm/istio-init/原创 2020-10-29 13:37:15 · 601 阅读 · 0 评论 -
kubelet 证书过期导致 k8s 集群 notready
pod 部署不上[root@infra-k8s01 ~]# kb get po -n devNAME READY STATUS RESTARTS AGErecommend-system-5944d76fc7-hl242 0/1 Pending 0 43m查看 pod 信息[root@infra-k8s01 ~]# kb describe po recommend.原创 2020-10-27 10:42:04 · 1844 阅读 · 0 评论 -
centos7 使用 supervisor 后台管理程序
环境: centos7.6 ,python3.6.8 , supervisord 3.4.0使用 pip 部署的 supervisord 出现了问题,配置修改错误,所以改用 yum 安装 supervisord1、安装 epel 源,略2、安装 supervisordyum install -y supervisord3、配置 supervisord这里添加 2 个需要启动的程序[root@mapleaves ~]# cat /etc/supervisord.d/microblog.ini原创 2020-10-23 16:38:10 · 233 阅读 · 0 评论 -
kubernetes 离线安装 kubeflow
环境: centos7.6,kubernetes 1.18.9,kubeflow 1.1.0不推荐使用 kubernetes 1.18.9 部署 kubeflow 1.1.0,太多问题,即使官方说没有发现问题,本实验中 seldon 始终部署失败,估计是 apiversion 的问题。seldon 部署官方说 kubernetes <= 1.17https://www.kubeflow.org/docs/started/k8s/overview/部署 kubeflow 还是使用 kubernet原创 2020-10-23 10:13:27 · 1483 阅读 · 1 评论 -
查看 namespace 下面所有的资源并删除
查看 namespace 下面所有的资源kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n {namespace}删除 namespace 下面所有的资源(慎重)kubectl delete all --all -n {namespace}参考文章:https://juejin.im/post/684490397494原创 2020-10-20 17:18:18 · 13120 阅读 · 0 评论 -
kubernetes 查看哪些 pod 正在使用 pvc
[root@k8s01 ~]# cat pvc-pod.shkubectl get pods --all-namespaces -o=json | jq -c '.items[] | {name: .metadata.name, namespace: .metadata.namespace, claimName:.spec.volumes[] | select( has ("persistentVolumeClaim") ).persistentVolumeClaim.claimName }'[roo原创 2020-10-20 16:26:25 · 4090 阅读 · 1 评论 -
kubelet 不断重启导致节点 notready
问题:kubectl get node 显示一个节点 notready 状态ssh 登陆到该节点:1、查看 kubelet 状态,发现 kubelet 在不断重启。2、查看 kubelet 日志,发现每次出现 Failed to start cAdvisor inotify_add_watch /sys/fs/cgroup/cpuset/kubepods/podxxx: no space left on device 就会重启 kubelet解决方法:增加 inotify watcher 最大数原创 2020-10-17 17:30:39 · 2101 阅读 · 0 评论 -
EFK 收集 httpd 日志
环境:centos7.6、filebeat7.9.2、 elasticsearch7.9.2、kibana7.9.2,Apache/2.4.6kibana 未配置账号密码,需要注意网络安全1、安装 ElasticSearch官网下载 elasticsearch-7.9.2-x86_64.rpmrpm -ivh elasticsearch-7.9.2-x86_64.rpm启动 ElasticSearchsystemctl start elaticsearch2、安装 kibana官网下载原创 2020-10-17 15:31:08 · 215 阅读 · 0 评论 -
ceph pg Troubleshoting
Troubleshoting pgstuck placement grouppg 显示 degraded 和 peering 状态很正常,这些信息一般表明对失败的恢复过程采取的正常行动。但是,如果 pg 长时间处于这种状态,表明可能问题很严重。inactive:pg 太长时间没有 active(pg 无法读写)unclean:pg 太长时间没有 clean (pg 没有完全从之前的失败中恢复)stale:ceph-osd 长时间没有报告 pg 的状态,表明存储该 pg 的所有节点可能 down原创 2020-10-15 08:59:37 · 1129 阅读 · 0 评论 -
kubespray 离线安装 kubernetes
环境: centos7.6,kubespray-2.14.1,内网配置好 yum 源、pip源、docker-ce 源(可以考虑使用 nexus 代理 ),nexus 代理好 docker hub、aliyun docker registry1、copy 资产目录[root@ansible002 kubespray-2.14.1]# cp -r inventory/sample inventory/mycluster2、配置好内网 pip 源,安装 requirement.txt[root@ans原创 2020-10-13 16:49:46 · 1989 阅读 · 3 评论 -
centos7 安装 kafka
环境 centos7 ,python 2.7 , kafka 2.3.0,kafka-python 2.0.2kafka-python 2.0.2 不支持 kafka 2.5.0 及以上版本,可以查看 pypi 官网信息1、官网下载 kafka 安装包2、启动 kafka 程序[root@ansible002 ~]# tar -zxvf kafka_2.11-2.3.0.tgz[root@ansible002 ~]# cd kafka_2.11-2.3.0shell1 运行 zookeeper原创 2020-10-09 18:41:04 · 269 阅读 · 0 评论 -
centos7 安装 mongodb
环境: centos7.6, mongodb-server v2.6.121、增加 epel yum 源2、安装yum install -y mongodb-server mongodb3、启动服务systemctl start mongod4、验证服务开启mongo5、常用命令查看数据库> show dbsadmin (empty)local 0.078GBtest (empty)选择数据库> use testswitched to db tes原创 2020-10-08 18:28:21 · 184 阅读 · 0 评论 -
centos7 部署 memcache
安装 memcachedyum install memcached启动 memcachedsystemctl start memcached检查已经启动 memcachedyum install -y libmemcachedmemstat --servers="127.0.0.1:11211"python 使用 memcachepip install python-memcachedimport memcachemc = memcache.Client(['127.0.0.1:原创 2020-10-08 18:25:24 · 377 阅读 · 0 评论 -
ceph radosgw 对象存储 配额控制
uat 为 rgw 用户设置用户配额radosgw-admin quota set --quota-scope=user --uid=uat --max-objects=10 --max-size=1024启用用户配额radosgw-admin quota enable --quota-scope=user --uid=uat禁用用户配额radosgw-admin quota-disable --quota-scope=user --uid=uat设置 bucket 配额rados原创 2020-09-30 15:27:40 · 1219 阅读 · 0 评论 -
记一次 ceph 问题引起的 openstack vm 启动失败
环境:私有云使用 kolla 部署的 openstack rocky,存储使用 ansilbe-ceph 部署的 ceph。1、openstack 中部分 vm 启动失败2、查看 vm 实例控制台日志,发现出现 了 mount 延时。正好收到 ceph osd 522 down 的告警,怀疑是 osd down 引起的 vm volume 挂载失败。但是 ceph volumes pool 是 3 副本,挂掉一个 osd 不应该影响 openstack volume 挂载失败。...[ 1323.3原创 2020-09-30 15:10:06 · 933 阅读 · 0 评论 -
pvs Error reading device /dev/xxx at 0 length 512.
背景:ceph osd 服务器磁盘坏掉,将坏掉的 osd 从集群中踢出后, pvs 报错. 系统 centos7,ceph luminous1、查看错误信息[root@cmp15 ~]# pvs Error reading device /dev/ceph-d6500029-3aca-4d5d-8ca1-581f4ea0c86c/osd-data-dfabf3a8-083d-4f76-8edc-318f2c156bf8 at 0 length 512. Error reading device原创 2020-09-30 15:04:50 · 3648 阅读 · 0 评论 -
控制 ceph 集群中 osd 内存使用量
测试 ceph 集群的性能可以在修改前后,做 ceph 集群性能测试,进行对比新增 uat poolceph osd create uat 128 128write 测试(先测试 write,不然 seq 会报错)rados -p uat -t 30 bench 30 write --no-cleanup --run-name xxx seq 测试rados -p uat -t 30 bench 30 seq --run-name xxx清除 uat pool 中 benchmark原创 2020-09-24 15:42:28 · 3013 阅读 · 0 评论 -
linux /etc/shadow 理解
1、linux 账户密码存储在 /etc/shadow 中普通用户权限能够查看保存用户信息,每一行代表一个用户,每一行通过冒号:分为七个部分用户名密码,x表示密码保存在/etc/shadowUID,0代表rootGID,表示所在组描述信息,依次为Full Name、Room Number、Work Phone、Home Phone和Other用户主目录默认shell类型2、查看 /etc/shadow 中 root 密码部分,实际 root 密码为 123123[root@cmp39原创 2020-09-17 14:31:37 · 716 阅读 · 0 评论 -
nexus上传自定义jar包到maven仓库
1、在 nexus 上新建 host 类型的 maven 仓库 maven-bigdata2、新建 group 类型的 maven 仓库 maven-public3、将仓库 maven-bigdata 添加到 maven-public4、上传 abc.jar 包到 maven-bigdata 仓库,注意: Extension 一般为 jar,如果出现 “RELEASE.jar” 请删除 “RELEASE.”5、测试环境: centos7.6,nexus 地址 10.1.2.11,maven 版原创 2020-09-01 16:08:07 · 692 阅读 · 0 评论 -
openssl 创建 pfx 证书
环境: centos7.6, openssl 1.02k-fips生成私钥[root@ansible002 keyfile]# openssl genrsa -out server.key 1024Generating RSA private key, 1024 bit long modulus......++++++...++++++e is 65537 (0x10001)生成证书请求文件,需要填写信息,例如:cn/gd/zh/sourcecode/bdc/www.a.com[root@原创 2020-09-01 10:50:46 · 782 阅读 · 0 评论 -
git push 忽略文件
背景:往往我们需要在 push 到 github 时忽略我们的一些隐私的配置文件1、定义Git全局的 .gitignore 文件git config --global core.excludesfile .gitignore2、配置 .gitignore 文件, 如下:忽略 .pyc, .pyo, .pyd, .so 开头的等文件。*.py[cod]# C extensions*.so# Packages*.egg*.egg-infodistbuildeggspartsbi原创 2020-08-21 11:05:27 · 658 阅读 · 0 评论 -
kubernetes 使用 restful api 访问 集群
环境:centos7.6 , kubernetes 1.11.51、获取 token[root@k8s01 ~]# kb describe secret kubernetes-dashboard-token-n2qgk -n kube-system...Type: kubernetes.io/service-account-tokenData====ca.crt: 1342 bytesnamespace: 11 bytestoken: eyJhbGciOiJSUzI原创 2020-07-29 14:01:31 · 581 阅读 · 0 评论 -
harbor 定期清理 registry
环境:centos7.6,harbor1.9,python2.7定期清理harbor 作为私有 docker 仓库,经常在 cicd 中使用,导致每个镜像会有很多 tag,不即是清理,有时会导致 harbor 服务器存储空间用完。下面的脚本用于定期清理 harbor 仓库中的 docker 镜像,没个镜像保留最新的 5 个 tag。1、定期清理 harbor 镜像 python 脚本,适用于 python2.7。(改自https://www.cnblogs.com/kaishirenshi/p/1原创 2020-07-21 18:36:14 · 2123 阅读 · 0 评论 -
docker-compose 部署 harbor
1、安装 docker-ce (version > 17.06),修改 /etc/docker/daemon.json 配置 docker registry如果 docker-ce 版本低于 version > 17.06,请升级yum update docker-ce2、安装 docker-composeyum install docker-compose3、进入 github 官网,下载 harbor-offline-installer-v2.0.0.tgz4、解压,修改配原创 2020-07-21 18:20:13 · 517 阅读 · 0 评论 -
hp ilo 服务器 hpssacli 做 raid
环境: hp ilo4 DL380 Gen9,ill 页面检测到磁盘 degrade,但是操作系统 centos7 中显示磁盘(做过 raid 后的逻辑盘)正常。更换磁盘后,系统显示不出新的磁盘符 /dev/sdx,需要手动重启操作系统, 做 raid目的:不停机,直接使用 hpssacli 做 raid0需要提前删除更换的 ceph osd 对应的 lv、pv、vg1、不重新对更换后的磁盘做 raid,系统显示不出更换后的磁盘设备[root@cmp21 osd]# lsblk -dNAME原创 2020-07-21 17:43:26 · 1698 阅读 · 0 评论 -
hp ilo 服务器磁盘定位
背景:hp ilo4 DL380 Gen9,ill 页面检测到磁盘 degrade,但是操作系统 centos7 中显示磁盘(做过 raid 后的逻辑盘)正常。目的:由于更换硬盘前,需要将数据进行备份或者重平衡操作,需要知道 degrade 的物理盘对应的逻辑盘,决定该踢出哪块盘 /dev/sdx1、查看系统磁盘设备lsblk -d此时只是 degrade,系统磁盘都在,看不出问题2、安装 hpssacli去 hp 官方网站下载 hpssacli,进行安装rpm -i hpssacli-原创 2020-07-21 17:36:30 · 1148 阅读 · 0 评论 -
安装 Apache 支持SSL/TLS
环境: centos7.6安装 httpd、mod_ssl、opensslyum install httpd mod_ssl openssl生成私钥cd /etc/pki/tls/private/openssl genrsa -out server.key 2048生成证书请求文件,需要填写信息,例如:cn/gd/zh/gree/bdc/www.a.comopenssl req -new -key server.key -out server.csr自签名openssl x509 -原创 2020-07-21 17:29:23 · 285 阅读 · 0 评论 -
Esxi 上 linux vm 崩溃,数据恢复
数据恢复背景:esxi 上 vm 丢失 /boot/ 目录,导致系统崩溃,重启报错 “error: /grub2/i386-pc/normal.mod not found” ,需要恢复服务器上的数据1、将 server1 (系统已经崩溃),作为已经存在的磁盘挂载到 server2 上,以下操作均在 server2 上操作2、lsblk -f 显示 /dev/sdb2 格式 LVM2_member ,如果是 xfs 或者 ext*,那么可以直接挂载[root@localhost ~]# lsblk原创 2020-07-21 16:50:29 · 1595 阅读 · 0 评论 -
elasticsearch 定期删除索引
实验环境: cenotos7使用 docker 部署了 efk,需要定期删除索引,减少磁盘消耗。elasticksearch 地址 10.2.20.100:9200[root@ansible002 ~]# cat index_delete.sh LAST_DATA=`date -d "-15 days" +%Y.%m.%d`curl -XDELETE 'http://10.2.20.100:9200/*-'${LAST_DATA}'*'...原创 2020-06-17 11:17:06 · 473 阅读 · 0 评论 -
dmidecode 查看服务器厂商、序列号
使用下面命令查看 服务器厂商、序列号[root@maple ~]# dmidecode | grep "System Information" -A9|egrep "Manufacturer|Product|Serial" Manufacturer: LENOVO Product Name: 10*** Serial Number: M***通过 man 命令查看 dmidecode 用法,可以得知:DMI stands for Desktop Ma原创 2020-06-17 10:57:23 · 2475 阅读 · 0 评论 -
docker 部署 nexus 配置 docker registry
环境:两台 centos7 vm,docker 17.03,nexus vm ip 192.168.1.91、docker 部署 nexus3运行 docker 时需要额外开放一个端口, 9091 为 nexus 访问端口,9092 为 docker 代理仓库端口chmod 777 /nexus-datadocker run -id --name=nexus3 -v /nexus-data:/nexus-data --restart=always -p 9091:8081 -p 9092:9092原创 2020-05-22 11:48:43 · 1158 阅读 · 0 评论 -
python 自动检测 ilo 健康信息,并发送邮件
实验环境:python2.7方案描述:利用 hpilo 进行健康检测,将有问题的服务器信息通过邮件发送到给管理员,email 利用 jinja2 动态生成模块。1、 利用 jinja2 自动生成模板模板 templates/email_template.html[root@ansible002 pyscripts]# cat templates/email_template.html<meta http-equiv="Content-Type"content="text/html;原创 2020-05-18 11:27:20 · 1344 阅读 · 0 评论 -
python 发送邮件
实验环境: python2.71、发送文本 email#!/usr/bin/python#-*- coding:utf8 -*-# 文件不能命名为 email.py, 否则会与 from email.mime.text import MIMEText 冲突,报错import smtplibfrom email.mime.text import MIMETextfrom email.header import Headerdef mail_send(mail_body): sender原创 2020-05-18 10:31:41 · 238 阅读 · 0 评论