我們再改下 配置 修改 執行的shell 命令 把pwd命令 改成useradd wd 創建用戶命令
點擊保存
點執行
看到失敗 出錯了
看輸出
沒有權限 執行創建用戶命令,因為jenkins默認用jenkins用戶啟動 ,jenkins是普通用戶,普通用戶沒有權限執行useradd命令
解決方法:
1.sudo 授權
2.用jenkins啟動用戶改成root用戶 以root用戶身份啟動
查看jenkins以什么用戶啟動的
[root@ci-node2 My-freestyle-job]# ps aux |grep jenkins root 74201 0.0 0.1 112712 968 pts/1 R+ 01:16 0:00 grep --color=auto jenkins jenkins 108096 0.1 55.5 2339100 371140 ? Ssl Apr07 6:04 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkin.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
看配置什么也能看到
[root@ci-node2 My-freestyle-job]# cat /etc/sysconfig/jenkins |grep -v ^#|grep -v ^$ JENKINS_HOME="/var/lib/jenkins" JENKINS_JAVA_CMD="" JENKINS_USER="jenkins" JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true" JENKINS_PORT="8080" JENKINS_LISTEN_ADDRESS="" JENKINS_HTTPS_PORT="" JENKINS_HTTPS_KEYSTORE="" JENKINS_HTTPS_KEYSTORE_PASSWORD="" JENKINS_HTTPS_LISTEN_ADDRESS="" JENKINS_DEBUG_LEVEL="5" JENKINS_ENABLE_ACCESS_LOG="no" JENKINS_HANDLER_MAX="100" JENKINS_HANDLER_IDLE="20" JENKINS_ARGS=""
根據實際情況做,如果公司特別大情況下,就使用sudo 授權策略,如果是小公司,不建議使用sudo 授權做,sudo 授權划分會特別嚴格,
jenkins執行腳本時候,會執行好多命令,按角色配,會有很大問題,
實際工作中看情況,
建議用root用戶來啟動jenkins ,做認證授權,運行腳本 時候,少很多麻煩
jenkins服務器一般部署在內網使用,安全級別來說,安全級別設置太高,會給自己造成很大麻煩。
把jenkins啟動用戶改成root用戶
[root@ci-node2 My-freestyle-job]# vim /etc/sysconfig/jenkins
wq 保存
重啟jenkins
[root@ci-node2 My-freestyle-job]# systemctl restart jenkins
再看看現在是root用戶啟動jenkins
[root@ci-node2 My-freestyle-job]# ps aux |grep jenkins root 121117 27.0 42.7 2314048 285516 ? Ssl 16:29 0:17 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20 root 121269 0.0 0.1 112712 968 pts/1 R+ 16:31 0:00 grep --color=auto jenkins
再執行構建
看輸出
創建用戶已完成
[root@ci-node2 My-freestyle-job]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:999:998:User for polkitd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin jenkins:x:998:996:Jenkins Automation Server:/var/lib/jenkins:/bin/false wd:x:1000:1000::/home/wd:/bin/bash
如果再執行第二次就不行了,因為不能創建重復的用戶,所以要把構建項目的配置 改一下或者刪除執行的命令
這就是jenkins啟動用戶的配置,工作中根據實際情況選擇