写点什么

运维进阶训练营 -W04H

作者:赤色闪电
  • 2022-11-20
    北京
  • 本文字数:2422 字

    阅读完需:约 8 分钟

1、部署 jenkins master 及多 slave 环境

1、添加 jenkins slave 节点

mkdir -p /var/lib/jenkins #创建数据目录 apt install openjdk-11-jdk
复制代码

Jenkins—系统管理—节点管理—新建节点

2、添加 jenkins slave 节点

认证凭据

3、添加 jenkins slave 节点

添加 jenkins slave 节点

4、验证 jenkins slave 节点状态


2、基于 jenkins 视图对 jenkins job 进行分类

可选择某个 job 进行分类,或者使用正则表达式的方式进行分类


3、总结 jenkins pipline 基本语法

  • 流水线过程定义在 Pipeline{}块中,在 Pipeline 块定义了整个流水线中完成的所有的操作。

  • Stage:阶段,一个 pipline 可以划分为若干个 stage,每个 stage 都是一个操作阶段,比如代码 clone、代码编译、代码 试和代码部署,阶段是一个逻辑分组,在 pipline 中可以实现跨多个 node 执行不同的 stage。

  • Step:步骤,step 是 jenkins pipline 最基本的操作单元,一个 stage 中可以有多个 step,例如在代码 clone 的 stage 中 要定义代码 clone 的 step、在代码编译 stage 需要定义代码编译的 step。

  • Node:jenkins 工作节点,可以是 jenkins master 也可以是 jenkins slave,node 是执行 step 的具体服务器。


4、部署代码质量检测服务 sonarqube

部署PostgreSQL 14.x:PostgreSQL安装:  # sudo apt update  # apt-cache madison postgresql  # apt install postgresql PostgreSQL环境初始化:  # sudo pg_createcluster --start 14 mycluster #指定版本为PostgreSQL 14  # vim /etc/postgresql/14/mycluster/pg_hba.conf  96 # IPv4 local connections:  97 host all all 0.0.0.0/0 scram-sha-256  # vim /etc/postgresql/14/mycluster/postgresql.conf  60 listen_addresses = '*' #defaults to 'localhost'; use '*' for all  PostgreSQL端口验证:  # lsof -i:5432 • COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME • postgres 4259 postgres 5u IPv4 54944 0t0 TCP *:postgresql (LISTEN) • postgres 4259 postgres 6u IPv6 54945 0t0 TCP *:postgresql (LISTEN) 部署PostgreSQL 14.x: 创建数据库及账户授权:  # su - postgres #切换到postgres普通用户  # psql -U postgres #进入到postgresql命令行敞口  psql (14.5 (Ubuntu 14.5-0ubuntu0.22.04.1))  Type "help" for help.  postgres=# CREATE DATABASE sonar; #创建sonar数据库  CREATE DATABASE  postgres=# CREATE USER sonar WITH ENCRYPTED PASSWORD '123456'; #创建sonar用户密码为123456  CREATE ROLE  postgres=# GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar; #授权用户访  GRANT  postgres=# ALTER DATABASE sonar OWNER TO sonar; #执行变更  ALTER DATABASE  postgres=# \q #退出  ~$ exit 部署SonarQube Server 8.9.x: 安装jdk 11:  # apt install -y openjdk-11-jdk  内核参数:  # vim /etc/sysctl.conf  vm.max_map_count = 262144  fs.file-max = 65536 部署SonarQube 8.9.x:  # mkdir /apps && cd /apps/  # unzip sonarqube-8.9.10.61524.zip  # ln -sv /apps/sonarqube-8.9.10.61524 /apps/sonarqube  # useradd -r -m -s /bin/bash sonarqube && chown sonarqube.sonarqube /apps/ -R && su - sonarqube  ~$ vim /apps/sonarqube/conf/sonar.properties  18 sonar.jdbc.username=sonar  19 sonar.jdbc.password=123456  37 sonar.jdbc.url=jdbc:postgresql://172.31.5.106/sonar  ~$ /apps/sonarqube/bin/linux-x86-64/sonar.sh --help  ~$ /apps/sonarqube/bin/linux-x86-64/sonar.sh start部署SonarQube Server 8.9.x: 验证SonarQube:  ~$ tail /apps/sonarqube/logs/*.log  2022.11.08 10:48:22 INFO app[][o.s.a.SchedulerImpl] Process[ce] is up  2022.11.08 10:48:22 INFO app[][o.s.a.SchedulerImpl] SonarQube is up  ~$ lsof -i:9000  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  java 6159 sonarqube 14u IPv6 81413 0t0 TCP *:9000 (LISTEN)
复制代码


5、基于命令、shell 脚本和 pipline 实现代码质量检测

 基于配置文件执行扫描:  root@jenkins:/opt/python-test# pwd  /opt/python-test  root@jenkins:/opt/python-test# /apps/sonar-scanner/bin/sonar-scanner  基于传递扫描参数:  root@jenkins:/opt/python-test# pwd  /opt/python-test  #/apps/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=magedu -Dsonar.projectName=magedu-python-app1 - Dsonar.projectVersion=1.0 -Dsonar.sources=./src -Dsonar.language=py -Dsonar.sourceEncoding=UTF-8 基于pipline: pipeline  agent any  parameters {     string(name: 'BRANCH', defaultValue: 'develop', description: '分支选择') //字符串参数,会配置在jenkins的参数化构建过程中     choice(name: 'DEPLOY_ENV', choices: ['develop', 'production'], description: '部署环境选择') //选项参数,会配置在jenkins的参数化构建过程中 }stages {     stage('变量测试1') {         steps {             sh "echo $env.WORKSPACE" //JOB的工作目录,可用于后期目录切换             sh "echo $env.JOB_URL" //JOB的URL             sh "echo $env.NODE_NAME" //节点名称,master 名称显示built-in             sh "echo $env.NODE_LABELS" //节点标签             sh "echo $env.JENKINS_URL" //jenkins的URL地址             sh "echo $env.JENKINS_HOME" //jenkins的家目录路径         }     }stage('python源代码质量扫描') {         steps {             sh "cd $env.WORKSPACE && /apps/sonar-scanner/bin/sonar-scanner -Dsonar.projectKey=magedu -Dsonar.projectName=magedu- python-app1 -Dsonar.projectVersion=1.0 -Dsonar.sources=./src -Dsonar.language=py -Dsonar.sourceEncoding=UTF-8"             }         }     } } 
复制代码


发布于: 刚刚阅读数: 5
用户头像

赤色闪电

关注

还未添加个人签名 2018-05-30 加入

还未添加个人简介

评论

发布
暂无评论
运维进阶训练营 -W04H_运维_赤色闪电_InfoQ写作社区