debian服务器上搭建git服务及添加文件提交拉取的操作记录、在Ubuntu上搭建Jenkins服务以及Ubuntu中的PPA源及PPA的安装使用

一、debian服务器上搭建git服务及添加文件提交拉取的操作记录

需要新建一个代码仓库,准备找台业务量不大的服务器上找个空间大的文件夹搭建一个。整个过程:

1,在服务器端安装git服务,新建git用户并设置密码,创建仓库,设置git的服务目录及权限处理。

2,在另一台服务器上使用git拉取服务端的仓库,并新建文件,add并commit提交。

3,同样在2这台服务器上在新的文件夹中拉取代码仓库,并pull2中提交的变更。

bash 复制代码
#安装git,服务器上已经安装了2.11版
root@user19:~# apt-get install git
root@user19:~# git --version
git version 2.11.0
#查看有没有git用户,没有新建一个,为了传输使用
root@user19:~# id git
id: 'git': no such user
root@user19:~# useradd git
sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting
sent invalidate(passwd) request, exiting
sent invalidate(group) request, exiting
root@user19:~# id git
uid=3001(git) gid=3001(git) groups=3001(git)
#为git设置密码,后面git clone的时候会用到
root@user19:~# passwd git
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@user19:~#
#建立git服务目录,变更文件夹权限
root@user19:/data02# mkdir -p gitdata/test.kermit.cn
root@user19:/data02# cd gitdata/
root@user19:/data02/gitdata# mkdir test.kermit.cn
#创建仓库
root@user19:/data02/gitdata# git init --bare /data02/gitdata/test.kermit.cn
Initialized empty Git repository in /data02/gitdata/test.kermit.cn/
root@user19:/data02/gitdata# chown -R git:git test.kermit.cn

#在另一台服务器上安装git,新建一个目录执行命令:
tuser@n25:~/gittest$ git clone git@101.17.16.79:/data02/gitdata/test.kermit.cn
Cloning into 'test.kermit.cn'...
git@101.17.16.79's password:
Could not chdir to home directory /home/git: No such file or directory
warning: You appear to have cloned an empty repository.
tuser@n25:~/gittest$
tuser@n25:~/gittest$ cd test.kermit.cn
#建立一个文件c.txt,使用git add添加文件并使用commit提交
tuser@n25:~/gittest/test.kermit.cn$ vim c.txt
tuser@n25:~/gittest/test.kermit.cn$ git add c.txt
tuser@n25:~/gittest/test.kermit.cn$ git commit -m "add-c-txt" c.txt
[master (root-commit) 0215aca] add-c-txt
 Committer: tiger <tuser@n25.bed.org>
......
 create mode 100644 c.txt
tuser@n25:~/gittest/test.kermit.cn$ git log
commit 0215acaf523e8457e95606f5f39f09ee6fb3a9cd
Author: tiger <tuser@n25.bed.org>
Date:   Fri Nov 8 11:17:39 2019 +0800
    add-c-txt
#完成add,commit提交之后,再使用git push origin master合并到master
tuser@n25:~/gittest/test.kermit.cn$ git push origin master
git@101.17.16.79's password:
Could not chdir to home directory /home/git: No such file or directory
Counting objects: 3, done.
Writing objects: 100% (3/3), 210 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To 101.17.16.79:/data02/gitdata/test.kermit.cn
 * [new branch]      master -> master
tuser@n25:~/gittest/test.kermit.cn$

#此时在另外的客户端里面使用git pull即可拉取这边提交的代码内容
tuser@n25:~/git_pull/test.kermit.cn$ git pull
git@101.17.16.79's password:
Could not chdir to home directory /home/git: No such file or directory
tuser@n25:~/git_pull/test.kermit.cn$ ll
total 4
-rw-r--r-- 1 tiger tiger 9 Nov  8 11:25 c.txt
tuser@n25:~/git_pull/test.kermit.cn$

关于git以下几个概念和逻辑图需要理解:Workspace:工作区/Index.Stage:暂存区/Repository:仓库区(或本地仓库)/Remote:远程仓库

从上图中能清楚看到使用add和commit提交的文件在另一台服务器上使用pull是拉取不到的,因为这时还没有进入remote远程仓库,而只有再使用了push操作后才能在另外一个中使用pull拉取到。checkout的内容是本地的Repository仓库区的内容,就相当于在与远程仓库中间搭建了一个临时仓库。本地修改可以完全与远程独立自成一个仓库系统。这点上比svn要丰富,当然也多了几步工作。

二、在Ubuntu上搭建Jenkins服务

之前有篇在Centos上部署jenkins的文章:Centos服务器上搭建jenkins服务 及 Jenkins 构建时Cannot find module vue 错误的解决_jenkins 打包vue 找不到依赖-CSDN博客 今天记一篇在Ubuntu上搭建Jenkins服务的过程。jenkins官网地址:https://jenkins.io/zh/doc/ ubuntu安装jenkins后将会自动启动并进行进程守护,创建一个jenkins用户来运行此服务,整个安装配置启动处理记录如下:

