Top

NSD Devops DAY04

  1. 案例1:配置git
  2. 案例2:git本地操作
  3. 案例3:使用自建gitlab服务器

1 案例1:配置git

1.1 问题

  1. 安装git版本控制软件
  2. 设置用户信息,如用户名、email等
  3. 设置默认编辑器为vim
  4. 查看用户配置

1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:安装git版本控制软件

[root@localhost ~]# yum install -y git
已安装:
  git.x86_64 0:1.8.3.1-11.el7                                                          

作为依赖被安装:
  perl-Error.noarch 1:0.17020-2.el7            perl-Git.noarch 0:1.8.3.1-11.el7       
  perl-TermReadKey.x86_64 0:2.30-20.el7       

完毕!
[root@localhost ~]# git –version		#查看版本
git version 1.8.3.1

步骤二:设置用户信息

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

[root@localhost ~]# git config --global user.name "Mr.Zhang"
[root@localhost ~]# git config --global user.email zhangzg@tedu.cn

步骤三:设置默认编译器为vim

[root@localhost ~]# git config --global core.editor vim 

步骤四:查看配置

[root@localhost ~]# git config --list
user.name=Mr.Zhang
user.email=zhangzg@tedu.cn
core.editor=vim

2 案例2:git本地操作

2.1 问题

  1. 创建devops目录
  2. 为devops创建git仓库
  3. 新建文件hello.py,并将文件初始化到仓库中
  4. 修改hello.py并将其更新到仓库
  5. 从他库中删除hello.py

2.2 方案

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以git init是使用 Git 的第一个命令。添加文件第一步使用git add是将文件添加进暂存区,第二部git commit提交更改,实际上将暂存区的所有内容提交到仓库。

2.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:创建目录初始化

此时创建了一个空仓库,可以发现当前目录下有一个隐藏的目录.git,此目录为Git来跟踪管理版本库,建议不要修改内部文件,以免Git仓库遭到破坏。

[root@localhost ~]# mkdir devops
[root@localhost ~]# cd devops/
[root@localhost devops]# git init		#通过命令把目录变成Git可以管理的仓库
初始化空的 Git 版本库于 /root/devops/.git/
[root@localhost devops]# git init devops
初始化空的 Git 版本库于 /root/devops/devops/.git/
[root@localhost devops]# ls -a
.  ..  devops  .git

步骤二:新建文件hello.py,并将文件初始化到仓库中

1)添加指定文件hello.py到暂存区

[root@localhost devops]# echo 'print("hello world!")' > hello.py
[root@localhost devops]# git add hello.py		#将文件添加到暂存区
[root@localhost devops]# git status		#查看状态
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#	新文件:    hello.py 

2)将暂存区文件初始化到仓库中

[root@localhost devops]# git commit -m "初始化仓库"	   #把暂存区所有内容提交到分支
[master 8e6e22a] 初始化仓库
 1 file changed, 1 insertion(+)
 create mode 100644 hello.py
[root@localhost devops]# git status
# 位于分支 master
无文件要提交,干净的工作区

步骤三:修改hello.py并将其更新到仓库

[root@localhost devops]# echo 'print("done.")' >> hello.py 
[root@localhost devops]# git commit -am "向hello.py添加新行"
[master 1ca03d5] 向hello.py添加新行
 1 file changed, 1 insertion(+) 

步骤四:从库中删除hello.py文件

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除

[root@localhost devops]# git ls-files		 #查看版本库中文件
hello.py
niha.py
[root@localhost devops]# git rm hello.py
rm 'hello.py'
[root@localhost devops]# git commit -m '删除hello.py'
[master a37ff34] 删除hello.py
 1 file changed, 2 deletions(-)
 delete mode 100644 hello.py

3 案例3:使用自建gitlab服务器

3.1 问题

  1. 通过docker搭建gitlab服务器
  2. 新建群组devops
  3. 新建项目core_py
  4. 新建用户,他/她在devops组中是主程序员
  5. 新用户上传版本库到gitlab
  6. 熟悉git远程操作方法

