网络知识 娱乐 Jenkins Pipeline高级用法-ShareLibrary

Jenkins Pipeline高级用法-ShareLibrary

1.Github配置

1.1 上传jenkinsfile到github

https://github.com/zeyangli/ShareLibrary-jenkins.git

2.Jenkins配置

2.1 添加gitlab凭据

凭据管理-->凭据-->系统 -->添加凭据

2.2 ShareLibrary配置

系统管理-->系统设置-->Global Pipeline librarys

2.3 安装插件

saltstack ansicolor

3.发布配置

3.1 master安装salt-master salt-api

yum -y install salt salt-master salt-api
vim /etc/salt/master  #添加以下内容 salt 2015.5.10

rest_cherrypy: port: 9000 disable_ssl: True

external_auth: pam: saltapi: - .* - '@wheel' - '@runner

file_roots: base: - /srv/salt

service salt-master start

service salt-apo start

useradd saltapi

passwd saltapi #123456

3.2 应用服务器部署salt-minion

yum -y install salt-minion
echo "master: 10.10.1.1" > /etc/salt/minion

3.2 测试

salt-key -L
salt-key -a xxxxxxx
salt xxx test.ping

curl http://127.0.0.1:9000/login -d username='saltapi' -d password='123456' -d eauth='pam' {"return": [{"perms": [".*", "@wheel", "@runner"], "start": 1552134573.2227211, "token": "fa089bbd2c641a3136b2fb3bf305ab5111c54343", "expire": 1552177773.2227211, "user": "saltapi", "eauth": "pam"}]}[root@VM_7_14_centos auth]#

FAQ

1.[更新Git版本]centos6 默认yum装的git 版本1.7.1 太低了导致出错。

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
wget https://github.com/git/git/archive/v2.3.0.zip
unzip v2.3.0.zip
cd git-2.3.0
make prefix=/usr/local/git all
vim /etc/profile
export PATH=/usr/local/git/bin:$PATH
source /etc/profile

2.[重新安装Git,项目构建出错]

Started by user admin
java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
Caused: java.io.IOException: Cannot run program "git" (in directory "/var/lib/jenkins/caches/git-c25d623df84deea801370f6c265e18c9"): error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at hudson.Proc$LocalProc.<init>(Proc.java:249)
    at hudson.Proc$LocalProc.<init>(Proc.java:218)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:936)
    at hudson.Launcher$ProcStarter.start(Launcher.java:455)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2038)
Caused: hudson.plugins.git.GitException: Error performing command: git init /var/lib/jenkins/caches/git-c25d623df84deea801370f6c265e18c9
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2049)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2010)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2006)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1638)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:811)
Caused: hudson.plugins.git.GitException: Could not init /var/lib/jenkins/caches/git-c25d623df84deea801370f6c265e18c9
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$5.execute(CliGitAPIImpl.java:813)
    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.init(CliGitAPIImpl.java:286)
    at hudson.plugins.git.GitAPI.init(GitAPI.java:217)
    at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:324)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:198)
    at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:174)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:108)
    at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:67)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:293)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

解决方法: 系统设置,全局工具设置,更改git的位置。

3.没有安装saltstack插件

java.lang.NoSuchMethodError: No such DSL method 'salt' found among steps