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 插件