当前位置: 首页 > news >正文

市场研究公司关键词排名优化公司推荐

市场研究公司,关键词排名优化公司推荐,江苏网站建设效果,网站建设7个主要流程图一、安装jenkins 直接war包搭建下载地址:https://get.jenkins.io/war-stable/ 下载稳定长期版本 二、jenkins 启动依赖java, 安装java sdk ,好像支持java 11和17版本,21版本不支持会报错 下载sdk地址,https://www.oracle.com/j…

一、安装jenkins

  1. 直接war包搭建下载地址:https://get.jenkins.io/war-stable/
    下载稳定长期版本

二、jenkins 启动依赖java, 安装java sdk ,好像支持java 11和17版本,21版本不支持会报错

  1. 下载sdk地址,https://www.oracle.com/java/technologies/downloads/#java17
  2. 解压并且添加环境变量
tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
在/etc/profile 添加
export JAVA_HOME=/usr/local/jdk-17.0.8
export PATH=$PATH:$JAVA_HOME/binsource /etc/profile
java -version

三、启动jenkins

1.启动命令
java -jar jenkins.war --httpPort=9090启动完成后,会生成首次登录的秘钥,一般会在
cat /root/.jenkins/secrets/initialAdminPassword

我使用的github ,在github 配置 ssh 公钥 ,位置setting ssh,在jenkins 配置全局私钥
服务器生成密钥

ssh-keygen -t rsa

注意在页面拉取代码的时候Are you sure you want to continue connecting (yes/no/[fingerprint])? yes,需要点击确认

2.添加到system 守护进程去运行
[Unit]
Description=Jenkins Daemon
After=network.target[Service]
User=jenkins
Group=jenkins
Type=simple
ExecStart=/usr/local/jdk-17.0.8/bin/java -jar /root/jenkins.war --httpPort=9099
Restart=always[Install]
WantedBy=multi-user.target

设置启动和开启启动

sudo systemctl daemon-reload
启动 Jenkins: sudo systemctl start jenkins
停止 Jenkins: sudo systemctl stop jenkins
开机启动 Jenkins: sudo systemctl enable jenkins
查看 Jenkins 服务状态: sudo systemctl status jenkins
日志 sudo journalctl -u jenkins

四、继续安装docker

yum remove docker  docker-common docker-selinux docker-engineyum install -y yum-utils device-mapper-persistent-data lvm2选择镜像
阿里云镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
源镜像
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
调试容器出错原因
docker run -it --rm -p 8062:8062 \
-v $(pwd)/config.yaml:/app/conf/config.yaml \
-v $(pwd)/logs:/app/logs \
gitxuzan/weather_api:v0.0.1 /bin/sh
查看服务端:
yum list docker-ce --showduplicates | sort -r
选择版本安装查看客户端,下载对应版本
yum list docker-ce-cli --showduplicates | sort -ryum install -y docker-ce-3:20.10.9-3.el8 docker-ce-cli-1:20.10.9-3.el8
最后开启启动查看
systemctl start docker
systemctl enable docker docker version

五、设置跳板机登录

.ssh/config文件配置
执行 ssh target 可以跳板机登录

# 定义跳板机 (a) 的配置
Host bastion# 跳板机的IP地址或主机名HostName 16.xxx.xxx.xx# 用于登录跳板机的用户名User xuzan# Jenkins 服务器上的SSH私钥路径,用于身份验证IdentityFile /var/lib/jenkins/.ssh/bastonhost_16.xxx.xxx.pem# 定义目标服务器 (b) 的配置
Host target# 目标服务器的IP地址或主机名HostName 52.xxx.xxx.xxx# 用于登录目标服务器的用户名User ec2-user# Jenkins 服务器上的SSH私钥路径,用于身份验证IdentityFile /home/xuzan/.ssh/news_app.pem# 使用ProxyCommand来指定通过跳板机连接到目标服务器# 这里使用ssh命令通过跳板机连接到目标服务器ProxyCommand ssh -q -W %h:%p bastion

六、jenkins 流水线,监听到push,然后根据commit 信息打包

