Vesta Control Panel - Forum

Community Forum

Skip to content

Advanced search
  • Quick links
    • Main site
    • Github repo
    • Google Search
  • FAQ
  • Login
  • Register
  • Board index Language specific forums Russian (Русский) Общие вопросы
  • Search

Выполнение произвольных команд при создании домена

Общие вопросы о панели управления Vesta
Post Reply
  • Print view
Advanced search
6 posts • Page 1 of 1
grinder
Posts: 12
Joined: Wed Aug 10, 2016 3:23 am

Выполнение произвольных команд при создании домена
  • Quote

Post by grinder » Wed Aug 10, 2016 3:37 am

Скажите есть ли у Vesta возможность выполнить произвольную команду при определенных операциях?
Я в принципе могу занести, что нужно прямо в func/domain.sh или v-add-domain, но боюсь что оно затрется при обновлении.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Выполнение произвольных команд при создании домена
  • Quote

Post by skurudo » Thu Aug 11, 2016 11:30 am

Проще в команды по добавлению домена, но затрутся - это факт, т.е. нужно бы держать копию.
А что нужно такого делать при создании домена? Может это не единичная задача :)
Top

grinder
Posts: 12
Joined: Wed Aug 10, 2016 3:23 am

Re: Выполнение произвольных команд при создании домена
  • Quote

Post by grinder » Fri Aug 12, 2016 6:41 am

Ну вот сейчас разработчики хотят чтобы при создании домена, сразу инициализировать локальный git, инициализировать репозитарий в битбакет и сразу подключиться туда git remote add.
Top

grinder
Posts: 12
Joined: Wed Aug 10, 2016 3:23 am

Re: Выполнение произвольных команд при создании домена
  • Quote

Post by grinder » Mon Aug 15, 2016 7:41 am

Кстати все прекрасно работает. Добавил нужные команды в v-add-web-domain и все.
Top

skurudo
VestaCP Team
Posts: 8099
Joined: Fri Dec 26, 2014 2:23 pm
Contact:
Contact skurudo
Website Facebook Google+ Skype
Twitter

Re: Выполнение произвольных команд при создании домена
  • Quote

Post by skurudo » Wed Aug 17, 2016 8:47 am

grinder wrote:Кстати все прекрасно работает. Добавил нужные команды в v-add-web-domain и все.
Не сомневался, что справитесь :)

Но у меня несколько вопросов все-таки есть. Можете подробнее рассказать.
Предположим у вас есть локальный репозитарий, с ним понятно.. а в случае с удаленным, как поступаете?
Top

grinder
Posts: 12
Joined: Wed Aug 10, 2016 3:23 am

Re: Выполнение произвольных команд при создании домена
  • Quote

Post by grinder » Sat Aug 20, 2016 5:35 am

Да все просто. Мы завязались через битбакет, чтобы разраб не лез на сайт, сгенерили ключи и тянем по вебхуку.

В v-add-web-domain после Creating domain logs добавляем т.к. инициализировать git нужно в пустом каталоге добавляем


######## Git Bitbacket ########

repo=$(echo -e "$domain" | sed -e "s/\.домен//g")

## создаем репу
curl -X POST -v -u user:pass https://api.bitbucket.org/2.0/repositories/тема/$repo -H "Content-Type: application/json" -d '{"is_private": true}'

# создаем хук
curl -X POST -v -u 'user:pass' -d '{ "description" : "Autodeploy", "url" : "'"http://$domain/deploy.php"'", "events" : [ "repo:push" ], "active": "true" } ' https://api.bitbucket.org/2.0/repositor ... repo/hooks

cd $HOMEDIR/$user/web/$domain/public_html
git init
git remote add origin [email protected]:тема/$repo.git
chown -R $user:$user $HOMEDIR/$user/web/$domain/.* # права на .git

Потом скрипт копирует скелет
# Adding domain skeleton

В скелете файл
deploy.php

<?php
shell_exec("/usr/bin/git pull origin master 2>&1");
?>

При создании репы достаточно разрабу запушить, битбакет дернет скрипт который вытянет обновления на сайт.
В некоторых случаях приходится писать
shell_exec("sudo /usr/bin/git pull origin master 2>&1");

и в sudoers www-data ALL=(root) NOPASSWD:/usr/bin/git
Top


Post Reply
  • Print view

6 posts • Page 1 of 1

Return to “Общие вопросы”



  • Board index
  • All times are UTC
  • Delete all board cookies
  • The team
Powered by phpBB® Forum Software © phpBB Limited
*Original Author: Brad Veryard
*Updated to 3.2 by MannixMD
 

 

Login  •  Register

I forgot my password