2016-09-13 167 views
1

我有一個boto python腳本,它位於/var/lib/jenkins/workspace/project/python-script.py中,該腳本正在jenkins構建的執行shell中運行。Jenkins用戶無法運行python腳本

當我ssh進入我的jenkins服務器並執行命令python python-script.py arg1 arg2作爲root用戶或ec2用戶時,python腳本完全運行我希望它運行的方式。當我運行詹金斯建立或sudo -u詹金斯蟒蛇Python的腳本ARG1 ARG 2我得到同樣的錯誤如下:

Traceback (most recent call last): 
    File "ec2-elb.py", line 31, in <module> 
    main() 
    File "ec2-elb.py", line 17, in main 
    elb_conn = boto.ec2.elb.connect_to_region(args.region) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/ec2/elb/__init__.py", line 63, in connect_to_region 
    return region.connect(**kw_params) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/regioninfo.py", line 187, in connect 
    return self.connection_cls(region=self, **kw_params) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/ec2/elb/__init__.py", line 98, in __init__ 
    profile_name=profile_name) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/connection.py", line 1100, in __init__ 
    provider=provider) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/connection.py", line 569, in __init__ 
    host, config, self.provider, self._required_auth_capability()) 
    File "/usr/local/lib/python2.7/site-packages/boto-2.42.0-py2.7.egg/boto/auth.py", line 991, in get_auth_handler 
    'Check your credentials' % (len(names), str(names))) 
boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials 

我試圖路徑更改路徑,蟒蛇,改變的權限python文件發送給jenkins用戶並使文件可執行。

我不確定從哪裏開始,因爲搜索正在開始帶回重複的答案。任何幫助將不勝感激。

打印時的環境,這是我得到什麼:

爲root用戶:

LESS_TERMCAP_mb= 
HOSTNAME=ip-172-31-3-2 
LESS_TERMCAP_md= 
LESS_TERMCAP_me= 
SHELL=/bin/bash 
TERM=xterm-256color 
HISTSIZE=1000 
EC2_AMITOOL_HOME=/opt/aws/amitools/ec2 
LESS_TERMCAP_ue= 
USER=root 
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45: 
SUDO_USER=ec2-user 
EC2_HOME=/opt/aws/apitools/ec2 
SUDO_UID=500 
USERNAME=root 
LESS_TERMCAP_us= 
PATH=/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin 
MAIL=/var/spool/mail/root 
PWD=/root 
JAVA_HOME=/usr/lib/jvm/jre 
AWS_CLOUDWATCH_HOME=/opt/aws/apitools/mon 
LANG=en_US.UTF-8 
HISTCONTROL=ignoredups 
SHLVL=1 
SUDO_COMMAND=/bin/bash 
HOME=/root 
AWS_PATH=/opt/aws 
AWS_AUTO_SCALING_HOME=/opt/aws/apitools/as 
LOGNAME=root 
AWS_ELB_HOME=/opt/aws/apitools/elb 
LC_CTYPE=en_US.UTF-8 
LESSOPEN=||/usr/bin/lesspipe.sh %s 
SUDO_GID=500 
LESS_TERMCAP_se= 
_=/usr/bin/printenv 

和詹金斯用戶:

HOSTNAME=ip-172-31-3-2 
TERM=xterm-256color 
HISTSIZE=1000 
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45: 
USERNAME=root 
MAIL=/var/spool/mail/root 
LANG=en_US.UTF-8 
LC_CTYPE=en_US.UTF-8 
SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin 
LOGNAME=jenkins 
USER=jenkins 
HOME=/var/lib/jenkins 
SUDO_COMMAND=/usr/bin/printenv 
SUDO_USER=root 
SUDO_UID=0 
SUDO_GID=0 
+0

我會開始傾銷env。來自兩種情況的變量(好,不好)並比較這個批次。 –

+0

我想看看這些,並描述可能導致它的原因。我更新了我的問題,如果你能以任何其他方式提供幫助,那將是非常棒的。 – Zgbrell

+0

一些env。變種缺失。由於提到'ec2',我懷疑添加了那些'EC2_HOME =/opt/aws/apitools/ec2 EC2_AMITOOL_HOME =/opt/aws/amitools/ec2'會有所幫助。一般來說,查看EC2用戶的.profile/.bashrc文件。也許'AWS_something'變量(只是一個預感) –

回答

1

端起來,我只是需要把我的.boto文件,其中包含我的訪問和密鑰在jenkins用戶的根目錄中。一旦我在jenkins用戶的根目錄下創建文件,它就開始工作。

+0

你可能想接受這個答案。即使它是你自己的。 – exhuma

+0

我試過但說我不能投票給我自己的帖子 – Zgbrell

+0

點擊downvote按鈕下方的複選標記來接受作品。如果它沒有出現,它可能是一個聲譽問題。你有更多的聲譽,更多的功能可用。我已經提出了你的問題和答案給你一個小小的提振,但我不確定這是否足夠。我也發現這個:https://stackoverflow.blog/2009/01/accept-your-own-answers/ - 所以它*應該*工作。 – exhuma