2016-04-19 2 views
-1

Я запускаю Ansible master machine со сценарием оболочки, который клонирует мое репо на мой локальный сервер git. Я клонируюсь из Perforce и, следовательно, использую модуль git-p4 для того же самого.git-p4 не может клонировать репо при выполнении через ansible

#!/bin/bash 

p4port=myport 
p4user=myuser 
p4repourl=myurl 
p4path=/usr/local/bin/p4 
p4passwd=mypass 
clone_dest=/root/mycode 
gitp4=/usr/local/bin/git-p4 

export P4PORT=$p4port 
export P4USER=$p4user 
$p4path trust -y 
echo $p4passwd|$p4path login 
echo "now using git-p4 to clone repo.." 
python $gitp4 clone -v $p4repourl $clone_dest 

У моей целевой машины есть RHEL 7, и если я выполню этот скрипт оболочки на целевой машине, он отлично работает. Однако, если я бег это от моего мастера анзибля с помощью модуля команды он выдает следующее сообщение об ошибке:

['git', 'config', 'git-p4.client']\nOpening pipe: ['p4', '-G', 'files', 'mydepot/...#head']\nTraceback (most recent call last):\n File \"/usr/local/bin/git-p4\", line 3657, in <module>\n main()\n File \"/usr/local/bin/git-p4\", line 3651, in main\n if not cmd.run(args):\n File \"/usr/local/bin/git-p4\", line 3525, in run\n if not P4Sync.run(self, depotPaths):\n File \"/usr/local/bin/git-p4\", line 3330, in run\n self.importHeadRevision(revision)\n File \"/usr/local/bin/git-p4\", line 3079, in importHeadRevision\n for info in p4CmdList([\"files\"] + fileArgs):\n File \"/usr/local/bin/git-p4\", line 495, in p4CmdList\n stdout=subprocess.PIPE)\n File \"/usr/lib64/python2.7/subprocess.py\", line 711, in __init__\n errread, errwrite)\n File \"/usr/lib64/python2.7/subprocess.py\", line 1308, in _execute_child\n raise child_exception\nOSError: [Errno 2] No such file or directory", "stdout": 
+0

Где находится ваша игра-головоломка Ansible? – ydaetskcoR

ответ

0

Вашего PATH не установлен правильно, а под анзиблем, так ГИТ-p4 не может найти p4.

Также предлагаю заменить \ n символами новой строки в сообщении об ошибке, чтобы было легче понять.

Смежные вопросы