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

网站的开发方法看房网

网站的开发方法,看房网,东莞高端品牌网站建设,如何做网站轮播大图上期已经将容器项目的告警补充完成,这期在补充下ansible的相关部署内容,项目我使用的是自建的运维测试项目。1. Ansible 目录结构# 代码目录结构 tree -L 3 . ├── Ansible # Ansible部署脚本目录 │ ├── HelloWorld-Pipeline # 按Jenkins项目名…

上期已经将容器项目的告警补充完成,这期在补充下ansible的相关部署内容,项目我使用的是自建的运维测试项目。

1. Ansible 目录结构

# 代码目录结构
tree -L 3
.
├── Ansible # Ansible部署脚本目录
│   ├── HelloWorld-Pipeline  # 按Jenkins项目名建立playbook文件夹
│   │   ├── deploy.yml  # 部署脚本
│   │   ├── hosts # 主机清单
│   │   └── rollback.yml # 回滚脚本
│   └── Readme.md
├── Jenkinsfile
│   ├── Helloworld-Pipeline-DockerSlave.jenkinsfile
│   ├── HelloWorld-Pipeline.jenkinsfile
│   └── Readme.md
├── Readme.md
├── src
│   └── org
│       └── foo
└── vars└── Readme.md

2. Ansible部署脚本(deploy.yml)

---
- name: Deploy Docker containerhosts: testbecome: yesvars:# 这些变量都会从Jenkins中传入new_image_name: "{{ new_image_name }}"container_name: "{{ container_name }}"docker_registry: "{{ docker_registry }}"  docker_username: "{{ docker_username }}" docker_password: "{{ docker_password }}"tasks:- name: Login to Docker registrydocker_login:registry: "{{ docker_registry }}"username: "{{ docker_username }}"password: "{{ docker_password }}"- name: Pull the latest Docker imagedocker_image:name: "{{ new_image_name }}"tag: latestsource: pull- name: Stop and remove old container if existsdocker_container:name: "{{ container_name }}"state: absentignore_errors: yes  # 忽略错误,确保后续任务继续执行- name: Run new containerdocker_container:name: "{{ container_name }}"image: "{{ new_image_name }}"state: startedrestart_policy: alwayspublished_ports:- "8888:8080"  # 映射主机的8888端口到容器的8080端口- name: Remove unused Docker imagescommand: docker image prune -f --filter "until=24h"  # 清理24小时内未使用的镜像,这个根据自己情况register: prune_result

3. Ansible部署脚本(rollback.yml)

---
- name: Deploy Docker containerhosts: testbecome: yesvars:# 这些变量都会从Jenkins中传入new_image_name: "{{ rel_image_name }}"container_name: "{{ container_name }}"docker_registry: "{{ docker_registry }}"docker_username: "{{ docker_username }}"docker_password: "{{ docker_password }}"ansible_python_interpreter: /usr/bin/python3tasks:- name: Login to Docker registrydocker_login:registry: "{{ docker_registry }}"username: "{{ docker_username }}"password: "{{ docker_password }}"- name: Pull the latest Docker imagedocker_image:name: "{{ rel_image_name }}"tag: latestsource: pull- name: Stop and remove old container if existsdocker_container:name: "{{ container_name }}"state: absentignore_errors: yes- name: Run new containerdocker_container:name: "{{ container_name }}"image: "{{ rel_image_name }}"state: startedrestart_policy: alwayspublished_ports:- "8888:8080"- name: Remove unused Docker imagescommand: docker image prune -f --filter "until=24h"register: prune_result

4. Hosts

[test]
192.168.1.98

5.Jenkins传入变量的代码片段(在前面2片文章有写)

