这里使用SCM Sync configuration plugin 实现Jenkins各项配置的版本控制。
在gitlab上创建了代码库:git@gitlab.com:leechau/newfairs-jenkins.git
安装这个插件后,在 [Manage Jenkins -> System Information -> System Properties -> user.name] 里查到Jenins系统的用户名,一般是jenkins,只有创建了这个用户的ssh key, 下面指定Git repo时才能连接成功,登录Jenkins服务器运行:
su - jenkins
ssh-keygen
git config --global user.name 'Li Chao'
git config --global user.email 'leechau@126.com'
将cat .ssh/id_rsa.pub
的输出加入到Gitlab的
[Profile settings -> SSH Keys] 里(在右上角搜索框里直接搜索ssh keys);
删除$JENKINS_HOME/plugins下面所有git开头的插件,重启Jenkins服务; 安装Jenkins的Git插件。配置Jenkins的远端版本库: [Manage Jenkins -> Config System -> SCM Sync configuration -> Git -> Repo URL: git@gitlab.com:leechau/newfairs-jenkins.git]
要从版本库恢复Jenkins配置文件,使用 [Manage Jenkins -> Config System -> SCM Sync configuration -> Reload config from SCM: Reload] 这个插件在 $JENKINS_HOME/scm-sync-configuration/checkoutConfiguration 中 创建了git repo。
怎样将Jenkins的状态返回到之前的某个commit?
这个插件会在Jenkins Web页面的底部加上 SCM Sync status 提示, 但似乎不太准,比如现在它显示同步失败,但代码库提交历史显示配置能够正常保存并 被push到远端库。
其他:
Ubuntu 16.04居然没有预装Python:
apt install python
apt install python-pip
export LC_ALL=en_US.UTF-8
pip install requests
下午安装的Git插件时,由于本地还没有配置好git用户名和email,
安装过程中出现空指针异常,整个Jenkins服务整个无法启动,
到服务器上plugins文件夹下删除了git*
后,重启服务才正常;