3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:通过docker搭建gitlab服务器

1)从ftp://172.40.50.116/pub/docker/images/处获取gitlab_zh.tar镜像文件,导入中文版gitlab镜像

[root@localhost devops]# docker load < /path/to/gitlab_zh.tar 
a94e0d5a7c40: Loading layer [==================================================>]  116.5MB/116.5MB
88888b9b1b5b: Loading layer [==================================================>]  15.87kB/15.87kB
52f389ea437e: Loading layer [==================================================>]  14.85kB/14.85kB
52a7ea2bb533: Loading layer [==================================================>]  5.632kB/5.632kB
db584c622b50: Loading layer [==================================================>]  3.072kB/3.072kB
62786ff6a243: Loading layer [==================================================>]  75.85MB/75.85MB
71bc04f4b7c7: Loading layer [==================================================>]  2.048kB/2.048kB
26e083d332d8: Loading layer [==================================================>]  2.048kB/2.048kB
2c02e58e96b8: Loading layer [==================================================>]  2.048kB/2.048kB
589c7a23de2a: Loading layer [==================================================>]  15.87kB/15.87kB
44474d2cdcd1: Loading layer [==================================================>]  1.359GB/1.359GB
41c94e16b901: Loading layer [==================================================>]  16.78MB/16.78MB
04cafa6a1534: Loading layer [==================================================>]    160MB/160MB
Loaded image: gitlab_zh:latest

2)将物理主机ssh端口改为2022后,输入如下命令起动容器:

[root@localhost devops]# docker 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 gitlab_zh:latest 
b9dc65e0def51a4d09d2a597b2b929490e972a34f3de993439d2f7cc22039b77 
此时端口成功启动

步骤二:新建群组

1)在浏览器地址栏中输入启动容器ip地址即可登录GitLab的界面,第一次登录使用的用户名为root,首次登录会强制用户修改密码。密码修改成功后,输入新密码进行登录,如图-6所示:

图-1

2)进入网站后点击菜单栏-工具图标打开管理区域,创建群组,使用群组管理项目和成员,如图-7、图-8所示:

图-2

图-3

步骤三:在Gitlab主页中新建一个项目

显示如图-9所示:

图-4

步骤四:在Gitlab主页中新建一个用户

1)在Gitlab主页中新建一个用户,如图-10所示:

图-5

2)设置账号基本信息,其他均可为默认,如图-11所示:

图-6

3)创建用户后,再次编辑可设置密码,如图-12所示:

图-7

4)root用户将新用户加入组中,点击devops进入群组,设置管理权限,在群组中添加成员并设置新成员为“主程序员”,如图-13、图-14、图-15所示:

图-8

图-9

图-10

5)在终端中输入ssh-keygen命令,一路enter,可以生成缺省的rsa方式的sshkey,将/root/.ssh/id_rsa.pub中生成的rsa公钥内容拷到gitlab中,如图-16所示,进入设置页面对ssh进行配置:

图-11

  1. SSH是一种安全协议,在你的电脑与GitLab服务器进行通信时,我们使用SSH密钥(SSH Keys)认证的方式来保证通信安全。你可以在网络上搜索到关于SSH密钥的更多介绍;下面我们重点讲解如何创建 SSH密钥,并将密钥中的公钥添加到GitLab,以便我们通过SSH协议来访问Git仓库。
  2. 显示如图-17所示:

图-12

步骤五:简单远程操作及新用户上传版本库到gitlab

1)克隆远程库代码到本地

# git clone git@192.168.113.249:devops/core_py.git 

2)创建一个文件

# cd /root/whsir/whsir
# echo "Hello" > hello.py

3)将文件添加到仓库

 # git add hello.py

4)提交文件到仓库,输出信息如图-18所示:

# git commit -m "hello文件"

图-13

5)关联远程库

 # git remote add origin git@192.168.113.249:root/whsir.git

6)最后推送到gitlab上,输出信息如图-19所示:

# git push origin master

图-14