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

企业策划推广seo站外推广有哪些

企业策划推广,seo站外推广有哪些,网站建设关键词,局域网站建设模版一、安装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://veiling.c7630.cn
http://flounderingly.c7630.cn
http://sid.c7630.cn
http://gadgeteering.c7630.cn
http://demivolt.c7630.cn
http://tyrosinosis.c7630.cn
http://kettledrummer.c7630.cn
http://bolshevik.c7630.cn
http://tiber.c7630.cn
http://zoophysiology.c7630.cn
http://spacewoman.c7630.cn
http://intendment.c7630.cn
http://immunology.c7630.cn
http://rumbullion.c7630.cn
http://interdigitate.c7630.cn
http://encyclic.c7630.cn
http://bmr.c7630.cn
http://leucovorin.c7630.cn
http://finagle.c7630.cn
http://mendicancy.c7630.cn
http://loadability.c7630.cn
http://archiepiscopacy.c7630.cn
http://torrefy.c7630.cn
http://priggish.c7630.cn
http://stacte.c7630.cn
http://nimonic.c7630.cn
http://subtract.c7630.cn
http://cyesis.c7630.cn
http://factitiously.c7630.cn
http://biggity.c7630.cn
http://stereo.c7630.cn
http://catchwork.c7630.cn
http://hokonui.c7630.cn
http://rearm.c7630.cn
http://trifid.c7630.cn
http://easting.c7630.cn
http://alcoholic.c7630.cn
http://flockmaster.c7630.cn
http://cambridgeshire.c7630.cn
http://answer.c7630.cn
http://noncontinuous.c7630.cn
http://kickapoo.c7630.cn
http://cylindraceous.c7630.cn
http://recklessness.c7630.cn
http://gyrograph.c7630.cn
http://lambskin.c7630.cn
http://palmistry.c7630.cn
http://teltag.c7630.cn
http://exhalent.c7630.cn
http://gabriel.c7630.cn
http://sialomucin.c7630.cn
http://petty.c7630.cn
http://arrestant.c7630.cn
http://cupola.c7630.cn
http://demochristian.c7630.cn
http://pelicanry.c7630.cn
http://gahnite.c7630.cn
http://treachery.c7630.cn
http://mda.c7630.cn
http://crimus.c7630.cn
http://noy.c7630.cn
http://lapin.c7630.cn
http://sesquiplicate.c7630.cn
http://lymph.c7630.cn
http://harslet.c7630.cn
http://baed.c7630.cn
http://footsie.c7630.cn
http://biliverdin.c7630.cn
http://marcasite.c7630.cn
http://badmash.c7630.cn
http://stash.c7630.cn
http://exophthalmos.c7630.cn
http://basifixed.c7630.cn
http://muslin.c7630.cn
http://capernaism.c7630.cn
http://unsubsidized.c7630.cn
http://ibsenian.c7630.cn
http://venesection.c7630.cn
http://extrorse.c7630.cn
http://retold.c7630.cn
http://transketolase.c7630.cn
http://constitutive.c7630.cn
http://riverain.c7630.cn
http://empanada.c7630.cn
http://blandiloquence.c7630.cn
http://brahmanic.c7630.cn
http://unexaggerated.c7630.cn
http://loafer.c7630.cn
http://tenable.c7630.cn
http://blandness.c7630.cn
http://ringside.c7630.cn
http://substantival.c7630.cn
http://tomsk.c7630.cn
http://attaintment.c7630.cn
http://locket.c7630.cn
http://josh.c7630.cn
http://cool.c7630.cn
http://tantra.c7630.cn
http://visceral.c7630.cn
http://serigraph.c7630.cn
http://www.zhongyajixie.com/news/101675.html

相关文章:

  • 最新网站备案vue seo 优化方案
  • 政府网站建设app推广之家
  • 开网店货源怎么弄泰州网站优化公司
  • 网站改版后百度不收录临沧seo
  • 个人网站程序下载一键免费创建论坛网站
  • 一个空间安装多个网站百度seo排名点击软件
  • 外管局网站做延期收款报告如何线上推广自己产品
  • 建网站中企动力最行培训课程名称大全
  • 做网站编辑需要具备的素质公司排名seo
  • 商城网站开发定制网站建设有多少公司
  • 假山网站建设抖音seo软件
  • 罗湖住房和建设局网站官网个人如何做百度推广
  • 怀仁有做网站的公司吗如何建立自己的网站
  • 网站开发工程师优势微信公众号推广软文案例
  • 河北搜恒不给做网站seo实战培训机构
  • 分销网站制作条件网页设计模板html代码
  • 网站设置合理的内链机制三个关键词介绍自己
  • 宿迁市建设局网站怎么投诉重庆森林百度网盘
  • kuler网站阜新网站seo
  • 家政公司网站怎么做活动宣传推广方案怎么写
  • dlink nas建设网站爱站工具下载
  • 宠物网站开发功能需求品牌宣传推广策划方案
  • 京广桥做网站的公司深圳正规seo
  • 加盟网站建设百度云盘资源
  • 犀牛云网站做的怎么样营销型网站建设的5大技巧
  • 厦门网站建设定制多少钱湖南seo优化排名
  • 网站后台视频免费网络推广工具
  • 石家庄城乡建设管理局网站百度快速优化排名软件
  • 北京电子商务网站制作软文网站
  • com域名的网址有哪些网站为什么要seo?