jenkins执行脚本su
① jenkins 调用 脚本命令 svn co 报错
1.更改svn 用户名密码后,修改Jenkins工作空间中的svn 命搜誉令后,使用jenkins执行脚本报错。
错误:
1)依然用的之前的用户名密码
2)工作副本不存在
但是直接在服务器上执行脚本,就没有问题(用的root用户)
后改用Jenkins用户手动执行一遍后,再使用jenkins服务器就可以了,怀疑每个差虚用户有一个svn 的缓存用户,世庆段目前没找到在哪里记录的。
② Jenkins配置定时执行项目
1、配置Jenkins的时区
在Jenkins首页点击Manage Jenkins,在跳转的页面找到Script Console
在脚本命令行中写入语句:System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone','Asia/Shanghai')
这是一个java的配置脚本:
System:是一个类;
setProperty:设置一个属性;
apache.commons.jelly.tags.fmt.timeZone:apache.comons下边有jelly.tags,timeZone就是时区的意思,后边设置的枝枝是Asia/Shanghai,亚洲的上海。
粘贴语句过去的时候,如果里面字体没有变红色,那应该是符号是中文的符号,改成英文符号就行了型祥;
点击Run,脚本就执行完成了,执行完成后可以看到Result下有自己设置的时区;若没有看到就是脚本错误,Result下不会出现自己设置的时区。
2、返回Jenkins首页,进到我们的项目的配置(Configure)里面去,点击构建触发器(Build Triggers),再点击定期建立(Build periodically)
点击右边的问号,我们要输入五个字段,分别是:
MINUTE(分钟):输入0~59;
HOUR(小时):输入0~23;
DOM(一个月中的某天):输入1~31;
MONTH(月份):输入1~12;
DOW(周几):0~7,0和7都代表星期天。
我们也可以使猛租敏用*来分别代表这五个字段。
我想两分钟执行一次,那么就修改第一个字段,修改成H/2,点击保存;保存后自动构建。
根据具体项目修改时间间隔。
③ jenkins执行shell脚本,使用scp免密传输失败问题
问题:Jenkins默认使用jenkins用户去启动,jenkins用户并没有权限去执行ssh免没巧袜密登陆,所以导致执行失败
注:配置linux双机互信后,jenkins也需要将公钥加入到目标机器,才能达到shell脚本中scp免密传输的条件
一、验证登录
1、切换jenkins用户
# su jenkins
切换后还是root账号
2、分析解决:
2.1 应该枯激是/etc/passwd文件中的/bin/bash被yum安装的时候变成了/bin/false
# vim /etc/passwd
jenkins:x:990:988:Jenkins Automation Server:/var/lib/jenkins:/bin/false( bash)
将bin/false改为/bin/bash
再次执行切换
# su jenkins
bash-4.1$
2.2 结果命令提示符的用户名不是jenkins而变成了 bash-4.1$,原因是在安装jenkins时,jenkins只是创建了jenkins用户,并没有为其创建home目录
# vim ~/.bash_profile
在文件的最后添加 export PS1='[\u@\h \W]\$',执行文件使修改项起作用
# source ~/.bash_profile
验证是否成功 # su jenkins
二、为jenkins系统用户开启免密登录
1、在Jenkins的使用过程中,如果在脚本中使用到sudo命令,有可能出现如下所示的错误:
sudo: no tty present and no askpass program specified
这是因为Jenkins服务器在执行sudo命令时的上下文有误,导致这个命令执行的异常。
2.1 解决方法:
# sudo visudo
在文件末尾加上jenkins ALL=(ALL) NOPASSWD: ALL
2.2 重启jenkins,测试
# su jenkins
# sudo su -s /bin/bash jenkins
测试成功,jenkins免密登录成功。
PS:如果误操作修改了/etc/sudoers的权限来修改上述文件,则会导致如下所示的错误:
sudo :/etc/sudoers is world writable
sudo : no valid sudoers source found, quitting
sudo : unable to initialize poling plugin
这是Linux的一种保护机制。因此,如果出现上述误操作,则需要执行如下命令来解决:
$ pkexec chmod 0440 /etc/sudoers
三、jenkins用户开通ssh免密登录
1、安装ssh
# yum install ssh
1.1 将ssh服务设置开机自启宽猛
# sudo systemctl enable sshd
1.2 启动ssh
# sudo systemctl start sshd
2、生成jenkins用户秘钥证书
# su jenkins
# ssh-keygen -t rsa
2.1 查看是否生成成功
# /var/lib/jenkins/.ssh/
# ls
3、将公钥传输到目标linux系统
ssh--id -i /var/lib/jenkins/.ssh/id_rsa.pub root@目标ip:path
------------------------------------------------------------------------------------------
参考:https://blog.csdn.net/weixin_43840640/article/details/90371472
④ jenkins执行脚本的环境变量中,如何获取执行
方法/步骤
打开Jenkins>点击Manage Jenkins >再点击Manage Nodes
⑤ 如何使用jenkins运行所有的jmeter脚本
jenkins可以执行shell或者bat文件。
你只要做到一个执行左右jmeter脚本的shell或者bat文件就好了。
⑥ jenkins执行shell脚本提示权限不够
很显然你当前用户对/usr/local/weikuaiyun-tomcat-7.0.69/没有写执行权限,解决这个问题只要把/usr/local/weikuaiyun-tomcat-7.0.69/权限对jenkins对应的管理员放开所有权限就行了
⑦ jenkins 执行脚本命令时,为什么执行了但没有成功
建议:
1. startup.sh 里面增加log/debug信息,看看log执行到哪一步了
2. jenkins 的build脚本,最开头加上 #!/bin/bash,不要依赖默认的shell设定
⑧ jenkins执行shell脚本执行docker操作权限问题
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
⑨ Jenkins运行python脚本报错
一、Jenkins定时运行python脚本
1、10分钟运行一次:
2、运行python脚本:
二、构建报错
1、报错如下:
2、原因:Jenkins启动的时候,用户名是SYSTEM,而我们安装Python默认添加的环境变隐亩量是在用户变量中的。所以Jenkins拿不到我们用户配置的环境变量。
3、解决:在系统变量Path添加如下路径,然后重启Jenkins:
4、参考链接: https://blog.csdn.net/bihansheng2010/article/details/51259849
三、输出中文乱码
1、乱码如下:
2、原因:Jenkins找的灶键森python编码格式亮培不支持中文输出。
3、解决:添加系统环境变量PYTHONIOENCODING,值为UTF-8
4、这个时候Jenkins的环境变量就会多了以下一行,重启Jenkins即可:
5、重新构建:输出中文正常。
6、参考链接: https://www.cnblogs.com/zhangyesmile/p/11195656.html
⑩ jenkins执行shell脚本,是执行服务器上的么
默认是执行jenkins 服务器本地 workspace 里的脚本 不过也可以执行 本地或局域网内其他服务器任意脚本 需要 ssh 插件