pipeline {//.......省略stages {//.......省略//这里开始传入相关变量stage('Ansible Deploy') {steps {ansiColor('xterm') { // 启用 AnsiColorecho "${PURPLE}Ansible 部署项目${RESET}"}script {sh "git clone ${OPS_SHARE_LIBRARY} ./ops-share-librarya"withCredentials([usernamePassword(credentialsId: 'Harbor', usernameVariable: 'HARBOR_USERNAME', passwordVariable: 'HARBOR_PASSWORD')]) {def extraVars = [container_name: "${CONTAINER_NAME}",docker_registry: "${HARBOR_URL}",docker_username: "${HARBOR_USERNAME}",docker_password: "${HARBOR_PASSWORD}"].collectEntries { [(it.key): it.value] }// 根据 BRANCH_TAG 的值添加特定的参数if (!env.BRANCH_TAG.startsWith('rel-')) {// 正常部署时添加的参数extraVars['new_image_name'] = "${REGISTRY_URL}/${PROJECT_GROUP}/${PROJECT_NAME}:${_tag}"// 执行正常的部署ansiblePlaybook(playbook: "./ops-share-librarya/Ansible/HelloWorld-Pipeline/deploy.yml",inventory: "./ops-share-librarya/Ansible/HelloWorld-Pipeline/hosts",extraVars: extraVars)} else {def branchTag = env.BRANCH_TAGdef extractedValue = branchTag.replaceFirst(/^rel-/, '')  // 去掉前缀 "rel-"println "Extracted Value: ${extractedValue}"  // 输出提取的值// 回滚时添加的参数extraVars['rel_image_name'] = "${REGISTRY_URL}/${PROJECT_GROUP}/${PROJECT_NAME}:${extractedValue}"// 执行回滚ansiblePlaybook(playbook: "./ops-share-librarya/Ansible/HelloWorld-Pipeline/rollback.yml",inventory: "./ops-share-librarya/Ansible/HelloWorld-Pipeline/hosts",extraVars: extraVars)}}}}}//.......省略}
}

6.部署测试

image-20250916184452063

image-20250916184452063

容器项目的相关流水线到这里基本都已经搞完了,目前完成了落项目部署和容器项目部署的流水线,但是这些也只是作为模板,后面还要优化迭代。

http://www.dtcms.com/a/612272.html

相关文章:

  • 杨凯做网站wordpress首页导航栏
  • 网站建设陕icp网站首页快照不更新
  • 容桂做外贸网站珠海建设网站公司哪家好
  • 江苏网站建设方案做网站怎么弄模板
  • 天津建设网工程信息网站广州十大纯设计公司
  • 建设银行附近网站点怎么看一个网站是不是仿站
  • 域名和网站建设实训报告WordPress图片裁减
  • 专门建站的公司三亚网站制作
  • vs做的网站项目可以改名字吗简单 网站设计
  • 做牙工作网站桂林网站制作多少钱
  • 西安网站建设高端经典包装设计案例解析
  • 做网站适合用什么字体专业制作网站图片
  • 铜陵市建设局网站wordpress新浪图床
  • 专业找工作网站下载怎么建设属于自己的网站
  • 网站的中英文切换怎么做北京地铁优化
  • 成都鸿邑网站建设聚名网app
  • 设计网站公司地址wordpress带汉字图片不显示不出来
  • 沈阳市营商环境建设监督局网站启闭机闸门的网站建设
  • 怎么创建收费网站专业的app网站开发
  • 在线做动漫图的网站网站的排名与权重
  • 注册网站需要备案吗python开发wordpress
  • 设计网站专题页包括那些项目可以翻外墙的浏览器
  • 网站开发 聊天窗口装修公司展厅布置方案
  • 使用 Whisper 转写语音的完整教学
  • 建设部网站预应力资质做网站买域名要买几个后缀最安全
  • 郑州建站费用全网营销培训公司
  • 广东住房和建设局网站官网平台类网站建设价格表
  • 杭州手机网站制作佛山提供网站设计方案公司
  • 浙江电商网站建设销售php 网站部署到服务器
  • 做app护肤网站简单的编程代码