bash 复制代码
#安装java环境
root@us12:~# apt-get install default-jre
root@us12:~# apt-get install default-jdk
root@us12:~# java -version
openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-8u232-b09-1~deb9u1-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
#安装jenkins
root@us12:~# wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | apt-key add - 
OK
root@us12:~# echo 'deb http://pkg.jenkins.io/debian-stable binary/' > /etc/apt/sources.list.d/jenkins.list
root@us12:/etc/apt# apt-get update
Get:10 http://pkg.jenkins.io/debian-stable binary/ Packages [16.0 kB]
Fetched 18.2 kB in 1s (12.3 kB/s)    
Reading package lists... Done
root@us12:/etc/apt# apt-get install jenkins
Get:1 http://mirrors.bed.org/debian stretch/main amd64 daemon amd64 0.6.4-1+b2 [96.0 kB]
Get:2 http://pkg.jenkins.io/debian-stable binary/ jenkins 2.190.3 [77.8 MB]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  jenkins
0 upgraded, 1 newly installed, 0 to remove and 33 not upgraded.
Need to get 0 B/77.8 MB of archives.
After this operation, 78.3 MB of additional disk space will be used.
Selecting previously unselected package jenkins.
(Reading database ... 122541 files and directories currently installed.)
Preparing to unpack .../jenkins_2.190.3_all.deb ...
Unpacking jenkins (2.190.3) ...
Setting up jenkins (2.190.3) ...
Processing triggers for systemd (232-25+deb9u12) ...
#jenkins服务的启动管理等
root@us12:~# /etc/init.d/jenkins [start|restart|stop]
#jenkins的配置文件路径
root@us12:~# vim /etc/default/jenkins
#jenkins日志查看
root@us12:~# tail -f /var/log/jenkins/jenkins.log
#jenkins的工作目录
root@us12:~# ll /var/lib/jenkins

其它:jenkins启动是以jenkins用户启动的,需要给这个用户赋予一些权限,比如将其添加到某些组中;另外可以使用nginx作代理实现以域名来访问jenkins服务。

其它问题:离线 该Jenkins实例似乎已离线。原因:基本是服务器访问不了外网网络,未接入互联网时安装Jenkins的更多信息。可通过配置一个代理或跳过插件安装来选择继续。可访问地址已安装的服务器上的jenkins地址:http://ip:port/pluginManager/advanced 进行设置修改,包括尝试修改Update Site中的https为http后,重启Jenkins服务。

三、Ubuntu中的PPA源及PPA的安装使用

ubuntu安装软件有一个好用的PPA方式:PPA是Personal Package Archives首字母简写。意为个人软件包文档,是Ubuntu操作系统独有的安装方式,PPA可以方便地体验到各软件的最新版、稳定版、开发版、测试版等。所有的PPA都存在launchpad.net网站上。Launchpad(启动器)是Canonical公司所架设的网站,是一个提供维护、支援或连络Ubuntu开发者的平台。

PPA是一个区别于官方软件仓库的另一仓库,每个版本的Ubuntu都有自己的四个官方软件仓库,包括Main - Canonical 支持的自由开源软件、Universe - 社区维护的自由开源软件、Restricted - 设备的专有驱动程序、Multiverse - 受版权或法律问题限制的软件。但官方仓库没法做到快速更新软件版本,于是PPA就派上用场了。

使用ppa之前首先是要安装python-software-properties提供的add-apt-repository工具,在Ubuntu Karmic中add-apt-repository命令可以直接添加ppa到当前的库中并且自动导入公钥。从而可以快速使用ppa源。

bash 复制代码
#添加php源,提示需要安装-properties-common
root@us12:~# add-apt-repository ppa:ondrej/php
The program 'add-apt-repository' is currently not installed. You can install it by typing:
apt install software-properties-common
root@us12:~# apt install software-properties-common
Reading package lists... Done
#添加源
root@us12:~# add-apt-repository  ppa:ondrej/php 
#更新源
root@us12:~# apt-get update 
#安装nginx
root@us12:~# apt-get install nginx 

基本上完成上面三步就可以任意安装软件了,许多平台也都推荐使用以上形式在Ubuntu中安装应用。实际使用add-apt-repository添加PPA时,也就是相当于修改了/etc/apt/sources.list文件添加了以下两行地址:

deb http://ppa.launchpad.net/ondrej/php/ubuntu YOUR_UBUNTU_VERSION_HERE main

deb-src http://ppa.launchpad.net/ondrej/php/ubuntu YOUR_UBUNTU_VERSION_HERE main

不过使用PPA不会更改原始的sources.list文件。它会在/etc/apt/sources.list.d目录中创建了两个文件,一个.list文件和一个带有.save的备份文件,从而方便移除PPA。很多PPA软件源提供多个版本,包括daily(每日创建版),dev(开发版),stable(稳定版),beta(测试版),这也就是使用PPA的最大好处,即Ubuntu系统中使用PPA源的软件可以在第一时间体验到最新版本的软件。