使用github践行CI/CD

1,174 阅读2分钟

本系列文章尝试利用github、阿里云服务器,践行CI/CD 软件持续集成持续开发方案。
实现目标:在开发机一旦push代码,github 利用webhook技术,通知阿里云服务器自动部署系统。

centos5.8更新源

阿里云os为centos5.8,因为centos5阿里云源已经不再提供更新了,下面是一个解决方案。
更新/etc/yum.repos.d/CentOS-Base.repo文件

[base]
name=CentOS-5.8 - Base
failovermethod=priority
baseurl=http://vault.centos.org/5.8/os/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5
 
#released updates
[updates]
name=CentOS-5.8 - Updates
failovermethod=priority
baseurl=http://vault.centos.org/5.8/updates/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5
 
#additional packages that may be useful
[extras]
name=CentOS-5.8 - Extras
failovermethod=priority
baseurl=http://vault.centos.org/5.8/extras/$basearch/
gpgcheck=1
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-5.8 - Plus
failovermethod=priority
baseurl=http://vault.centos.org/5.8/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-5.8 - Contrib
failovermethod=priority
baseurl=http://vault.centos.org/5.8/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://vault.centos.org/RPM-GPG-KEY-CentOS-5

注意一定要确保/etc/yum.repos.d 目录下repos结尾的文件只有一个。

使用源码安装git:

cd  /usr/local/src
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel 
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.16.3.tar.gz
tar xzvf git-2.16.3.tar.gz
autoconf 
./configure --with-curl=/usr/local 
make
make install 

更新openssl和openssh

centos5.8 中默认的openssl和openssh都太旧,github不再支持。
注意openssh的安装依赖openssl,所以先装openssl。

1.更新centos openssl

1、查看源版本
[root@zj ~]# openssl version -a
OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
2、下载openssl-1.0.2n.tar.gz
wget https://www.openssl.org/source/openssl-1.0.2n.tar.gz
3、更新zlib
yum install -y zlib
4、解压安装
tar zxf openssl-1.0.2h.tar.gz
cd openssl-1.0.2h
./config shared zlib
make
make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
ldconfig -v
5、查看是否升级成功
[root@zj ~]# openssl version -a
OpenSSL 1.0.2n  7 Dec 2017

2.更新openssh

tar xzvf openssh-7.6p1.tar.gz
cd  openssh-7.6p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib
make && make install
mv /usr/bin/ssh /usr/bin/ssh.bak  
ln -sf /usr/local/openssh/bin/ssh /usr/bin/ssh  
echo “/usr/local/openssh/lib” >> /etc/ld.so.conf  
ldconfig -v
ssh -v
[root@iZ28hp47sfjZ openssh-7.6p1]# ssh -V
OpenSSH_7.6p1, OpenSSL 1.0.2n  7 Dec 2017

clone github代码库

安装linux 下github ssh key 见链接
windows下github ssh 生成配置方法

cd ~/.ssh/
git config --global user.name ""   
git config --global user.email ""  
ssh-keygen -t rsa -C "xxx@126.com"  
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa.
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qwBTVNKO8e+15UUgyHEwP+BqjFN+d1aNZSWzQvfWrBM xxx@126.com
The key's randomart image is:
+---[RSA 2048]----+
|    oo..=+. . + =|
|   .....o=.... @.|
|    .=. . o...E *|
|   ..=o.   . o.+ |
|  o o =.S . o.o  |
|   o o ..o.o. .. |
|    .  ... + .   |
|     . .. . .    |
|      .          |
+----[SHA256]-----+

打开id_rsa.pub,复制里面的内容添加到你github ssh key中。
继续尝试clone github中的库

[root@iZ28hp47sfjZ site-src]# git clone --bare git@github.com:jake1036/myvue.git
Cloning into bare repository 'myvue.git'...
/etc/ssh/ssh_config line 44: Unsupported option "gssapiauthentication"
The authenticity of host 'github.com (13.250.177.223)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
Enter passphrase for key '/root/.ssh/id_rsa': 
remote: Counting objects: 27, done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 27 (delta 8), reused 23 (delta 4), pack-reused 0
Receiving objects: 100% (27/27), 86.28 KiB | 35.00 KiB/s, done.
Resolving deltas: 100% (8/8), done.
[root@iZ28hp47sfjZ site-src]# 

利用webhook结合github自动部署

见后续文章

本文参考

https://blog.csdn.net/xuxiuning/article/details/51088840

https://www.cnblogs.com/songqingbo/p/5464620.html