1.支持devops的工具
git
spinnaker
docker
kubernetes
Jenkins
国外:Azure DevOps
国内:CODING devops
2.DevOps:开发&运维
development&Operations
整体的软件开发流程包括:
1.PLAN :开发团队根据客户的目标制定开发计划
2.CODE:根据plan开始编码过程,需要将不同版本的代码存储在一个库中
3.BUILD:编码完成后,需要讲代码构建并且运行
4.TEST:成功构建项目后,需要测试代码是否存在BUG或者错误
5.DEPLOY:代码经过手动测试和自动化测试后,认定代码已经准备部署交给运维团队
6.OPERATE:运维团队讲代码部署到生产环境中
7.MONITOR:项目部署上线后,需要持续的监控产品
8.INTEGRATE:然后讲监控阶段收到的 反馈发送回PLAN阶段,整体反复的流程就是DevOps的核心,即持续集成,持续部署
为了保证整体流程可以高效完成,各个阶段都有比较常见的工具如下:
3.Devops定义:强调的是高效组织团队之间如何通过自动化的工具协作和沟通来完成软件的生命周期管理,从而更快,更频繁地交付更稳定的软件
4.安装流程
操作系统在安装的时候,选在开发工作站,选在3个包,
兼容包
ftp
系统管理工具
5.安装
用docker安装:
先更新操作系统的yum源为阿里云
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
更新yum
yum update
1>必须有docker
下载Docker依赖组件
yum -y install yum-utils device-mapper-persistent-data lvm2
设置下载Docker的镜像源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
查看docker的可用版本:
yum list docker-ce --showduplicates | sort -r
安装Docker服务
yum -y install docker-ce
yum -y install docker-ce-26.1.4-1.el7 注意和上图的版本号,就是红色框的字符用中划线连接起来
设置Docker开机自启
systemctl start docker systemctl enable docker
检查是否安装成功
docker version
[root@test1 ~]# docker version Client: Docker Engine - Community Version: 26.1.4 API version: 1.45 Go version: go1.21.11 Git commit: 5650f9b Built: Wed Jun 5 11:32:04 2024 OS/Arch: linux/amd64 Context: default Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? [root@test1 ~]#
卸载:yum remove docker docker-common docker-selinux docker-engine
2》必须有docker-compose
https://www.bilibili.com/video/BV1rx4y1D7wR/?p=6&spm_id_from=pageDriver&vd_source=e9350dcb8f8ce540f675f37bddfce935
在github上搜索https://github.com/
https://github.com/docker/compose/releases/tag/v2.29.7
放到/usr/bin下面
[root@192 home]# mv docker-compose-linux-x86_64 docker-compose [root@192 home]# mv docker-compose /usr/bin
检查是否安装完成
[root@192 home]# docker-compose version Docker Compose version v2.29.7 [root@192 home]#
3》安装Jenkins
CI/CD可以理解为:
CI过程既是通过jenkins将代码拉取,构建,制作镜像交给测试人员测试
持续集成:让软件代码可以持续的集成到主干上兵自动构建和测试
CD过程既是通过Jenkins将打好标签的发行版本代码拉取,构建,制作镜像交给运维人员部署
持续交付:让经过持续集成的代码可以进行手动部署
持续部署:让可以持续交付的代码随时随地的自动化部署
5.2Jenkins安装
1》首先配置国内的dock镜像源
[root@test1 jenkins_docker]# cat /etc/docker/daemon.json { "registry-mirrors": [ "https://<changme>.mirror.aliyuncs.com", "https://dockerproxy.com", "https://mirror.baidubce.com", "https://docker.m.daocloud.io", "https://docker.nju.edu.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://registry.docker-cn.com", "http://hub-mirror.c.163.com", "https://reg-mirror.qiniu.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com", "https://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://registry.cn-hangzhou.aliyuncs.com", "https://mirror.baidubce.com" ] }
2》重新加载镜像源文件以及重启docker
systemctl daemon-reload systemctl restart docker
3》 检查镜像源是否加载成功
docker info 出现一下表示镜像源配置成功 Registry Mirrors: https://<changme>.mirror.aliyuncs.com/ https://dockerproxy.com/ https://mirror.baidubce.com/ https://docker.m.daocloud.io/ https://docker.nju.edu.cn/ https://docker.mirrors.sjtug.sjtu.edu.cn/ https://registry.docker-cn.com/ http://hub-mirror.c.163.com/ https://reg-mirror.qiniu.com/ https://docker.mirrors.ustc.edu.cn/ https://dockerhub.azk8s.cn/ https://mirror.ccs.tencentyun.com/ https://registry.cn-hangzhou.aliyuncs.com/ Live Restore Enabled: false
4》为方便后期管理虚拟机
cd /usr/local mkdir docker
mkdir jenkins_docker
5》创建docker-compose.yml文件
cd /usr/local/docker/jenkins_docker
6》拉取jenkins镜像
docker pull jenkins/jenkins
[root@test1 ~]# docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
Digest: sha256:078194d3c9a9255a78eb6ee016c7e2f4b087eb152d3ac778e4d9e128ee934fac
Status: Image is up to date for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
[root@test1 ~]#
7》制作jenkins的ymp文件
[root@test1 jenkins_docker]# more docker-compose.yml #version: “3.1" services: jenkins: image: jenkins/jenkins container_name: jenkins ports: - 8080:8080 - 50000:50000 volumes: - ./data/:/var/jenkins_home/ [root@test1 jenkins_docker]#
[root@test1 jenkins_docker]# docker-compose up -d
WARN[0000] /usr/local/docker/jenkins_docker/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
[+] Running 1/1
✔ Container jenkins Started
如果有这样的错误请将第七步的版本号一行注释掉
8》第一次执行会有报错
[root@test1 jenkins_docker]# docker-compose up 或者docker-compose up -d WARN[0000] /usr/local/docker/jenkins_docker/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion [+] Running 2/1 ✔ Network jenkins_docker_default Created 0.2s ✔ Container jenkins Created 0.0s Attaching to jenkins jenkins | INSTALL WARNING: User: missing rw permissions on JENKINS_HOME: /var/jenkins_home jenkins | touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied jenkins | Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? jenkins exited with code 1 [root@test1 jenkins_docker]#
退出一个容器 docker stop jenkins(容器名称)
9》 查看docker的jenkins日志
[root@test1 jenkins_docker]# docker logs -f jenkins INSTALL WARNING: User: missing rw permissions on JENKINS_HOME: /var/jenkins_home touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? INSTALL WARNING: User: missing rw permissions on JENKINS_HOME: /var/jenkins_home touch: cannot touch '/var/jenkins_home/copy_reference_file.log': Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions? [root@test1 jenkins_docker]#
为了解决上述报错问题,需要增加data的目录权限
chmod -R 777 data
第一次安装,密码会出现在日志里面
b4345e577f4644808663867b52db346f
10.通过页面访问一下jenkins
11.输入密码后,可能需要几分钟,jenkins在初始化
12.选择并安装最合适的插件,什么都不需要选择,默认,点击安装
13.安装进行中。。。。
14.如果下载慢,可以修改jenkins镜像源的地址
进入data目录
[root@test1 data]# pwd /usr/local/docker/jenkins_docker/data [root@test1 data]# ll 总用量 48 -rw-r--r--. 1 roo roo 1661 9月 26 11:41 config.xml -rw-r--r--. 1 roo roo 324 9月 26 11:40 copy_reference_file.log -rw-r--r--. 1 roo roo 156 9月 26 11:40 hudson.model.UpdateCenter.xml 这个就是jenkins的镜像源 -rw-r--r--. 1 roo roo 370 9月 26 12:02 hudson.plugins.git.GitTool.xml -rw-------. 1 roo roo 1680 9月 26 12:02 identity.key.enc -rw-r--r--. 1 roo roo 171 9月 26 11:27 jenkins.telemetry.Correlator.xml drwxr-xr-x. 2 roo roo 6 9月 26 11:27 jobs drwxr-xr-x. 3 roo roo 45 9月 26 12:03 logs -rw-r--r--. 1 roo roo 1037 9月 26 11:40 nodeMonitors.xml drwxr-xr-x. 93 roo roo 8192 9月 26 12:02 plugins -rw-r--r--. 1 roo roo 258 9月 26 11:40 queue.xml.bak -rw-r--r--. 1 roo roo 64 9月 26 11:27 secret.key -rw-r--r--. 1 roo roo 0 9月 26 11:27 secret.key.not-so-secret drwx------. 2 roo roo 164 9月 26 12:02 secrets drwxr-xr-x. 2 roo roo 149 9月 26 12:02 updates drwxr-xr-x. 2 roo roo 24 9月 26 11:27 userContent drwxr-xr-x. 3 roo roo 55 9月 26 11:27 users drwxr-xr-x. 10 roo roo 247 9月 26 11:27 war [root@test1 data]#
下面是默认的下载地址,默认是国外的
[root@test1 data]# cat hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://updates.jenkins.io/update-center.json</url>
</site>
</sites>[root@test1 data]#
安装完成如下:
15.创建一个账户
16.自动会填写上jenkins的路径,保存并完成
17.点击开始使用jenkins
19.点击左侧的mange jenkins按钮,找到plagins,安装git Parameter,Publish Over SSH,然后点击安装
如果下载失败,可以根据14步骤提供的方法,修改jenkiins镜像源
20.需要jdk和maven放入到data目录里面
将这个jdk-8u161-linux-x64.tar.gz上传到服务器的data目录,并解压
21.进入容器内部查看jdk
docker exec -it jenkins bash
22.进入jenkins页面manage jenkins---》tools配置jdk和maven,然后点击应用和保存
如果配置路径错误,会有报错
同样的方法安装maven
23.找到这Publish Over ssh插件,进行配置目标服务器
配置目标服务器:
进入system,将滚动条拉到最下边,就会看到publish over ssh
点击图片下面的新增
采用用户名和密码方式(比较简单)
同时在服务器上创建目录/usr/local/test
mkdir -p /usr/local/test
然后应用,save
24.用ideal创建一个工程
25.创建一个springboot项目,如果找不到1.8的jdk,那么修改红色框为https://start.aliyun.com
26选择web
然后,直接下一步,下一步,import change(这个也会自动完成)
27.创建一个TestControler,然后运行这个工程,保证能在本地开发环境下运行
28.搭建giitlab(在另外一个服务器上安装)
清华开源gitlab库 https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
安装这个gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
在虚拟机直接用命令下载:wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-10.0.0-ce.0.el7.x86_64.rpm
28.1安装前置依赖
yum install -y curl policycoreutils-python openssh-server
28.2,rpm -ivh 进行安装
安装成功
,28.3 修改配置文件
[root@test3 ~]# cat /etc/gitlab/gitlab.rb |grep -v '^#'|grep -v '^$' external_url 'http://192.168.192.133:8080' gitlab_rails['time_zone'] = 'Asia/Shanghai' git_data_dirs({ "default" => { "path" => "/mnt/nfs-01/git-data" }, "alternative"=>{ "path" => "/mnt/nfs-01/backup" } }) puma['worker_processes'] = 2 sidekiq['max_concurrency'] = 8 postgresql['shared_buffers'] = "128MB" nginx['listen_port'] = 8080 prometheus_monitoring['enable'] = false [root@test3 ~]#
28.4更新配置并重启
gitlab-ctl reconfigure 初始化
gitlab-ctl restart 开启服务
其他命令
gitlab-ctl stop 关闭服务
gitlab-ctl retart 重启所有服务
gitlab-ctl status查看所有服务状态
gitlab-ctl reconfigure 修改配置文件之后,重新加载
gitlab-ctl show-config 查看所有服务配置文件信息
gitlab-ctl tail 查看日志
重新初始化以后密码为:
[root@test3 ~]# cat /etc/gitlab/initial_root_password # WARNING: This value is valid only in the following conditions # 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run). # 2. Password hasn't been changed manually, either via UI or via command line. # # If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password. Password: Is7NEzP1Q7LDKTggHWflf7XzIU6TyYcXY2963gIYnL4= # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
标签:roo,com,devops,https,jenkins,docker,root From: https://www.cnblogs.com/miwaiwai/p/18428854