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

投资 公司 网站模板市场推广

投资 公司 网站模板,市场推广,wordpress怎么采集淘宝客,建行个人网上银行登录入口前文 本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流#xff0c;用于自动化发布已经部署 lambda 函数。 在 AWS 海外区#xff0c;CI/CD 工作流可以用 codepipeline 这项产品来方便的实现#xff0c; CICD 基本概念 持续集成( Continuous…前文 本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流用于自动化发布已经部署 lambda 函数。 在 AWS 海外区CI/CD 工作流可以用 codepipeline 这项产品来方便的实现 CICD 基本概念 持续集成( Continuous Integration,简称CI ) 是指在应用代码的新组件集成到共享存储库之后自动测试和构建软件的流程。这样一来就可以打造出始终处于工作状态的应用“版本”。持续交付( Continuous Deployment, 简称CD )是指将CI流程中创建的应用交付到类似生产环境的过程在该过程中将对应用进行额外的自动化测试以确保应用在部署到生产环境以及交付到真实用户手中时能够发挥预期作用。 架构综述 本文最终达到的效果为源代码在 Github repo 中每当有新的 commit将自动触发 Jenkins CICD 工作流Jenkin 会利用 CodeBuild 做构建以及CodeDeploy 自动部署发布 lambda 新版本。 jenkins环境准备 jenkins EC2安装 先拉一个每月750小时免费的 EC2 实例t2.micro,  最后配置一个固定的弹性ip后面如果时不时要用停止/启动EC2 实后ip不用再重复配置 登录EC2 安装jenkins,  我使用的是jenkins.war的方式部署为了避免jenkins 的使用环境上一些坑 jenkins.war的下载地址jenkins.war 安装jdk-17 更新OS sudo yum update -y设置yum源 sudo wget -O /etc/yum.repos.d/jenkins.repo \https://pkg.jenkins.io/redhat-stable/jenkins.repo导入公钥 sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key升级包 sudo yum upgrade安装java sudo dnf install java-17-amazon-corretto -y 把jenkins.war放到/usr/local/jenkins 目录下编辑 /etc/init.d/jenkins 作为启动脚本 #!/bin/bash# 在执行过程中若遇到使用了未定义的变量或命令返回值为非零将直接报错退出 set -eu # Default-Start: 2 3 4 5# 检查参数个数 if [ ${#} -lt 1 ]; thenecho 脚本使用示例: service jenkins start|stop|restart exit fi# 获取脚本第一个参数 APP_OPT${1} # 端口 APP_PORT9001 # 名称 APP_NAMEjenkins # jar名 | war名 APP_JAR${APP_NAME}.war # 程序根目录 APP_JAR_HOME/usr/local/jenkins # 日志名 APP_LOG_NAMEapp-jenkins # 日志根目录 APP_LOG_HOME/usr/local/jenkins/log # 程序运行参数 JAVA_OPTS--httpPort${APP_PORT}echo 本次操作服务名[${APP_NAME}] echo 本次操作选择[${APP_OPT}]# 停止 function stop(){echo --------------------------------------echo [${APP_NAME}] ... stop ...# 查看该jar进程pidps -ef | grep ${APP_NAME} | grep -v grep | awk {print $2}echo [${APP_NAME}] pid${pid}# 存在则kill,不存在打印一下吧if [ ${pid} ]; thenkill -9 ${pid}# 检查kill是否成功if [ $? -eq 0 ]; thenecho [${APP_NAME}] stop successelseecho [${APP_NAME}] stop failfielseecho [${APP_NAME}] 进程不存在fi }# 运行 function start(){echo --------------------------------------echo [${APP_NAME}] ... start ...cd ${APP_JAR_HOME}echo 当前路径:pwd# 赋予可读可写可执行权限chmod 777 ${APP_JAR}echo 启动命令: nohup java -jar ${APP_JAR} ${JAVA_OPTS} ${APP_LOG_HOME}/${APP_LOG_NAME}.log 21 sudo nohup java -jar ${APP_JAR} ${JAVA_OPTS} ${APP_LOG_HOME}/${APP_LOG_NAME}.log 21 if [ $? -eq 0 ]; thenecho [${APP_NAME}] start successelseecho [${APP_NAME}] start failfi }# 重启 function restart(){echo --------------------------------------echo [${APP_NAME}] ... restart ...stopsleep 3start }# 多分支条件判断执行参数 case ${APP_OPT} instop)stop;;start)start;;restart)restart;;*)echo 提示:不支持参数 命令 - ${APP_OPT};; esac jenkins工作目录磁盘空间挂载 因为我们使用的micro的EC2,  需要给jenkins 工作目录挂载更大的空间 Jenkins 默认是安装在/root/.jenkins 目录下查看目录下使用和剩余空间 df -h /root/.jenkins/ 将 /dev/nvme0n1p1 作为你的设备进行挂载并增加 /root/.jenkins 的空间以下是相应的步骤 步骤 1: 创建挂载点创建一个新的目录作为挂载点例如 /mnt/jenkins_data sudo mkdir -p /mnt/jenkins_data 步骤 2: 挂载文件系统 将设备 /dev/nvme0n1p1 挂载到新创建的目录 sudo mount /dev/nvme0n1p1 /mnt/jenkins_data 步骤 3: 更新 /etc/fstab 为了确保在重启后仍然保持挂载需要更新 /etc/fstab 文件。打开该文件进行编辑 sudo nano /etc/fstab 在文件末尾添加以下行 /dev/nvme0n1p1 /mnt/jenkins_data ext4 defaults,nofail 0 2 确保根据实际文件系统类型如 ext4进行调整。 步骤 4: 移动 Jenkins 数据 如果 /root/.jenkins 中的数据需要迁移到新的挂载点 sudo cp -r /root/.jenkins/* /mnt/jenkins_data/ sudo ln -s /mnt/jenkins_data /root/.jenkins 查看现在的工作空间大小 micro 免费的同时就得随时手动挂载确保空间足够后面jenkins 交换空间不够也是这样解决的 Dashboard - 系统管理 - 节点列表上 如果资源不够是无法启动构建job的 启动jenkins 查看 Jenkins 初始密码 sudo cat /var/lib/jenkins/secrets/initialAdminPassword 登录后安装必要的插件会花费一些时间 Github 准备 创建一个项目类似于我做实践用的 https://github.com/chenrui2200/aws-jenkins-codepipeline develop setting 里生成token 保存该token后面会用到多次 配置webhooks 在项目内setting里配置webhooks ,  PayloadUrl 填写 jenkins_url/github-webhook/ 点击保存 jenkins system configure 配置access token 把access token 录入到credentials 跳转system configuration 找到github server,  使用access token配置https://api.github.com 添加认证方式在箭头处填写github access token 点击测试连接出现下面字样说明配置成功 项目文件准备 新建基于 python 的 lambda 函数。此 lambda 函数为我们的目标 lambda 函数在本实验完成后每当有新的 commit都会触发此 lambda 函数进行自动化部署。 如您不清楚步骤请参考创建您的第一个 Lambda 函数 此文重在搭建 CICD 流水线代码会直接用默认生成的 python 代码 lambda_function.py。 publish 此 lambda版本为1并且创建别名alias。 除此以外还需要添加另外两个文件 appspec.template.yaml, 用于 codedeploy 配置文件。请将此文件当中的函数名以及 alias别名替换为自己对应的值。buildspec.yml用于 codebuild 配置文件修改替换文件中尖括号标注部分去掉尖括号。 buildspec.yml version: 0.2phases:install:runtime-versions:python: 3.7commands:- echo pre Installing ...pre_build:commands:- echo prebuild,Installing update ...# 基本环境更新#- yum update -ybuild:commands:- echo Build started on datepost_build:commands:- ls - mkdir build- # 替换所有尖括号标注替换时去掉尖括号- CurrentVersion$(echo $(aws lambda get-alias --function-name 替换为自己的 lambda 函数 ARN --name 替换为自己的lambda alias --region your_region | grep FunctionVersion | tail -1 |tr -cd [0-9]))- zip -r ./build/lambda.zip ./lambda_function.py- aws lambda update-function-code --function-name 替换为自己的 lambda 函数 ARN --zip-file fileb://build/lambda.zip --region your_region --publish- TargetVersion$(echo $(aws lambda list-versions-by-function --function-name 替换为自己的 lambda 函数 ARN --region your_region | grep Version | tail -1 | tr -cd [0-9]))- echo $CurrentVersion- echo $TargetVersion- sed -e s/{{CurrentVersion}}/$CurrentVersion/g -e s/{{TargetVersion}}/$TargetVersion/g appspec.template.yaml appspec.yaml- aws s3 cp appspec.yaml s3://替换为自己的S3 Bucket名称/jenkins/codedeploy/appspec.yaml- # 替换 first-try-with-jenkins 为自己的codedeploy名称- aws deploy create-deployment --application-name first-try-with-jenkins --deployment-group-name first-try-with-jenkins --s3-location bucket替换为自己的S3 Bucket名称,keyjenkins/codedeploy/appspec.yaml,bundleTypeYAML artifacts:type: yamlfiles:- appspec.yaml appspec.template.yaml version: 0.0 Resources:- test: # Replace MyFunction with the name of your Lambda functionType: AWS::Lambda::FunctionProperties:Name: test # Specify the name of your Lambda functionAlias: beta # Specify the alias for your Lambda functionCurrentVersion: {{CurrentVersion}} # Specify the current version of your Lambda functionTargetVersion: {{TargetVersion}} # Specify the version of your Lambda function to deploy lambda_function.py import jsondef lambda_handler(event, context):# TODO implementreturn {statusCode: 200,body: json.dumps(Hello from Lambda!)} AWS 准备 Codebuild 准备 新建codebuild项目 【源】选择github, 点击管理认证凭证配置访问凭证 认证成功 其他选项不用动 选择EC2 相同的vpc 使用buildspec文件构建文件名对应的是github项目里的buildspec.yml 文件名称 codebuild选择的role需要具备 s3 codebuild的权限 CodeDeploy 准备 计算平台选择lamda 创建部署组组 codedeploy选择的role需要具备 codedeploy 的权限 构建CI/CD 流程 创建一个 Jenkin 的项目配置 codedeploy 相应信息 新建项目之前先安装 codebuild 的插件。点击 系统管理 -- 插件管理(plugin) 新建一Jenkins个项目点击“Create a new project” -- freestyle project 配置Github项目的地址源代码管理选择Git方式。 上面credentials没有显示secret text类别的需要安装Plain Credentials Plugin。您还需要安装Credentials Binding Plugin来传递凭据, 同时宿主机上需要安装 git 触发构建选择 Github hook trigger for GITScm polling 配置 AK SK , region, project-name 尝试提交push下代码, 看到push事件已经触发了jenkins jenkins端插件已经触发了codebuild 去构建提交者是codebuild-jenkins plugin 整个流程已经打通 查看jenkins 的构建日志 Codebuild 日志也看到成功了 查看lambda 函数已经成功更新了 有小伙伴反馈无法启动jenkins job出现下面错误 Dashboard -  系统管理 -  节点列表 下查看节点状态 增加/tmp 目录下磁盘空间 使用/etc/fstab 扩展空间 [rootip-10-0-13-218 ~]# sudo mount -t tmpfs -o size2G tmpfs /tmp [rootip-10-0-13-218 ~]# echo tmpfs /tmp tmpfs defaults,size2G 0 0 | sudo tee -a /etc/fstab tmpfs /tmp tmpfs defaults,size2G 0 0 [rootip-10-0-13-218 ~]# df -h /tmp/ Filesystem Size Used Avail Use% Mounted on tmpfs 2.0G 0 2.0G 0% /tmp剩余交换空间不足问题通过下面命令解决 参考这篇帖子 Jenkins - Free Swap Space 0剩余交换空间为0_jenkins free swap space-CSDN博客 解决方式 1、登陆服务器查看swap如下所示没有配置swap free|grep -i Swap Swap:            0          0          0 2、配置swap dd if/dev/zero ofswapfile bs1M count1K mkswap swapfile sudo chown root:root swapfile sudo chmod 600 swapfile sudo swapon swapfile 3、查看swap配置成 free|grep -i Swap Swap:      1048572          0    1048572
http://www.dnsts.com.cn/news/114856.html

