哭佛林

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

十. 安装Jenkins

1.1   安装前准备

1.1.1   安装Java

yum -y install java
但对于centos有个问题,不可以安装成gcj(例如:gij(GNU libgcj) version 4.4.6 20110731(Red Hat 4.4.6-3)),导致Jekins不工作,如果查看java版本类似如上例,需要卸载,安装其他版本
java -version   #查看Java版本

yum remove java   #卸载异常版本

 

 

1.1.2   防火墙设置

#配置Jenkins端口8080

firewall-cmd --zone=public --add-port=8080/tcp –permanent

#开端口后必须重新加载

firewall-cmd --reload

 

1.1.3   其他

1.2   安装Jenkins

1.2.1     拉取库的配置到本地

sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

 

1.2.2     导入公钥

sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

 

1.2.3     安装Jenkins

#`-y`参数:回答全部问题为是

sudo yum -y install jenkins

 

1.2.4     更新Jenkins

yum update jenkins

 

1.2.5   卸载Jenkins

rpm -e jenkins

 

       删除其他相关文件

    find / -iname jenkins | xargs -n 1000 rm -rf

 

1.2.6     Jenkins相关配置信息

1.2.6.1 系统配置文件

cat /etc/sysconfig/jenkins | more

 

可以获得几个重要配置项目信息

JENKINS_HOME="/var/lib/jenkins",存放jenkins 配置及工作文件

JENKINS_PORT="8080",jenkins默认8080端口

1.2.6.2 配置文件夹

ls /var/lib/jenkins

 

jobslogsplugins等文件夹及文件若干。
这次主要看了看plugins文件夹,所有插件都在里面,如插件ssh-slaves,会有一个ssh-slaves文件夹及ssh-slaves.jpi
当某个插件未安装成功时,会有一个以.tmp结尾的文件

1.2.6.3 日志

/var/lib/jenkins/logs

/var/log/jenkins/jenkins.log,记录了插件安装等日志,失败信息原因等很清晰

1.3   启动Jenkins及安装插件

1.3.1     启动服务

service jenkins start

 

1.3.2     浏览器访问:http://192.168.56.99:8080

1.3.3     获取管理员密码

vi /var/lib/jenkins/secrets/initialAdminPassword

 

 

 

1.3.4     安装插件

 

 

1.3.5     安装Git Parameter插件

  1. 系统管理-->插件管理-->可选插件-->搜索git parameter;

 

 

  1. 安装插件

 

 

1.3.6     其他

1.4   配置Nginx的反向代理

1.4.1     创建Nginx下Jenkins的配置文件

vi /usr/local/nginx/conf/conf.d/jenkins.conf

 

1.4.2     配置文件内容如下

upstream jenkins {

  keepalive 32; # keepalive connections

  server 127.0.0.1:8080; # jenkins ip and port

}

server {

  #注意这里,要把默认的那个default_server去掉,因为我们在下面要单独配置域名访问,所以这里不要留default_server,不然会报错。

  listen    80;

  #这里写你想设置的域名,可以写多个,与名之间用空格隔开

  server_name jenkins.domain.com;

 

  # Load configuration files for the default server block.

  location / { 

      proxy_set_header        Host $host:$server_port;

      proxy_set_header        X-Real-IP $remote_addr;

      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_set_header        X-Forwarded-Proto $scheme;

 

      # Fix the "It appears that your reverse proxy set up is broken" error.

      proxy_pass          http://127.0.0.1:8080;

      proxy_read_timeout  90;

 

      proxy_redirect      http://127.0.0.1:8080 https://jenkins.domain.com;

 

      # Required for new HTTP-based CLI

      proxy_http_version 1.1;

      proxy_request_buffering off;

      # workaround for https://issues.jenkins-ci.org/browse/JENKINS-45651

      add_header 'X-SSH-Endpoint' 'jenkins. domain.com:50022' always;

    }

 

    access_log    /var/log/jenkins/access.log;

    error_log     /var/log/jenkins/error.log;

 

    error_page  404              /404.html;

    location = /404.html {

        root   /usr/local/nginx/html;

    }

 

    # redirect server error pages to the static page /50x.html

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/local/nginx/html;

    }

}

 

1.4.3     重启Nginx

nginx -t

nginx -s reload

 

1.4.4     配置Jenkins访问路径:

访问Jenkins:http://jenkins.domain.com

进入系统管理-->系统设置-->Jenkins Location,设置URL为:http://jenkins.domain.com

 

 

1.5   Jenkins任务中Shell使用sudo

1.5.1   将jenkins用户添加至sudo用户组

usermod –a –G sudo Jenkins

 

1.5.2   编辑/etc/sudoers,授权jenkins不使用命名

visudo -f /etc/sudoers

 

       添加jenkins用户添加至sudoers文件中的配置:

jenkins ALL=(ALL) NOPASSWD: ALL

jenkins ALL=NOPASSWD: /var/lib/jenkins/workspace/, /usr/sftpdata/web/

 

1.5.3   在Jenkins任务中执行sudo命令

sudo mkdir /usr/sftpdata/web/archives

 

1.5.4   相关资料

https://embeddedartistry.com/blog/2017/11/16/jenkins-running-steps-as-sudo

https://stackoverflow.com/questions/11880070/how-to-run-a-script-as-root-in-jenkins

https://github.com/skamayker/jenkins-sudo

1.6   修改Jenkins的启动用户

1.6.1   找到jenkins的配置文件

vi /etc/sysconfig/jenkins

 

1.6.2   修改配置文件中的默认登录用户

JENKINS_USER="admin"

      

 

1.6.3   修改相关文件或目录的权限

chown admin:admin file/chown -R admin:admin directory

 

#修改以下文件或目录的权限(上述命令中的参数:directory)

/var/lib/jenkins/
/var/log/jenkins/
/var/cache/jenkins/
/usr/lib/jenkins/jenkins.war
/etc/sysconfig/jenkins

1.6.4   重启jenkins

service Jenkins restart

 

1.7   使用Extended Choice Parameter带参数构建

1.7.1   按照插件-Extended Choice Parameter

 

 

1.7.2   配置任务时,使用插件设置参数

设置参数名为:Parm_Assemblys,设置其值为:Com.Common,Com.Framework,如下图设置

 

 

 

 

1.7.3   构建时,读取参数

执行Shell时,循环读取Parm_Assemblys参数,如下:

assemblys=$Param_Assemblys

arr=(${assemblys//,/ })

for s in ${arr[@]}

do

    echo $s

done

 

1.7.4   执行结果

 

 

1.7.5   相关资料

https://wiki.jenkins.io/display/JENKINS/Extended+Choice+Parameter+plugin

1.8   相关问题

1.8.1     Failed to connect to repository: Error performing command: git.exe ls-remote -h https://github.com/szabbas/Sample-programs.git HEAD

 

解决方案:

  1. CentOS安装git,命令:sudo yum install -y git
  2. 在Jenkins中设置Git的执行路径为git(配置路径:Manage Jenkins -> Configure System -> Git -> Git Installations -> Path to Git executable)

1.9   相关资料

1.9.1   使用Docker安装Jenkins及将TFS项目进行持续集成/部署

https://www.cnblogs.com/myzony/p/8434121.html

posted on 2019-02-27 09:12  哭佛林<Kufolin>  阅读(181)  评论(0)    收藏  举报