说说运维

640?wx_fmt=jpeg

大家好,我又回来了。最近一段时间事情有点多。顺便上来唠叨下,如今做运维都要求些啥?早几年前运维相对来说还是比较乐观的,桌面运维也有个大几 K。再看看如今,相对来说要求比较高了。如果你也有意向做运维,那么不妨早早做准备。


运维入门:对于初型运维来说,Linux 是必备技能。如今基本没有公司在单纯的用 win 来做服务器了,当然部分传统行业除外。首先操作系统的安装,一些常用的命令,最起码要能熟悉操作。软件的安装以及选型。比如是用 rpm ,还是二进制亦或者用源码去安装,要根据不同的场景选择合适的安装方式。所以要入运维的门,基本上的 Linux 常用操作需要会,接下来需要三剑客,其实以前人们一直习惯叫三剑客,现在已经叫四剑客了。grep、sed、awk、find。这几个命令在 shell 脚本中也是用的频率相当高的。如果想要拿到一份待遇还不错的薪酬的话,那么 shell 、py、perl 这三种脚本中是必须会一种的。基本就是利用一些脚本去做运维的一些自动化。有了这项技能,基本上后续也可以转型 devops 。所以,如果运维基础还不错的话,可以去尝试学习一下,是很有必要的。不妨了解一下,经常有招聘要求熟练操作 Linux 系统,如 Centos、Ubuntu、RedHat 系统的搭建,以及常用操作。


运维进阶:Linux 的内核升级,同时说起自动化,不妨去看看招聘网站对 ansible 的要求也会比较普遍。shell 和 ansible 是自动化运维的要求技能。比如 shell 常用的判断表达式:


 
 

文件表达式
-e filename 如果 filename存在,则为真
-d filename 如果 filename为目录,则为真
-f filename 如果 filename为常规文件,则为真
-L filename 如果 filename为符号链接,则为真
-r filename 如果 filename可读,则为真
-w filename 如果 filename可写,则为真
-x filename 如果 filename可执行,则为真
-s filename 如果文件长度不为0,则为真
-h filename 如果文件是软链接,则为真
整数变量表达式
-eq 等于
-ne 不等于
-gt 大于
-ge 大于等于
-lt 小于
-le 小于等于
字符串变量表达式
if [ $a = $b ] 如果string1等于string2,则为真,字符串允许使用赋值号做等号
if [ $string1 != $string2 ] 如果string1不等于string2,则为真
if [ -n $string ] 如果string 非空(非0),返回0(true)
if [ -z $string ] 如果string 为空,则为真
if [ $sting ] 如果string 非空,返回0 (和-n类似)
逻辑非 ! 条件表达式的相反
if [ ! 表达式 ]
if [ ! -d $num ] 如果不存在目录$num
逻辑与 –a 条件表达式的并列
if [ 表达式1 –a 表达式2 ]
逻辑或 -o 条件表达式的或
if [ 表达式1 –o 表达式2 ]


其实运维干的活很杂乱,光有了这些还不够,要求会一些数据库,比如常用数据库的安装以及数据的增删改查等。但是相对来说对于数据库的操作并不向 DBA 那样要求高,不会细化到每一个数据库参数。因此,数据库也是要求掌握的一部分。如 MySQL、redis、pg 等等。其中包括主从、集群的搭建和维护。比如我记得有次面试中面试官问到我 redis 集群中至少要求几个节点,每一个节点中的槽数是多少等等。


开源常用的中间件如 Nginx 的正反向代理,tomcat 的搭建和维护。还有 容器化方向,仔细看看,待遇比较高的运维 Docker 和 k8s 也是必须要求掌握的,很多公司都云化,因此都要求有云平台运维经验。


监控也是一个方向,如 zabbix以及普罗米修斯和 grafana 。监控服务器的 io、网络、存储等等各项性能指标。


那么最后还有一个日志收集的方案就是 ELK、后来在其加入了 filebeat、又称 EFK。


其实,这些我都在旧文中写过的,如果感兴趣不妨回头去看看。


如果有打算转型 devops 的话,jenkins 的 pipeline 流水线也是必须的。如以下这个流水线脚本包含了从代码的构建开始一直到应用往 k8s 上的发布,总共不到几分钟的。


 
 

pipeline {
agent any
tools {
//工具必须预先在jenkins中预配置
maven 'mvn'
jdk 'jdk'
}
stages {
stage('Env') {

steps {
sh 'printenv'
}
}
stage('git') {
steps{
checkout([$class: 'GitSCM', branches: [[name: '*/develop']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: '18980d0a-1ae4-443b17dc687b1', url: 'https://CFAI_the_best/codeflag-basis.git']]])
}
}
stage('mvn install') {

steps {

sh 'cd /var/lib/jenkins/workspace/k8s-test-basis/src/main/resources && mv application.test.properties application.properties'

sh 'mvn clean install'

}

}
stage('docker') {

steps {

sh 'cd /var/lib/jenkins/workspace/k8s-test-basis/target '
sh '''
REPOSITORY=172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}
pwd
echo '
FROM 172.18.0.218/codeflagtest/tomcat
RUN rm -rf /usr/local/tomcat/webapps/ROOT
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
ADD target/basic-0.0.1-SNAPSHOT.war /usr/local/tomcat/webapps/ROOT.war
' > Dockerfile
docker build -t $REPOSITORY .
docker login 172.18.0.218 -u admin -p Harbor123456
docker push $REPOSITORY

'''
}

}
stage('deploy') {

steps {
sh ' REPOSITORY=172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}'
sh 'kubectl get pod'
sh '''
cat << EOF > basis.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: basis
spec:
replicas: 2
selector:
matchLabels:
app: basis
template:
metadata:
labels:
app: basis
spec:
containers:
- name: basis
image: 172.18.0.218/codeflagtest/codeflag-basis:${BUILD_ID}

imagePullPolicy: Always
ports:
- containerPort: 8080
volumeMounts:
- name: pvc-nas
mountPath: "/home/www/test"
volumes:
- name: pvc-nas
persistentVolumeClaim:
claimName: pvc-nas
imagePullSecrets:
- name: registry-secret

---
apiVersion: v1
kind: Service
metadata:
name: basis
spec:
ports:
- port: 80
targetPort: 8080
name: basis
selector:
app: basis
type: LoadBalancer
EOF

kubectl apply -f basis.yaml

'''

}

}
}

}


jenkins 的流水线图案:


640?wx_fmt=png


如果感兴趣的话不妨在了解一下:

蓝绿部署、滚动部署、灰度发布、金丝雀发布




以上就是一些关于运维技能的总结,看似啥都没说,其实高薪的技能全都包含在这里面了。哪怕你不用,也需要知道。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值