DevOps流程图
DevOps介绍
命名
矛盾
在企业中dev和ops是有一种天然的矛盾,dev要求的是快速迭代,给公司挖掘出商业的价值,而ops则是强调的稳定,不让你如此快的开发,以稳定为主,不希望动代码(if no problem, don't touch it),所以他们之间有种天然的矛盾。
职责
很多单位也会把Sec揉入到DevOps中,有时候也会称之为DevSecOps
DevOps环境搭建
笔者对于整个自动化的流程以及devops架构比较感兴趣 即兴学习了一下 并配上实操过程中的大致流程
本次搭建所用到的自动化项目/工具
Gitlab、Jenkins 、Docker、Maven
硬件配置
两台机器都满足>=2c4g即可
我用到的配置
Gitlab
单独拿出一台服务器当作Gitlab仓库
官网
安装
采用docker来安装
docker-compose.yml 编写
vim /~/gitlab/docker-compose.yml
version: '3.6'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://35.241.71.137' #填写本机ip和端口
gitlab_rails['gitlab_shell_ssh_port'] = 2222
# Add any other gitlab.rb configuration here, each on its own line
ports:
- '80:80'
- '443:443'
- '2222:2222'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
shm_size: '256m'
添加全局变量
vim /etc/profile
#写以下内容
export GITLAB_HOME=$HOME/gitlab
启动gitlab容器
docker-compose up -d
初始化设置
访问http://35.241.71.137地址后 进行登录
初始用户名:root
初始密码:cat /etc/gitlab/initial_root_password (需进入容器)
cat /etc/gitlab/initial_root_password
可以看到root账号密码
再次访问输入密码即可进入gitlab 及时更改密码防止忘记
这样第一步push环境就搭建完成了
Maven
装在另一台服务器中
官网
下载
wget https://dlcdn.apache.org/maven/maven-3/3.9.3/binaries/apache-maven-3.9.3-bin.tar.gz
tar -zxvf apache-maven-3.9.3-bin.tar.gz
mv apache-maven-3.9.3-bin maven
mv maven /usr/local
java也需要提前下载 但无需设置环境变量
配置
vim /usr/local/maven/conf/settings.xml
#添加仓库源和jdk8的配置
#https://blog.csdn.net/lee_yanyi/article/details/124774038
Jenkins
官网
下载
下载最新的lts版本即可
docker pull jenkins/jenkins:2.401.2-lts
启动
编写docker-compose
version: "3.1"
services:
jenkins:
image: jenkins/jenkins:2.401.2-lts
container_name: jenkins
ports:
- 80:8080
- 50000:50000
volumes:
- ./data/:/var/jenkins_home/
初始化设置
查看后台管理密码
docker logs -f jenkins
访问地址
输入该密码
安装插件
选择插件来安装->安装
因源仓库在国外 可以选择换源来安装插件 就不详细写了
等待安装即可 出现安装错误可无视 不重要
安装完成后 下载我们用到的两个插件
Git Parameter
Publish Over SSH
配置maven和java
#将java和maven文件夹移动到jenkins挂载的data目录下
pwd
/usr/local/docker/jenkins_docker/data
mv /usr/local/jdk ./data
mv /usrlocal/maven ./data
我这里的映射目录为 /var/jenkins_home 根据个人目录进行填写
存储项目路径
这里设置pull下来的代码 存放的服务器及路径 前提是要有publish-over-ssh插件 前面已经安装过了
name随意 hostname填写你想要存放代码的服务器 为了方便 这里我就继续使用本机来进行操作
35.187.205.250(安装Jenkins的机器)
打开use password authentication使用ssh密码进行登录验证
点击测试 若没有创建remote directory的话 会报错
创建好后 再次进行测试
出现success即可保存设置
本地构建项目
创建项目
编写项目
vim /etc/profile
#写以下内容
export GITLAB_HOME=$HOME/gitlab
0
运行访问
push代码
写的比较繁琐 其实大家都会
使用vcs创建本地仓库
提交
拉取项目
新建任务
创建任务
源码管理
构建项目
查看控制台输出
构建项目
vim /etc/profile
#写以下内容
export GITLAB_HOME=$HOME/gitlab
1
点击保存 再次构建即可
使用docker运行项目
保存后再次再次进行构建 会发现jar包已经被复制到了我们的物理机的/usr/local/repositories(在存储项目路径中我们已经设置好了)
这里可以看到已经在目录下看到了我们的项目
创建docker文件夹、dockerfile、docker-compose文件
在pom.xml文件中新增finalName命名jar文件
Dockerfile
vim /etc/profile
#写以下内容
export GITLAB_HOME=$HOME/gitlab
2
Docker-compose
vim /etc/profile
#写以下内容
export GITLAB_HOME=$HOME/gitlab
3
对项目Send build artifacts over SSH再次进行设置
之后将项目重新git push一下 然后构建项目
很完美 这样一个简单的自动化流程就结束了
总结
笔者一直对于DevOps这种自动化流程饶有兴致
实操了一波 学到不少知识
篇幅太长了 就没有把对于代码的安全校验加上
很多插件大家可以自行探索
长
按
关
注
网络安全社团公众号
微信号 : qlnu_ctf
新浪微博:齐鲁师范学院网络安全社团
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...