引言
产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
持续集成 (Continuous integration,简称CI)
持续交付(Continuous delivery)
持续部署(continuous deployment)
参考 http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html
Jenkins介绍
Jenkins是一个开源的、可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)基于web界面的平台。
Jenkins是一个工具集,提供了各种各样的插件
比如获取git上最新的代码
比如可以帮你编译源代码
比如可以调用自定义的shell脚本远程执行命令
Jenkins安装
最低配置: 不少于256M内存,不低于1G磁盘,jdk版本>=8
安装jdk1.8
yum install -y java-1.8.0-openjdk
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
yum install -y jenkins
systemctl start jenkins
less /var/log/jenkins/jenkins.log #查询admin密码
访问 http://ip:8080/ 进行安装
第一个是推荐插件安装,第二个是自定义插件安装。
Jenkins相关目录
rpm -ql jenkins
安装目录 /var/lib/jenkins
配置文件 /etc/sysconfig/jenkins
日志目录 /var/log/jenkins
相关日志 /var/lib/jenkins/jogs
相关节点 /var/lib/jenkins/nodes
插件目录 /var/lib/jenkins/plugins
Jenkins发布php代码上
“系统管理”→“管理插件”→“已安装”
检查是否有“Git plugin”和“Publish Over SSH”两个插件,如果没有,则需点击“可选插件”,找到它并安装
安装完成后重启服务。
安装好两个插件后,点击“系统管理”→“系统设置”
下拉,找到“Publish Over SSH”
事先在一台linux服务器上生成一对密钥
ssh-keygen -f /root/.ssh/jenkins //可以设置密码,也可不设置,这里生成的是私钥
“Passphrase”填写设置的密码, “Path to key”留空,“key”粘贴/root/.ssh/jenkins文件内容
点击左下角“增加”,SSH Server,name自定义,Hostname填写线上web服务器的ip,Username填写root,Remote Directory填写/
我这里添加的是cc-01机器,要让cc-01机器直接登录我们本机就得通过秘钥来登录了。
步骤:复制cc-01的秘钥→本机的.ssh/authorized_keys
检测,这里我们没有输入密码就直接登录了:
如果是多台web server,继续点击“增加”,重复以上操作,点左下角的“保存”
这里我添加的是本机:
添加完成后可以点这里检测,然后在保存。
Jenkins发布php代码下
点击“新建”,任务名称自定义,比如test,选择“构建一个自由风格的软件项目”点击下方的“确定” 描述,自定义
“源码管理”选择 “Git” “Repository URL”填写你项目的git地址(https://coding.net/u/aminglinux/p/aminglinux-book/git)这里用的老师的仓库,如果是公共项目可以不设置下面的参数,直接填写一个git地址即可,若是私有项目,需要填写认证信息,比如可以选择 “SSH Username whith private key”,然后设置Username以及private key
“Branches to build” 默认为*/master,意思是发布的分支为master,保持默认
注:如出现以下信息,请看是否装了git,或者在git clone一下,在去看是否正常
“构建触发器”和“构建环境”留空
“构建”,选择 “Send files or execute commands over SSH” SSH Server,Name 选择对应的服务器,Transfers, Source files填写**/**,表示全部文件
Remove prefix可以指定截掉的前缀目录,这里留空即可,Remote directory指定远程服务器上代码存放路径,比如/data/wwwroot/www.aaa.com,Exec command为文件传输完成后要执行的命令,比如可以是更改文件权限的命令,设置完成后点击 “Add Transfer Set”,如果还有另外的机器,可以点击 “Add Server”重复以上操作 最后点击左下角的“保存”
完成以上操作后,就可以使用这个刚刚创建的任务去工作了。
点击左面的“立即构建”,就能把git上的代码发布到指定的服务器上。
点击左下角的#1/#2… ,然后再点击 “Console Output”可以查看输出日志
检查:
Jenkins破解管理员密码
cd /var/lib/jenkins/users/admin
vim config.xml//定位到<passwordHash>那一行
删除改行,改为
<passwordHash>#jbcrypt:$2a$10$pre7I4liZFdF6ZE05QntTOoKoKa5pCUumaFO/mMzMoH09bNBzyj6O</passwordHash>
重启一下jenkins
新密码为aminglinux.com
Gitlab 修改root用户密码
使用rails工具打开终端
1 |
|
查询用户的email,用户名,密码等信息,id:1 表示root账号
1 |
|
重新设置密码
1 2 |
|
保存密码
1 |
|
完整的操作ruby脚本
1 2 3 4 |
|
然后使用重置过的密码重新登录。
来源:oschina
链接:https://my.oschina.net/u/3867897/blog/2991711