1. 程式人生 > >Jenkins Jenkins用戶執行權限

Jenkins Jenkins用戶執行權限

虛擬 doc passwd highlight har oot 文檔 docs .com

  

  在jenkins所在服務器裏安裝了awscli,一開始直接

  

apt install awscli

  

  然而裝上的版本很低,查看官方文檔,發現需要用 pip安裝(請先安裝pip):pip install awscli

  結果發現必須用root用戶安裝,那就換root ,再pip install awscli (事實上也可以不root,但這個方法不能為jenkins這種虛擬用戶裝, http://docs.aws.amazon.com/zh_cn/cli/latest/userguide/awscli-install-bundle.html#install-bundle-user)  

  換成root用戶安裝成功,然而切換到jenkins任務流程或pipline中執行 shell,本文提到的問題出現:

   ImportError: No module named dateutil.parser

  經試驗:

sudo -i
aws help 

  在root下並不會報錯,基本確定是權限問題。很苦惱,不用root裝不上,用root沒權限

  突然想起在jenkins裏執行docker也有這個問題,是通過將jenkins用戶加入docker組解決的。

  但是awscli並沒有用戶組

  後來經過搜索,發現可以采用這個方法:

  先將所登錄的用戶加入sudoer,我這裏用的是aws裏的Ubuntu鏡像,用戶是Ubuntu

  

vim /etc/sudoers
加入:jenkins    ALL = NOPASSWD: /bin/sh, /path/to/script

  然後sudo pip install awscli

  成功,測試:

  su jenkins

  aws help

  成功

Jenkins Jenkins用戶執行權限