devops自动化容器化部署

devops

一、简单案例体验gitlab+runner部署静态文件

gitlab-ce安装:

参考文章:https://blog.csdn.net/qq_30374237/article/details/118189824

yum -y install policycoreutils openssh-server openssh-clients postfix

yum install policycoreutils-python systemctl enable sshd && sudo

systemctl start sshd systemctl enable postfix && systemctl start

postfix systemctl stop firewalld.service

安装gitlab-ce,这个安装包有问题:

wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/gitlab-ce-13.6.7-ce.0.el6.x86_64.rpm

安装gitlab-ce,我用了这个安装地址,可以

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm/download.rpm

将这个rpm包下载到本地,直接安装即可

yum install -y gitlab-ce-15.2.2-ce.0.el7.x86_64.rpm

查看gitlab的配置文件

cd /etc/gitlab

vi gitlab.rb

三种模式

1.命令模式(默认)

可以搜索 /external_url

2.插入模式:按i键,可以修改内容(-- INSERT --提示)

按左上角esc按钮,可以切换模式

输入退出并保存的指令:wq

不需要修改,直接退出:q

gitlab-ctl reconfigure

gitlab-ctl restart

查看初始密码:/etc/gitlab/initial_root_password文件
gitlab初始设置

本地装好git软件,自己去百度一下。

编辑器vs code

3.安装gitlab-runner

参考文章:https://juejin.cn/post/6844903798796730375

我们服务器是CentOS

复制代码
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

安装:

复制代码
sudo yum install gitlab-ci-multi-runner

gitlab-runner 注册

获取gitlab-ci的Token: 项目主页 -> Sttings -> CI/CD -> Runners Expand

指令:

gitlab-runner register

验证runner是否能正常运行

参考文章:https://blog.csdn.net/sinat_17775997/article/details/115700703

如果运行不正常,就要检查Run untagged jobs是否开启

安装一个静态服务器,用来展示web页面的

https://blog.csdn.net/sinat_17775997/article/details/115700703

指令:

https://jingyan.baidu.com/article/1709ad80c38e240634c4f098.html

yum install httpd

httpd -v

因为gitlab已经占用了80端口

修改httpd配置文件的路径是/etc/httpd/conf/httpd.conf

所以这个httpd要改他的默认端口80为8000

启动http服务

service httpd start

装其他软件

yum install sshpass

先将这个提问关闭,等第一次生产密钥之后,再打开就好。

Are you sure you want to continue connecting (yes/no/fingerprint)?

参考:https://blog.csdn.net/zhengzaifeidelushang/article/details/109348222

vim /etc/ssh/ssh_config

StrictHostKeyChecking no

UserKnownHostsFile /dev/null

esc键

二、devops企业级部署方案

1、流程图

2、依赖工具

3、流程图

4、主机规划

1、按照主机规划给分配的每台主机起名 hostnamectl set-hostname xxx

2、IP地址配置,修改/etc/sysconfig/network-scripts/ifcfg-ens33 来配置IP

补充说明 :可以使用win命令ipconfg或者linux命令ip a查看dns和网关

无线局域网适配器 WLAN:

连接特定的 DNS 后缀 . . . . . . . :

本地链接 IPv6 地址. . . . . . . . : fe80::c527:5c19:2da6:f642%17

IPv4 地址 . . . . . . . . . . . . : 172.16.4.208

子网掩码 . . . . . . . . . . . . : 255.255.252.0

默认网关. . . . . . . . . . . . . : 172.16.4.1

(1)配置静态IP时,网关和DNS地址不能随便配置‌。网关和DNS地址需要根据网络环境进行正确配置,以确保设备能够正常连接到互联网和进行域名解析。

(2)网关和DNS的作用及配置方法

(2-1)网关(Gateway)‌:

  • 作用‌:网关是设备访问外部网络的出口,通常是路由器的IP地址。它允许设备通过这个地址与外部网络通信。
  • 配置方法‌:网关地址应设置为路由器的IP地址。例如,如果路由器的IP地址是192.168.1.1,那么网关地址也应设置为192.168.1.1‌

