Развертывание кода из Bitbucket в EC2

1

Я использую BitBucket для моего проекта Django и EC2 для облачных серверов. Моя цель состоит в том, что когда я нажимаю фиксацию на ветку, BitBucket будет звонить на крючок, и крючок обновит код в EC2.

Пока что, когда я совершаю транзакцию, вызывается hook, но код не обновляется на сервере. В моем понимании, это связано с разрешениями в Linux/Ubuntu 14.04.

Я попытался следовать ссылке Брэндона Саммерса и уточнить ее, перейдя сюда. Но это все еще не работает.

С первой ссылкой я получаю это в журнале:

fatal: Not a git repository (or any of the parent directories): .git
fatal: Not a git repository (or any of the parent directories): .git
chmod: cannot access '.git': No such file or directory
[Thu Jul 30 18:21:05.106127 2015] [:error] [pid 9736] [client 131.103.20.165:42727] PHP Notice:  Undefined property: Deploy::$_data in /var/www/html/deploy_home.php on line 127

И вторая ссылка дает мне это в консоли:

[Sat Aug 01 15:26:35.000824 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  file_put_contents(/var/log/deploy/deployments.log): failed to open stream: No such file or directory in /var/www/html/deploy_repo.php on line 144
[Sat Aug 01 15:26:35.000869 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  chmod(): No such file or directory in /var/www/html/deploy_repo.php on line 147
[Sat Aug 01 15:26:35.000924 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  file_put_contents(/var/log/deploy/deployments.log): failed to open stream: No such file or directory in /var/www/html/deploy_repo.php on line 152
[Sat Aug 01 15:26:35.001010 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  file_put_contents(/var/log/deploy/deployments.log): failed to open stream: No such file or directory in /var/www/html/deploy_repo.php on line 144
[Sat Aug 01 15:26:35.001034 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  chmod(): No such file or directory in /var/www/html/deploy_repo.php on line 147
[Sat Aug 01 15:26:35.001068 2015] [:error] [pid 2447] [client 131.103.20.165:39102] PHP Warning:  file_put_contents(/var/log/deploy/deployments.log): failed to open stream: No such file or directory in /var/www/html/deploy_repo.php on line 152
sh: 1: /usr/sbin/sendmail: not found

Второй вывод соединительной консоли имеет отношение к невозможности записи в файл журнала, но все же папка репо остается неизменной на EC2.

Что мне здесь не хватает?

Теги:
amazon-web-services
amazon-ec2
bitbucket

1 ответ

1

Во-первых, я думаю, вам не хватает каталога deploy в var/log. Попробуйте создать его вручную. Таким образом, по крайней мере, у вас будет несколько файлов журналов для анализа.

Во-вторых, здесь вы не указали свой скрипт, но стоит упомянуть, что этот скрипт использует старый Bitbucket IP; если вы еще не изменили его, попробуйте заменить IP в этой строке,

 private $_repositoryIp = array ( '63.246.22.222');

с одним из новых IP-адресов, которые вы можете найти здесь.

В-третьих, почему все усилия, когда вы можете использовать инструменты CI, такие как Дженкинс? Некоторые полезные посты: 1, 2.

  • 0
    Я создал каталог deploy и постоянно получал сообщение об ошибке « permission denied доступе». Итак, для целей тестирования я установил значение 777 и это то, что вошло в файл: exception 'Exception' with message 'Error 1 executing shell script' in /var/www/html/deploy_repo.php:173 Stack trace: #0 /var/www/html/deploy_repo.php(205): Deploy->execute() #1 {main}
  • 0
    Здесь это не exec("sudo -u {$this->_deployUser} {$this->_deployScript} 2>&1", $output, $return); : exec("sudo -u {$this->_deployUser} {$this->_deployScript} 2>&1", $output, $return); - Я думаю, что это из-за проблем с разрешениями; Вы уверены, что добавили пользователя deploy в свои sudoers? Если нет, пожалуйста, следуйте этим рекомендациям в верхней части скрипта и убедитесь, что вы все сделали правильно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню