2021-05-22

【●】部署GitLab
  GitLab概述 
    ●   GitLab是一个利用 Ruby  on Rails  开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目,部分程序已经使用Go语言重写。
   ●  GitLab版本
   —GitLab 企业版
   —GitLab CE 社区版
   ●部署方式
  —软件包方式
  —容器方式
 
一、部署Gitlab服务器
步骤一:环境准备(在192.168.4.20主机操作)
1)防火墙、SELinux。
[root@gitlab ~]# firewall-cmd --set-default-zone=trusted
[root@gitlab ~]# setenforce 0
[root@gitlab ~]# sed -i '/SELINUX/s/enforcing/permissive/' /etc/selinux/config #修改源文件

2)修改sshd默认端口。
因为Git是通过SSH协议形式访问,后面需要启动GitLab容器,该容器需要占用22端口,而电脑的sshd服务也需要占用22端口(端口冲突),所以需要提前修改sshd默认端口,将端口修改为2022。
注意:修改后需要重新登录一次虚拟机(重新登录需要指定端口)。
[root@gitlab ~]# vim /etc/ssh/sshd_config
Port 2022                                               #17行
[root@gitlab ~]#systemctl restart sshd
[root@gitlab ~]# exit
真机# ssh -p 2022  192.168.4.20 

3)准备容器环境。
提示:gitlab_zh.tar在第二阶段素材目录中,需要先将该素材拷贝到192.168.4.20主机。(比如拷贝到/root目录)
[root@gitlab ~]# dnf  -y   install   podman
[root@gitlab ~]# podman load < ./gitlab_zh.tar
[root@gitlab ~]# podman images
REPOSITORY               TAG      IMAGE ID          CREATED       SIZE
localhost/gitlab_zh   latest   1f71f185271a       3 years ago   1.73 GB
[root@gitlab ~]# md5sum gitlab_zh.tar  #查看文件是否损坏
b54118da41d8f0477bc03c5f206b276b  gitlab_zh.tar

4)创建数据目录
容器无法持久保存数据,需要将真机目录和容器目录绑定,实现数据永久保存。
[root@gitlab ~]# mkdir -p /srv/gitlab/{config,logs,data}

步骤二:启动GitLab容器(192.168.4.20操作)
1)启动容器
[root@gitlab ~]#  touch /etc/resolv.conf                       
#如果没有该文件则创建文件,防止无法podman run启动容器
[root@gitlab ~]# podman run -d -h gitlab --name gitlab  -p 443:443 -p 80:80 -p 22:22  --restart=always  -v /srv/gitlab/config:/etc/gitlab  -v /srv/gitlab/logs:/var/log/gitlab  
-v /srv/gitlab/data:/var/opt/gitlab  gitlab_zh
[root@gitlab ~]# podman  ps -a       #查看容器
CONTAINER ID  IMAGE                       COMMAND          CREATED         STATUS            PORTS               NAMES
bd948a59e9ca  localhost/gitlab_zh:latest  /assets/wrapper  20 seconds ago  Up 7 seconds ago  0.0.0.0:22->22/tcp  gitlab

  注释:
   -d将容器放入后台启动。
   -h设置容器的主机名为gitlab。
    --name设置容器名称为gitlab。
   -p进行端口映射,将git主机的443、80、22端口和git上面运行的容器端口绑定
    这样以后任何人访问git主机(192.168.4.20)的22端口也就是在访问容器里面的22端口,任何人访问git主机(192.168.4.20)的80端口也就是访问容器里面的80端口。
    -v将git主机上面的目录和容器里面的目录绑定,git主机的/srv/gitlab/config目录对应容器里面的/etc/gitlab/目录,其他目录同理。
    最后的gitlab_zh是镜像名称。

2)配置systemd,实现容器开机自启动(选做实验)
生成service文件,-n是容器的名称,给gitlab容器生成service文件
[root@gitlab ~]#  cd /usr/lib/systemd/system
[root@gitlab system]# podman generate systemd -n gitlab --files
[root@gitlab ~]#  cd ~

设置开机自启动
[root@gitlab ~]#  systemctl enable container-gitlab.service

3)初始化登录密码(真机使用浏览器访问GitLab页面)
# firefox http://192.168.4.20
GitLab默认用户名为root,第一次访问需要设置密码:15176405147zyl

 

设置密码后即可使用新设置的密码登录(密码要8位,有字母符号数字组成),

二、配置GitLab
步骤一:创建用户和组
1)创建用户,点击GitLab页面的小扳手图标,创建用户


创建jerry用户,点击《编辑》设置用户的密码


2)创建组
点击GitLab页面的小扳手图标,创建组

设置组名称(组名称为devops)以及可见等级(等级为公开),


3)将用户加入到组(将jerry用户加入devops组)

步骤二:创建GitLab项目
1)创建项目

2)设置项目名称、组、可见等级,

步骤三:管理GitLab项目
1)客户端使用密码管理GitLab项目(在192.168.4.10主机操作)
[root@develop ~]# git config --global user.name "Administrator"
[root@develop ~]# git config --global user.email "admin@example.com"
[root@develop ~]# git clone http://192.168.4.20/devops/myproject.git
[root@develop ~]# cd myproject
[root@develop myproject]# touch README.md
[root@develop myproject]# git add README.md
[root@develop myproject]# git commit -m "add README"
[root@develop myproject]# git push -u origin master
Username for 'http://192.168.4.20': jerry    #这里输入用户名
Password for 'http://jerry@192.168.4.20':    #这里输入密码15176405147zyl

2)客户端生成SSH密钥(在192.168.4.10主机操作)
[root@develop myproject]# rm -rf /root/.ssh/known_hosts  #删除之前的ssh远程记录
[root@develop myproject]# ssh-keygen                   #生成ssh密钥文件
[root@develop myproject]# cat ~/.ssh/id_rsa.pub       #查看密钥文件

3)使用jerry用户登录GitLab页面
jerry用户第一次登录页面需要重置一次密码,密码可以与旧密码相同。

4)上传密钥
将刚刚192.168.4.10上面创建的密钥文件内容上传到GitLab。
点击右上角账户图标,点击《设置》,点击展开按钮,点击《SSH密钥》,增加密钥,然后将develop主机生成的密钥文件内容复制到GitLab上面。

 

 

5)使用密钥管理GitLab项目
首先要查看下基于SSH连接方式的链接    #查看项目的连接方式是不是SSH

[root@develop myproject]# git remote remove origin
[root@develop myproject]# git remote -v      #查看
[root@develop myproject]# git remote add \   #(\这一行放不下下一行)
origin git@192.168.4.20:devops/myproject.git
[root@develop myproject]# git remote -v

#重要备注:
前面的案例使用http协议访问clone了服务器的代码仓库,这里把之前的http服务器信息删除(remove:删除),然后在添加新的服务器信息(add:添加),使用ssh协议访问服务器。

[root@develop myproject]# echo hello word >> README.md
[root@develop myproject]# git add .
[root@develop myproject]# git commit -m "modify readme"
[root@develop myproject]# git push -u origin master

6) 上传静态页面代码(代码在第二阶段素材lnmp_soft.tar.gz中)
需要提前将真机的网页素材scp拷贝到develop虚拟机用户的家目录,解压lnmp_soft.tar.gz,在该压缩包里面有一个www_template.zip文件。
[root@develop ~]# dnf  -y  install   unzip tar
[root@develop ~]# unzip  www_template.zip
[root@develop ~]# cp -r www_template/*   myproject/
[root@develop ~]# cd  myproject/
[root@develop myproject]# git add .
[root@develop myproject]# git commit -m  "web site"
[root@develop myproject]# git push -u origin master
[root@develop myproject]# git tag  v1
[root@develop myproject]# git push -u origin v1
通过tag可以给代码设置版本标签,如v1,v2,v3等等。

三、CI/CD概述
   1.概念
   ●CI 
   —持续集成:开发人员的自动化流程。成功的CI意味着应用代码的新更改会定期构建、测试并合并到共享存储库中。

   ●CD
    —持续交付:通常是指开发人员对应用的更改会自动进行错误测试并上传到存储库(如GitLab或容器注册表),然后由运维团队将其部署到实时生产环境中。
    —目的就是确保尽可能减少部署新代码时所需的工具。

开发----->git ------>jenkins (内含三种脚本:测试脚本和封装脚本(俗称打包)和发布脚本)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LNMP一键安装包是什么?   LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RadHat、Debian/Ubuntu VPS(VDS)或独立主机安装LNMP(Nginx、MySQL、PHP、phpMyAdmin)生产环境的Shell程序。   我们为什么需要它?   编译安装需要输入大量的命令,如果是配置生产环境需要耗费大量的时间。   不会Linux的站长或Linux新手想使用Linux作为生产环境……   系统需求:   需要2 GB硬盘剩余空间   128M以上内存   安装步骤:   1、下载LNMP一键安装包:   可以选择使用下载版(推荐国外或者美国VPS使用)或者完整版(推荐国内VPS使用),如果使用下载版执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.5.tar.gz,如果使用完整版,执行命令 wget -c http://soft.vpser.net/lnmp/lnmp0.5-full.tar.gz,执行上述命令后LNMP一键安装包就会被下载到VPS上。   2、解压LNMP一键安装包:   执行tar zxvf lnmp0.5.tar.gz 或者tar zxvf lnmp0.5-full.tar.gz 就会将LNMP一键安装包解压缩。   3、CentOS下安装步骤   下载版执行命令 cd lnmp0.5/ ,完整版执行命令:cd lnmp0.5-full/   然后再执行./centos.sh ,输入要绑定的域名,回车,再输入要设置的MySQL root的密码,再次回车确认。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。   4、Debian/Ubuntu下安装步骤   下载版执行命令 cd lnmp0.5/ ,完整版执行命令:cd lnmp0.5-full/   然后32位系统执行./debian.sh ,输入要绑定的域名,回车,再次输入VPS/服务器所在位置:asia、america、europe、oceania或africa,回车,再输入要设置的MySQL root的密码,回车后,再次回车确认。程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。安装大约10分钟左右需要设置MySQL root用户的密码。   安装其他组件   1、安装eAccelerator,执行如下命令:./eaccelerator.sh 就会自动安装并重启web服务。   2、安装ionCube,执行如下命令:./ionCube.sh 就会自动安装并重启web服务。   3、安装PureFTPd和管理面板,执行如下命令:./pureftpd.sh 就会自动安装PureFTPd,安装完PureFTPd,需要在浏览器执行http://你的域名或IP/ftp/install.php 安装PureFTPd用户管理。详细教程参考:http://www.vpser.net/manage/lnmp-pureftpd-cp.html   4、安装VsFTPD,执行如下命令:./vsftpd.sh 就会自动安装上vsftpd,只需要执行命令:useradd -d /home/wwwroot -s /sbin/nologin adminftp 添加上帐号指定好ftp帐号的根目录,再执行:passwd adminftp 设置上密码,登录就可以了。   虚拟主机管理   1、添加虚拟主机,执行如下命令:./vhost.sh 根据提示输入要绑定的域名,回车,如果需要添加更多的域名,输入y,再输入要另外绑定的域名,多个域名可以用空格隔开。再输入域名绑定的目录(绝对目录,如/home/wwwroot/lnmp,如果不填默认是/home/wwwroot/绑定的域名),再选择是否添加伪静态规则,默认已经有了Discuz、Wordpress、Sablog、emlog、dabr,可直接输入以上名称即可,如果需要添加自定义伪静态规则,直接输入一个想要的名字,程序会自动创建伪静态文件,直接在/usr/local/nginx/conf/你自定义的伪静态名字.conf 里面添加伪静态规则就行。接下来会提示是否需要启用日志功能,一般情况下不需要启动,直接输入n就行,如需启动,输入y,再输入要定义的日志文件名字,回车就会自动添加虚拟主机。     LNMP状态管理: /root/lnmp {start|stop|reload|restart|kill|status}   PureFTPd状态管理 /root/pureftpd {start|stop|restart|kill|status}   phpinfo : http://前面输入的域名或IP/phpinfo.php   phpMyAdmin : http://前面输入的域名或IP/phpmyadmin/   探针 : http://前面输入的域名或IP/p.php   MySQL root密码:如果不输入直接回车为root,否则为你输入的密码。     LNMP相关目录:   mysql : /usr/local/mysql   php : /usr/local/php   nginx : /usr/local/nginx   网站目录: /home/wwwroot

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值