相关文章:

  • 中国教学网站广州网站设计我选刻
  • php 开启gzip加速网站安康网站制作公司
  • 新建的网站怎么做seo优化安康平台下载
  • 免费的做微博的网站模板wordpress usermeta
  • 个人网站建立教程建设个人网站的心得体会
  • 兴城泳装电子商务网站建设海淀网站建设联系方式
  • 怎么做微信里的网站链接南宁网站建设-中国互联
  • 公司如何注册网站福州网站建设金森
  • 网站建设的实验的结论手机网站如何站点管理
  • 外贸网站如何换域名深圳网站设计公司龙岗
  • 科技类网站企业建网站开发
  • 网站建设用哪的图片不侵权小程序开发公司前十名
  • 如何创建属于个人网站做了个网站 怎么做seo
  • 哪里有免费的网站模板下载中国建筑网查询
  • dw做框架网站国内好的设计网站
  • 适合新手的网站开发深圳万齐创享网站建设
  • wordpress 2个菜单做中英文昆明网络优化
  • 绵阳 网站 建设自助建网站教程
  • 网站备案要收费吗永久免费安卓代理ip
  • 网站建设费用组成企业营销网站建设步骤
  • 网站信息组织优化短视频营销的发展趋势
  • 怎么做自己的代刷网站wordpress添加分页
  • 东盟建设投资有限公司网站眉县做网站
  • 织梦网站更新wordpress主题会员功能
  • 单页网站仿制教程北京常用网站
  • 云南云岭建设集团官方网站怎么避免网站开发后门
  • 自己建一个网站需要什么百度app下载最新版
  • 河南网站优化公司哪家好做的好的宠物食品网站
  • 专业做网站登录企业网站建设知识应用技能
  • dnf做任务解除制裁网站高端网站开发成本