(2-2)DNS(Domain Name System)服务器‌:

  • 作用‌:DNS服务器负责将域名解析为IP地址,帮助设备找到其他网站的IP地址。
  • 配置方法‌:DNS服务器可以选择公共DNS,如Google的8.8.8.8和8.8.4.4,或者使用网络服务提供商(ISP)提供的DNS服务器地址。例如,中国电信的DNS服务器地址为114.114.114.114‌

3、主机名与ip地址解析的配置,修改 /etc/hosts 文件

4、防火墙配置

补充说明:sestatus也需要设置为disabled。可使用命令

复制代码
sudo vi /etc/selinux/config
SELINUX=disabled  # 原值可能是enforcing或permissive
sudo reboot

‌sestatus命令‌用于查看SELinux(Security-Enhanced Linux)的当前状态。包括是否启用、模式(如Enforcing、Permissive或Disabled)、配置文件的位置以及其他相关信息‌。设置完结果如下图:

5、各个主机的时间同步。前提是保证有ntpdate命令

5、安装工具软件

1、安装git

复制代码
yum -y install git

2、安装gitlab

(1)配置yum源:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/你的版本号

复制代码
vim /etc/yum.repos.d/gitlab-ce.repo

(2)安装gitlab-ce

复制代码
yum -y install gitlab-ce

(3)gitlab-ce配置

复制代码
 vim /etc/gitlab/gitlab.rb
 32 external_url 'http://192.168.10.21'

(4)启动gitlab-ce

复制代码
gitlab-ctl reconfigure
gitlab-ctl status

(5)访问验证

3、安装jenkins-server

(1)安装jdk

(2)安装jenkins。在官网jenkins.io下载安装

根据官网命令执行下图的命令即可。第四条命令安装jdk在上一步已经安装了,无需执行,第五条命令可以执行yum -y install jenkins

第三步安装epel-release很慢的话可以使用阿里云的镜像:wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epe1-7.repo

(3)jenkins配置

配置文件如下

(4)jenkins自启动配置

启动后查看密码并访问


注意:部署jenkins的机子也需要安装git,因为要拉取代码;需要安装maven,需要编译代码;需要安装docker,打包docker镜像

4、安装harbor

5、安装web-server,也就是部署服务的机子,需要安装docker

6、工具配置

1、配置docker主机使用harbor

(1)jenkins服务器添加从harbor拉取镜像

(2)harbor服务器配置私有仓库

(3)web-server配置harbor

2、配置jenkins使用harbor

3、密钥配置

(1)dev主机到gitlab-ce

(2)jenkins服务器到gitlab-ce

配置完成后gitlab可以看到俩公钥

配置jenkins私钥的具体步骤



4、jenkins插件安装

(1)maven integration:用于编译JAVA项目

(2)git parameter:用于基于git版本提交进行参数构建项目

(3)gitlab:用于jenkins-server拉取项目

(4)Generic Webhook Trigger:用于项目自动化构建

(5)ssh:用于jenkins-server对web-server实施项目部署

全部安装后重启jenkins

5、jenkins全局工具配置

(1)jdk配置

(2)git配置

(3)maven配置

6、jenkins系统配置

(1)添加jenkins-server访问web-server凭据

(2)配置ssh协议连接主机

7、企业业务代码项目发布

(1)数据库创建

(2)代码获取

(3)代码修改

(4)构建项目,运行容器镜像

(5)推送镜像到harbor

(6)验证

8、项目构建和发布




相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
lunzi_08263 天前
【开源治理】05-把流程翻译成门禁:开源治理嵌入 DevOps 流水线实战
供应链管理·devops·开源治理
dayuOK63073 天前
写作卡壳怎么办?我的“5分钟启动法”
人工智能·职场和发展·自动化·新媒体运营·媒体
AC赳赳老秦3 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw