运维规划2018-2024

来自linux中国网wiki
Evan讨论 | 贡献2021年4月7日 (三) 02:04的版本 →‎python 自动化
跳到导航 跳到搜索

2021

Booklist 要看的书

简历

Linux运维工程师简历项目经验

大龄运维

go ,cmdb, js devops

https://www.v2ex.com/t/598440?__cf_chl_jschl_tk__=4fd0e10bc1ee83eb05176806d9433076e1fa08e8-1597039021-0-Af0TkNavo215SSTNLsdKOV9tqmTbckqd9aV_DrcqROga2l0U_TbpmLo5RYrY1VFEtsDNtYp82uGAiF9rOj-5LQw_8R9ic8SMnnk-lvBz1VxXZnlc4af3Qr6KC5Rqe9v1nX3W3hmXhO6NtxE8dgXbs13Wo5-xE5wgt5At15GuUC8UDd6v0W2w6eGdw9VBxks5jXlk-nZ2sc9xycmrjEwl6l4HZYVEvLnNdBRJpV9Aa6LG8T7qnoAvGeT-eQYqbUN0b7T6fRXFkjxqNbTOgOLm_xuL7sou1BKNe9zd1kNNfFtgcoKekkuwYNFcMP9ve9PTKRddmq1E5ELO8PzFSOZWMB8


什么是运维?运维工程师这个职位有多重要?

2020

english

redis

wiki上相关的可以看看先

Redis运维

lua

Lua基础

golang

Zookeeper

https://www.jianshu.com/u/3829416c7065

see also

运维超级好用工具大PK

k8s

搞个国内的吧 debian 主要就是这下面三个站内资源

Kubernetes 镜像 aliyun


Install and Configure Kubernetes (k8s) on debian10


使用kubeadm离线部署kubernetesv1.9.0 on centos7


2018k8s


kubernetes安装(国内环境)


国内环境安装k8s


国内k8s集群部署的几种方式 部署方式

目前我所了解有以下几种方式:

    使用kubeadmin通过离线镜像的方式,网上教程和镜像包挺多的

    通过厂商集成的方式如:rancher
    这里推荐一篇blog:CentOS7环境安装Kubernetes四部曲https://blog.csdn.net/boling_cavalry/article/details/79613037

    直接使用类似阿里云这样的公有云平台k8s 。只要有钱,一键搞定 : )

    通过yum官方仓库安装,需要启用extras仓库。
    不过里面版本都比较老,目前最新的也只是1.5.2版本,对于想学新的东西,比如k8s角色管理、helm等来说不太方便,因此也不建议使用。

    通过二进制包的形式进行安装,这里推荐一个repo:kubeasz https://github.com/gjmzj/kubeasz
    里面文档也很丰富清晰,对于初学者来说很有帮助。 

原文链接:https://blog.csdn.net/lusyoe/article/details/80217291

服务器费用

自动续费 ?

工单

基于Gin + Vue + Element UI前后端分离的工单系统

cmdb

Base Admin一套简单通用的后台管理系统

搞在xk intra 然后 frp到外面

前聚美优品运维负责人谈CMDB

CMDB和运维自动化

(深度好文)重构CMDB,避免运维之耻

开源CMDB

运维自动化

小团队如何从零搭建一个自动化运维体系

如何做好自动化运维?自动化运维必备技能有哪些

python 自动化

Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能

Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台

利用python实现批量自动化运维脚本案例

早下班时回家记得看书和动手例子

。我平时的工作不仅会用到python和shell,而且还会用到js和golang和c++。使用场景如下:1.shell:日常工具脚本编写,不多说2.python,js:技术栈为vue.js+django的运营系统开发和维护,好处是开发效率高。3.golang,c艹:与业务系统有交互的运营模块开发和维护,以及较在意执行效率的工作,如机器管控平台,agent诸如此类,主要是为了和业务系统的rpc协议兼容,所以用业务系统的框架开发偏运维类的系统

作者:运维不LOW 链接:https://www.zhihu.com/question/399160308/answer/1263092889 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我之前管理主机资产信息都是用的wiki或者是excel. 每次添加或下线机器 都需要主动的去手动修改.我觉得太麻烦了, 参考过市面上的一些cmdb产品,比如腾讯的蓝鲸等等 ,都觉得有不满意的地方.所以想自己搞一个非常简单的CMDB系统. 只需要实现 能自动获取现有接入salt管理的主机就可以了.salt有现成的pythonAPI, 我需要做的就是用python 写个脚本,来获取想要的主机信息 ,然后存入数据库,再用django+vue实现展示和管理就行了, 这就是python实际应用的一个例子.其实python的用处还有很多的. 还有阿里云oss ,ecs都有现成的pythonAPI,python用熟了以后,有写脚本写起来确实要比shell得劲.


链接:https://www.zhihu.com/question/399160308/answer/1263538144

Python 的练手项目有哪些值得推荐

Yearning SQL 审核平台

Yearning SQL 审核平台

监控

zabbix

Zabbix报警

action_email 还有报警前执行脚本

email 报警 短信报警 wechat 报警

zabbix new server docker 化 服务器监控(包括性能指标与web应用程序)

pinpoint

Nightingale

nightingale-didi

Open-Falcon 是小米运维团队开源的企业级监控解决方案,在国内广泛使用。

Nightingale 采用 Apache-2.0 开源协议,Copyright © 滴滴 2020

python

python常用运维脚本实例


python用于系统运维管理和灰度发布部署

基于python的一个运维自动化的项目(进度更新)【已开源】

django

Gunicorn

ruby

Learn ruby

tomcat

Linux运维 第三阶段 (十九) tomcat

通向架构师的道路(第四天)之Tomcat性能调优

Tomcat性能调优-JVM监控与调优