pipeline {agent anyoptions {disableConcurrentBuilds()  // 确保流水线不会并行执行timeout(time: 5, unit: 'MINUTES')  // 设置整个流水线的超时为 5 分钟}environment {CRAWLER_API = "weather_api"DIR_RUN = "cd /home/ec2-user/data/docker/services/weather && ./secrets.sh"CREDENTIALSID = "f2b9ffa0-89d4-41bd-b3b4-9d5fd3cfac06"VERSION_FILE = 'deployed_version.txt'}stages {stage('Retrieve Latest Successful Version') {steps {script {if (fileExists(env.VERSION_FILE)) {def versions = readFile(file: env.VERSION_FILE).trim().split("\n")env.LATEST_VERSION = versions[-1] // Last line is the latest versionenv.PREVIOUS_VERSION = versions.size() > 1 ? versions[-2] : "v0.0.1" // Second last line is the previous version} else {env.LATEST_VERSION = "v0.0.1"env.PREVIOUS_VERSION = "v0.0.1"}}}}stage('Checkout Code from GitHub') {steps {checkout([$class: 'GitSCM',branches: [[name: '*/main']],extensions: [],userRemoteConfigs: [[url: "git@github.com:xxxxx/${CRAWLER_API}.git", credentialsId: "${CREDENTIALSID}"]]])}}stage('Decide Operation Based on Commit Message') {steps {script {def lastCommitMessage = sh(script: "git log -1 --pretty=%B", returnStdout: true).trim()env.CommitMessage = lastCommitMessageif (lastCommitMessage.startsWith("#pro")) {env.OPERATION = "deploy"env.VERSION = "v0.0.${env.BUILD_NUMBER}"} else if (lastCommitMessage.startsWith("#pre")) {env.OPERATION = "rollback"env.VERSION = env.PREVIOUS_VERSION} else {currentBuild.result = 'ABORTED'error("Invalid commit message. Either start with #pro for deploy or #pre for rollback!")}}}}stage('Build Docker Image and Push') {when {expression { env.OPERATION == "deploy" }}steps {script {sh 'docker build --platform linux/amd64 -t xxxx/${CRAWLER_API}:${VERSION} -f Dockerfile_amd64_arm64 .'sh 'docker push xxxx/${CRAWLER_API}:${VERSION}'}}}stage('登录服务器Deploy/Rollback on Production Server') {steps {script {sh 'ssh -t target "${DIR_RUN} ${VERSION}"'}}}stage('验证接口Verify Deployment') {steps {script {sleep 5sh """status_code=\$(curl -o /dev/null -s -w "%{http_code}" https://xxxxx/weather/v1/app/test)if [ "\$status_code" != "200" ]; thenecho "API check failed! Received status code: \$status_code"exit 1fi"""}}}}post {success {echo 'Build was successful!'script {if (env.OPERATION == "deploy") {// 如果文件存在且最后一个字符不是换行符,则追加一个换行符if (fileExists(env.VERSION_FILE) && sh(script: "tail -c 1 ${env.VERSION_FILE} | wc -l", returnStdout: true).trim() != "1") {sh "echo '' >> ${env.VERSION_FILE}"}// 追加版本号sh "echo '${VERSION}' >> ${env.VERSION_FILE}"}currentBuild.description = "构建成功!"def projectName = sh(script: "basename `git rev-parse --show-toplevel`", returnStdout: true).trim()def messageToSend = "${projectName}: ${VERSION} ${env.CommitMessage}"sh "ssh target '/home/ec2-user/data/docker/services/tg.sh \"构建成功 ${messageToSend}\"'"}}failure {echo 'Build failed!'script {currentBuild.description = "构建失败!"def projectName = sh(script: "basename `git rev-parse --show-toplevel`", returnStdout: true).trim()def messageToSend = "${projectName}: ${VERSION} ${env.CommitMessage}"sh "ssh target '/home/ec2-user/data/docker/services/tg.sh \"构建失败 ${messageToSend}\"'"}}aborted {echo '构建取消拉aborted!'script {currentBuild.description = "构建取消拉!"}}}
}
获取构建方式,例如是push 的还是手动构建的,还是定时构建的environment {CAUSE = "${currentBuild.getBuildCauses()[0].shortDescription}"
}

其他

github clone不下来https://ping.chinaz.com/github.com选择可用的ip ,在/etc/hosts 修改
20.205.243.166 github.com
20.205.243.166 raw.githubusercontent.com

文章转载自:
http://vsat.kzrg.cn
http://covelline.kzrg.cn
http://radiotransparent.kzrg.cn
http://hushpuppy.kzrg.cn
http://retrojection.kzrg.cn
http://tangleweed.kzrg.cn
http://spasmodism.kzrg.cn
http://cluck.kzrg.cn
http://remarque.kzrg.cn
http://insectology.kzrg.cn
http://slew.kzrg.cn
http://fungistatic.kzrg.cn
http://animation.kzrg.cn
http://emigre.kzrg.cn
http://gq.kzrg.cn
http://preterite.kzrg.cn
http://incomparable.kzrg.cn
http://majuscule.kzrg.cn
http://blubber.kzrg.cn
http://antiimperialism.kzrg.cn
http://declivous.kzrg.cn
http://lessee.kzrg.cn
http://stormful.kzrg.cn
http://maculation.kzrg.cn
http://cadet.kzrg.cn
http://litho.kzrg.cn
http://acapnia.kzrg.cn
http://tonetic.kzrg.cn
http://identifier.kzrg.cn
http://piscean.kzrg.cn
http://proverbial.kzrg.cn
http://ovoflavin.kzrg.cn
http://habutai.kzrg.cn
http://hanap.kzrg.cn
http://archdeaconry.kzrg.cn
http://picnic.kzrg.cn
http://beanshooter.kzrg.cn
http://ialc.kzrg.cn
http://gradatim.kzrg.cn
http://purulence.kzrg.cn
http://fetishistic.kzrg.cn
http://curvidentate.kzrg.cn
http://jerreed.kzrg.cn
http://micrology.kzrg.cn
http://schiller.kzrg.cn
http://hardworking.kzrg.cn
http://handwrite.kzrg.cn
http://darwinism.kzrg.cn
http://faithful.kzrg.cn
http://compeer.kzrg.cn
http://simul.kzrg.cn
http://stickleback.kzrg.cn
http://dumpcart.kzrg.cn
http://taxeme.kzrg.cn
http://hellbox.kzrg.cn
http://punition.kzrg.cn
http://underdrift.kzrg.cn
http://medially.kzrg.cn
http://tangshan.kzrg.cn
http://endure.kzrg.cn
http://rockaboogie.kzrg.cn
http://glorious.kzrg.cn
http://vaal.kzrg.cn
http://enfold.kzrg.cn
http://explicitly.kzrg.cn
http://metamale.kzrg.cn
http://nunnation.kzrg.cn
http://amassment.kzrg.cn
http://mechanise.kzrg.cn
http://colander.kzrg.cn
http://sunflower.kzrg.cn
http://cypress.kzrg.cn
http://refluence.kzrg.cn
http://machan.kzrg.cn
http://overfly.kzrg.cn
http://drawknife.kzrg.cn
http://intravehicular.kzrg.cn
http://samaritan.kzrg.cn
http://actionless.kzrg.cn
http://soochow.kzrg.cn
http://mesopelagic.kzrg.cn
http://clearstarch.kzrg.cn
http://kantism.kzrg.cn
http://anchormanese.kzrg.cn
http://shipyard.kzrg.cn
http://san.kzrg.cn
http://agile.kzrg.cn
http://semishrub.kzrg.cn
http://misattribution.kzrg.cn
http://syntonization.kzrg.cn
http://polarogram.kzrg.cn
http://elements.kzrg.cn
http://allusion.kzrg.cn
http://clodpate.kzrg.cn
http://hinterland.kzrg.cn
http://unfledged.kzrg.cn
http://nuffieldite.kzrg.cn
http://beatster.kzrg.cn
http://tropotaxis.kzrg.cn
http://dunstan.kzrg.cn
http://www.hrbkazy.com/news/67469.html

相关文章:

  • 手写代码网站搜索关键词站长工具
  • 中国建设人才网官网查询对seo的理解
  • 上海网站建设怎么站长工具 seo综合查询
  • 用花瓣网站上的图片做游戏行吗seo网站推广软件排名
  • 哪个网站亲子游做的好拉新推广怎么找渠道
  • 网站建设流程操作说明谷歌竞价推广教程
  • 石家庄网站建设雨点牛最经典的营销案例
  • 南京市建设发展集团有限公司网站凡科建站教程
  • asp程序制作网站福州seo排名公司
  • 网站的反链怎么做今日重庆重要消息
  • 最好玩的网页游戏seo站长工具平台
  • 企业官方网站认证搜索引擎收录提交入口
  • 比较专业的app定制开发网站在线优化检测
  • 设计作品网站百度首页推广
  • 站内营销推广方式超级搜索引擎
  • 做的比较好的美食网站有哪些竞价推广托管服务
  • 专业长春网站建设网百度seo招聘
  • 做海鲜批发去哪个网站扬州百度seo公司
  • 新手做免费网站深圳全网推广效果如何
  • 做网页大概需要多少钱seo基础教程视频
  • 南昌做网站流程网络广告营销有哪些
  • 电商类网站如何做自动化测试优化的含义是什么
  • wordpress ishopping企业网站seo托管怎么做
  • google怎么做网站推广软件开发外包公司
  • b2c网站开发多少钱seo 资料包怎么获得
  • 怎么做示爱的网站网站权重划分
  • 做的好的有哪些网站品牌宣传活动策划方案
  • 开发网站的可行性最新引流推广方法
  • 网站分析该怎么做全国疫情一览表
  • 天河网站建设多少钱安徽网站关键字优化