Tomcat配置与优化(内存、并发、管理)


Tomcat和JVM的性能调优总结

Tomcat 生产服务器性能优化 【已翻译100%】

监控Tomcat解决方案(监控应用服务器系列文章)

tomcat优化

TOMCAT内存大小调整

Tomcat内存设置详解

Tomcat配置与优化(内存、并发、管理)

通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔

tomcat 启动脚本

#!/bin/bash
#cat /etc/init.d/pp-col  在centos7上试过 可运行
# chkconfig: 345 99 28
# description: Starts/Stops Apache Tomcat

#by evan
#修改几个目录 
##export JAVA_HOME=/usr/java/jdk1.8.0_121/
#sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk1.8.0_121\//g" pp-collector.init
#sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-collector\//CATALINA_HOME=\/data\/pp-col\//g" pp-collector.init
#sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-collector\//CATALINA_BASE=\/data\/pp-col\//g" pp-collector.init
#by evan

# Tomcat  start/stop/status script
# Forked from: https://gist.github.com/valotas/1000094
# @author: Miglen Evlogiev <[email protected]>
#
# Release updates:
# Updated method for gathering pid of the current proccess
# Added usage of CATALINA_BASE
# Added coloring and additional status
# Added check for existence of the tomcat user
#
 
#Location of JAVA_HOME (bin files)
export JAVA_HOME=/usr/java/jdk1.8.0_121/
 
#Add Java binary files to PATH
export PATH=$JAVA_HOME/bin:$PATH
 
#CATALINA_HOME is the location of the bin files of Tomcat  
export CATALINA_HOME=/data/pp-col/
 
#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
export CATALINA_BASE=/data/pp-col/
 
#TOMCAT_USER is the default user of tomcat
export TOMCAT_USER=root
 
#TOMCAT_USAGE is the message if this script is called without any options
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"
 
#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
SHUTDOWN_WAIT=3
 
tomcat_pid() {
        echo `ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2`
}
 
start() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
    echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
  else
    # Start tomcat
    echo -e "\e[00;32mStarting tomcat\e[00m"
    #ulimit -n 100000
    #umask 007
    #/bin/su -p -s /bin/sh tomcat
        if [ `user_exists $TOMCAT_USER` = "1" ]
        then
                su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
        else
                sh $CATALINA_HOME/bin/startup.sh
        fi
        status
  fi
  return 0
}
 
status(){
          pid=$(tomcat_pid)
          if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
          else echo -e "\e[00;31mTomcat is not running\e[00m"
          fi
}
 
stop() {
  pid=$(tomcat_pid)
  if [ -n "$pid" ]
  then
    echo -e "\e[00;31mStoping Tomcat\e[00m"
    #/bin/su -p -s /bin/sh tomcat
        sh $CATALINA_HOME/bin/shutdown.sh
 
    let kwait=$SHUTDOWN_WAIT
    count=0;
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
    do
      echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";
      sleep 1
      let count=$count+1;
    done
 
    if [ $count -gt $kwait ]; then
      echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
      kill -9 $pid
    fi
  else
    echo -e "\e[00;31mTomcat is not running\e[00m"
  fi
 
  return 0
}
 
user_exists(){
        if id -u $1 >/dev/null 2>&1; then
        echo "1"
        else
                echo "0"
        fi
}
 
case $1 in
 
        start)
          start
        ;;
       
        stop)  
          stop
        ;;
       
        restart)
          stop
          start
        ;;
       
        status)
                status
               
        ;;
       
        *)
                echo -e $TOMCAT_USAGE
        ;;
esac    
exit 0

[root@node2 tomcat]# vim /etc/init.d/tomcat(tomcat启动脚本)

------------script start--------------

#!/bin/sh

# Tomcat init script for Linux.

#

# chkconfig: 2345 96 14

# description: The Apache Tomcatservlet/JSP container.

export JAVA_HOME=/usr/java/latest

export CATALINA_HOME=/usr/local/tomcat

exec $CATALINA_HOME/bin/catalina.sh $*

--------------script end---------------

[root@node2 tomcat]# chmod +x !$

chmod +x /etc/init.d/tomcat

[root@node2 tomcat]# chkconfig --add tomcat

[root@node2 tomcat]# chkconfig tomcat on

[root@node2 tomcat]# chkconfig --list tomcat

tomcat            0:关闭      1:关闭      2:启用      3:启用      4:启用      5:启用      6:关闭

[root@node2 tomcat]# service tomcat stop

……

[root@node2 tomcat]# service tomcat start

safe

fail2ban阻止SSH暴力破解

safe dns

http://www.freenom.world/zh/index.html?lang=zh

Freenom是世界上第一个也是唯一的免费域名提供商。 我们的使命是把互联网带给世界人民,帮助各国发展自己的数字经济。

通过打破壁垒、整合免费域名与最新网站建设和托管技术,Freenom让企业或个人建立网站和管理内容很容易,没有任何成本。

docker k8s

intra

内网穿透打洞

内网穿透打洞

内网环境

oracle 17

nginx other 11

frp

但是没有开机自启动呢

apps

7.1redis

公司的redis要 HA

redis架构演变与redis-cluster群集读写方案

7.2 nginx

redis lua+ cc Nginx Lua Redis防止CC攻击

7.3 mysql

mysql gpt

7.4 dns

Linux运维实战之DNS基础

7.5 CI jenkins

备份

关键文件备份

passwd etc

更新

包 mysql 文件 这个尽量做成自动化 接下何焱的活

db备份

on

  1. 内网开发环境
  2. jenkins 自动化更新 (dev test)
  3. zabbix 报警
  4. pinpoint
  5. 有序列表项
  6. 有序列表项
  7. 有序列表项